@peteanderson/ansi 2.0.0 → 2.1.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 (383) hide show
  1. package/README.md +38 -11
  2. package/dist/{ansi.d.ts → cjs/ansi.d.ts} +17 -16
  3. package/dist/cjs/ansi.d.ts.map +1 -0
  4. package/dist/{ansi.js → cjs/ansi.js} +3 -2
  5. package/dist/cjs/ansi.js.map +1 -0
  6. package/dist/cjs/caret.d.ts.map +1 -0
  7. package/dist/cjs/caret.js.map +1 -0
  8. package/dist/cjs/erase.d.ts.map +1 -0
  9. package/dist/cjs/erase.js.map +1 -0
  10. package/dist/cjs/features/build.d.ts.map +1 -0
  11. package/dist/cjs/features/build.js.map +1 -0
  12. package/dist/cjs/features/detect.d.ts.map +1 -0
  13. package/dist/cjs/features/detect.js.map +1 -0
  14. package/dist/cjs/features/features.d.ts.map +1 -0
  15. package/dist/{features → cjs/features}/features.js +2 -2
  16. package/dist/cjs/features/features.js.map +1 -0
  17. package/dist/cjs/features/index.d.ts.map +1 -0
  18. package/dist/cjs/features/index.js.map +1 -0
  19. package/dist/cjs/features/types.d.ts.map +1 -0
  20. package/dist/cjs/features/types.js.map +1 -0
  21. package/dist/cjs/index.d.ts +96 -0
  22. package/dist/cjs/index.d.ts.map +1 -0
  23. package/dist/cjs/index.js +39 -0
  24. package/dist/cjs/index.js.map +1 -0
  25. package/dist/cjs/pad.d.ts.map +1 -0
  26. package/dist/cjs/pad.js.map +1 -0
  27. package/dist/cjs/patterns.d.ts.map +1 -0
  28. package/dist/cjs/patterns.js.map +1 -0
  29. package/dist/cjs/scroll.d.ts.map +1 -0
  30. package/dist/cjs/scroll.js.map +1 -0
  31. package/dist/cjs/sgr/color/channel.d.ts.map +1 -0
  32. package/dist/cjs/sgr/color/channel.js.map +1 -0
  33. package/dist/cjs/sgr/color/color.d.ts.map +1 -0
  34. package/dist/cjs/sgr/color/color.js.map +1 -0
  35. package/dist/cjs/sgr/color/context.d.ts.map +1 -0
  36. package/dist/cjs/sgr/color/context.js.map +1 -0
  37. package/dist/cjs/sgr/color/index.d.ts.map +1 -0
  38. package/dist/cjs/sgr/color/index.js.map +1 -0
  39. package/dist/cjs/sgr/color/rgb.d.ts.map +1 -0
  40. package/dist/cjs/sgr/color/rgb.js.map +1 -0
  41. package/dist/cjs/sgr/color/utils.d.ts.map +1 -0
  42. package/dist/cjs/sgr/color/utils.js.map +1 -0
  43. package/dist/cjs/sgr/combine.d.ts.map +1 -0
  44. package/dist/cjs/sgr/combine.js.map +1 -0
  45. package/dist/cjs/sgr/format-builder.d.ts.map +1 -0
  46. package/dist/cjs/sgr/format-builder.js.map +1 -0
  47. package/dist/cjs/sgr/index.d.ts.map +1 -0
  48. package/dist/cjs/sgr/index.js.map +1 -0
  49. package/dist/cjs/sgr/lazy.d.ts.map +1 -0
  50. package/dist/cjs/sgr/lazy.js.map +1 -0
  51. package/dist/cjs/sgr/reset.d.ts.map +1 -0
  52. package/dist/cjs/sgr/reset.js.map +1 -0
  53. package/dist/cjs/sgr/sgr.d.ts.map +1 -0
  54. package/dist/cjs/sgr/sgr.js.map +1 -0
  55. package/dist/cjs/sgr/style.d.ts.map +1 -0
  56. package/dist/cjs/sgr/style.js.map +1 -0
  57. package/dist/cjs/sgr/types.d.ts.map +1 -0
  58. package/dist/{features → cjs/sgr}/types.js.map +1 -1
  59. package/dist/cjs/simplify/atom.d.ts.map +1 -0
  60. package/dist/cjs/simplify/atom.js.map +1 -0
  61. package/dist/cjs/simplify/index.d.ts.map +1 -0
  62. package/dist/cjs/simplify/index.js.map +1 -0
  63. package/dist/cjs/simplify/lookup.d.ts.map +1 -0
  64. package/dist/cjs/simplify/lookup.js.map +1 -0
  65. package/dist/cjs/simplify/simplify.d.ts.map +1 -0
  66. package/dist/cjs/simplify/simplify.js.map +1 -0
  67. package/dist/cjs/simplify/state.d.ts.map +1 -0
  68. package/dist/cjs/simplify/state.js.map +1 -0
  69. package/dist/cjs/simplify/types.d.ts.map +1 -0
  70. package/dist/cjs/simplify/types.js.map +1 -0
  71. package/dist/cjs/simplify/utils.d.ts.map +1 -0
  72. package/dist/cjs/simplify/utils.js.map +1 -0
  73. package/dist/cjs/slice.d.ts.map +1 -0
  74. package/dist/{slice.js → cjs/slice.js} +1 -1
  75. package/dist/cjs/slice.js.map +1 -0
  76. package/dist/cjs/strip.d.ts.map +1 -0
  77. package/dist/cjs/strip.js.map +1 -0
  78. package/dist/cjs/terminal.d.ts.map +1 -0
  79. package/dist/cjs/terminal.js.map +1 -0
  80. package/dist/cjs/typed-object.d.ts.map +1 -0
  81. package/dist/cjs/typed-object.js.map +1 -0
  82. package/dist/cjs/types.d.ts.map +1 -0
  83. package/dist/{sgr → cjs}/types.js.map +1 -1
  84. package/dist/esm/ansi.d.ts +85 -0
  85. package/dist/esm/ansi.d.ts.map +1 -0
  86. package/dist/esm/ansi.js +33 -0
  87. package/dist/esm/ansi.js.map +1 -0
  88. package/dist/esm/caret.d.ts +30 -0
  89. package/dist/esm/caret.d.ts.map +1 -0
  90. package/dist/esm/caret.js +64 -0
  91. package/dist/{caret.js.map → esm/caret.js.map} +1 -1
  92. package/dist/esm/erase.d.ts +17 -0
  93. package/dist/esm/erase.d.ts.map +1 -0
  94. package/dist/esm/erase.js +28 -0
  95. package/dist/{erase.js.map → esm/erase.js.map} +1 -1
  96. package/dist/esm/features/build.d.ts +7 -0
  97. package/dist/esm/features/build.d.ts.map +1 -0
  98. package/dist/esm/features/build.js +35 -0
  99. package/dist/esm/features/build.js.map +1 -0
  100. package/dist/esm/features/detect.d.ts +4 -0
  101. package/dist/esm/features/detect.d.ts.map +1 -0
  102. package/dist/esm/features/detect.js +29 -0
  103. package/dist/esm/features/detect.js.map +1 -0
  104. package/dist/esm/features/features.d.ts +3 -0
  105. package/dist/esm/features/features.d.ts.map +1 -0
  106. package/dist/esm/features/features.js +25 -0
  107. package/dist/esm/features/features.js.map +1 -0
  108. package/dist/esm/features/index.d.ts +3 -0
  109. package/dist/esm/features/index.d.ts.map +1 -0
  110. package/dist/esm/features/index.js +2 -0
  111. package/dist/esm/features/index.js.map +1 -0
  112. package/dist/esm/features/types.d.ts +12 -0
  113. package/dist/esm/features/types.d.ts.map +1 -0
  114. package/dist/esm/features/types.js +2 -0
  115. package/dist/esm/features/types.js.map +1 -0
  116. package/dist/esm/index.d.ts +4 -0
  117. package/dist/esm/index.d.ts.map +1 -0
  118. package/dist/esm/index.js +3 -0
  119. package/dist/esm/index.js.map +1 -0
  120. package/dist/esm/package.json +1 -0
  121. package/dist/esm/pad.d.ts +13 -0
  122. package/dist/esm/pad.d.ts.map +1 -0
  123. package/dist/esm/pad.js +12 -0
  124. package/dist/esm/pad.js.map +1 -0
  125. package/dist/esm/patterns.d.ts +4 -0
  126. package/dist/esm/patterns.d.ts.map +1 -0
  127. package/dist/esm/patterns.js +42 -0
  128. package/dist/esm/patterns.js.map +1 -0
  129. package/dist/esm/scroll.d.ts +8 -0
  130. package/dist/esm/scroll.d.ts.map +1 -0
  131. package/dist/esm/scroll.js +10 -0
  132. package/dist/esm/scroll.js.map +1 -0
  133. package/dist/esm/sgr/color/channel.d.ts +4 -0
  134. package/dist/esm/sgr/color/channel.d.ts.map +1 -0
  135. package/dist/esm/sgr/color/channel.js +30 -0
  136. package/dist/esm/sgr/color/channel.js.map +1 -0
  137. package/dist/esm/sgr/color/color.d.ts +4 -0
  138. package/dist/esm/sgr/color/color.d.ts.map +1 -0
  139. package/dist/esm/sgr/color/color.js +18 -0
  140. package/dist/esm/sgr/color/color.js.map +1 -0
  141. package/dist/esm/sgr/color/context.d.ts +13 -0
  142. package/dist/esm/sgr/color/context.d.ts.map +1 -0
  143. package/dist/esm/sgr/color/context.js +21 -0
  144. package/dist/esm/sgr/color/context.js.map +1 -0
  145. package/dist/esm/sgr/color/index.d.ts +2 -0
  146. package/dist/esm/sgr/color/index.d.ts.map +1 -0
  147. package/dist/esm/sgr/color/index.js +2 -0
  148. package/dist/esm/sgr/color/index.js.map +1 -0
  149. package/dist/esm/sgr/color/rgb.d.ts +5 -0
  150. package/dist/esm/sgr/color/rgb.d.ts.map +1 -0
  151. package/dist/esm/sgr/color/rgb.js +28 -0
  152. package/dist/esm/sgr/color/rgb.js.map +1 -0
  153. package/dist/esm/sgr/color/utils.d.ts +7 -0
  154. package/dist/esm/sgr/color/utils.d.ts.map +1 -0
  155. package/dist/esm/sgr/color/utils.js +53 -0
  156. package/dist/esm/sgr/color/utils.js.map +1 -0
  157. package/dist/esm/sgr/combine.d.ts +3 -0
  158. package/dist/esm/sgr/combine.d.ts.map +1 -0
  159. package/dist/esm/sgr/combine.js +11 -0
  160. package/dist/esm/sgr/combine.js.map +1 -0
  161. package/dist/esm/sgr/format-builder.d.ts +3 -0
  162. package/dist/esm/sgr/format-builder.d.ts.map +1 -0
  163. package/dist/esm/sgr/format-builder.js +30 -0
  164. package/dist/esm/sgr/format-builder.js.map +1 -0
  165. package/dist/esm/sgr/index.d.ts +3 -0
  166. package/dist/esm/sgr/index.d.ts.map +1 -0
  167. package/dist/esm/sgr/index.js +2 -0
  168. package/dist/esm/sgr/index.js.map +1 -0
  169. package/dist/esm/sgr/lazy.d.ts +6 -0
  170. package/dist/esm/sgr/lazy.d.ts.map +1 -0
  171. package/dist/esm/sgr/lazy.js +14 -0
  172. package/dist/esm/sgr/lazy.js.map +1 -0
  173. package/dist/esm/sgr/reset.d.ts +2 -0
  174. package/dist/esm/sgr/reset.d.ts.map +1 -0
  175. package/dist/esm/sgr/reset.js +2 -0
  176. package/dist/esm/sgr/reset.js.map +1 -0
  177. package/dist/esm/sgr/sgr.d.ts +4 -0
  178. package/dist/esm/sgr/sgr.d.ts.map +1 -0
  179. package/dist/esm/sgr/sgr.js +47 -0
  180. package/dist/esm/sgr/sgr.js.map +1 -0
  181. package/dist/esm/sgr/style.d.ts +3 -0
  182. package/dist/esm/sgr/style.d.ts.map +1 -0
  183. package/dist/esm/sgr/style.js +29 -0
  184. package/dist/esm/sgr/style.js.map +1 -0
  185. package/dist/esm/sgr/types.d.ts +59 -0
  186. package/dist/esm/sgr/types.d.ts.map +1 -0
  187. package/dist/esm/sgr/types.js +2 -0
  188. package/dist/{simplify → esm/sgr}/types.js.map +1 -1
  189. package/dist/esm/simplify/atom.d.ts +4 -0
  190. package/dist/esm/simplify/atom.d.ts.map +1 -0
  191. package/dist/esm/simplify/atom.js +33 -0
  192. package/dist/esm/simplify/atom.js.map +1 -0
  193. package/dist/esm/simplify/index.d.ts +2 -0
  194. package/dist/esm/simplify/index.d.ts.map +1 -0
  195. package/dist/esm/simplify/index.js +2 -0
  196. package/dist/esm/simplify/index.js.map +1 -0
  197. package/dist/esm/simplify/lookup.d.ts +3 -0
  198. package/dist/esm/simplify/lookup.d.ts.map +1 -0
  199. package/dist/esm/simplify/lookup.js +70 -0
  200. package/dist/esm/simplify/lookup.js.map +1 -0
  201. package/dist/esm/simplify/simplify.d.ts +3 -0
  202. package/dist/esm/simplify/simplify.d.ts.map +1 -0
  203. package/dist/esm/simplify/simplify.js +22 -0
  204. package/dist/esm/simplify/simplify.js.map +1 -0
  205. package/dist/esm/simplify/state.d.ts +5 -0
  206. package/dist/esm/simplify/state.d.ts.map +1 -0
  207. package/dist/esm/simplify/state.js +49 -0
  208. package/dist/esm/simplify/state.js.map +1 -0
  209. package/dist/esm/simplify/types.d.ts +9 -0
  210. package/dist/esm/simplify/types.d.ts.map +1 -0
  211. package/dist/esm/simplify/types.js +2 -0
  212. package/dist/esm/simplify/types.js.map +1 -0
  213. package/dist/esm/simplify/utils.d.ts +3 -0
  214. package/dist/esm/simplify/utils.d.ts.map +1 -0
  215. package/dist/esm/simplify/utils.js +28 -0
  216. package/dist/esm/simplify/utils.js.map +1 -0
  217. package/dist/esm/slice.d.ts +22 -0
  218. package/dist/esm/slice.d.ts.map +1 -0
  219. package/dist/esm/slice.js +69 -0
  220. package/dist/esm/slice.js.map +1 -0
  221. package/dist/esm/strip.d.ts +10 -0
  222. package/dist/esm/strip.d.ts.map +1 -0
  223. package/dist/esm/strip.js +8 -0
  224. package/dist/esm/strip.js.map +1 -0
  225. package/dist/esm/terminal.d.ts +26 -0
  226. package/dist/esm/terminal.d.ts.map +1 -0
  227. package/dist/esm/terminal.js +46 -0
  228. package/dist/{terminal.js.map → esm/terminal.js.map} +1 -1
  229. package/dist/esm/typed-object.d.ts +16 -0
  230. package/dist/esm/typed-object.d.ts.map +1 -0
  231. package/dist/esm/typed-object.js +33 -0
  232. package/dist/esm/typed-object.js.map +1 -0
  233. package/dist/esm/types.d.ts +25 -0
  234. package/dist/esm/types.d.ts.map +1 -0
  235. package/dist/esm/types.js +2 -0
  236. package/dist/esm/types.js.map +1 -0
  237. package/package.json +14 -7
  238. package/src/ansi.ts +6 -3
  239. package/src/features/features.ts +1 -1
  240. package/src/index.ts +3 -1
  241. package/src/require.ts +11 -0
  242. package/dist/ansi.d.ts.map +0 -1
  243. package/dist/ansi.js.map +0 -1
  244. package/dist/caret.d.ts.map +0 -1
  245. package/dist/erase.d.ts.map +0 -1
  246. package/dist/features/build.d.ts.map +0 -1
  247. package/dist/features/build.js.map +0 -1
  248. package/dist/features/detect.d.ts.map +0 -1
  249. package/dist/features/detect.js.map +0 -1
  250. package/dist/features/features.d.ts.map +0 -1
  251. package/dist/features/features.js.map +0 -1
  252. package/dist/features/index.d.ts.map +0 -1
  253. package/dist/features/index.js.map +0 -1
  254. package/dist/features/types.d.ts.map +0 -1
  255. package/dist/index.d.ts +0 -3
  256. package/dist/index.d.ts.map +0 -1
  257. package/dist/index.js +0 -24
  258. package/dist/index.js.map +0 -1
  259. package/dist/pad.d.ts.map +0 -1
  260. package/dist/pad.js.map +0 -1
  261. package/dist/patterns.d.ts.map +0 -1
  262. package/dist/patterns.js.map +0 -1
  263. package/dist/scroll.d.ts.map +0 -1
  264. package/dist/scroll.js.map +0 -1
  265. package/dist/sgr/color/channel.d.ts.map +0 -1
  266. package/dist/sgr/color/channel.js.map +0 -1
  267. package/dist/sgr/color/color.d.ts.map +0 -1
  268. package/dist/sgr/color/color.js.map +0 -1
  269. package/dist/sgr/color/context.d.ts.map +0 -1
  270. package/dist/sgr/color/context.js.map +0 -1
  271. package/dist/sgr/color/index.d.ts.map +0 -1
  272. package/dist/sgr/color/index.js.map +0 -1
  273. package/dist/sgr/color/rgb.d.ts.map +0 -1
  274. package/dist/sgr/color/rgb.js.map +0 -1
  275. package/dist/sgr/color/utils.d.ts.map +0 -1
  276. package/dist/sgr/color/utils.js.map +0 -1
  277. package/dist/sgr/combine.d.ts.map +0 -1
  278. package/dist/sgr/combine.js.map +0 -1
  279. package/dist/sgr/format-builder.d.ts.map +0 -1
  280. package/dist/sgr/format-builder.js.map +0 -1
  281. package/dist/sgr/index.d.ts.map +0 -1
  282. package/dist/sgr/index.js.map +0 -1
  283. package/dist/sgr/lazy.d.ts.map +0 -1
  284. package/dist/sgr/lazy.js.map +0 -1
  285. package/dist/sgr/reset.d.ts.map +0 -1
  286. package/dist/sgr/reset.js.map +0 -1
  287. package/dist/sgr/sgr.d.ts.map +0 -1
  288. package/dist/sgr/sgr.js.map +0 -1
  289. package/dist/sgr/style.d.ts.map +0 -1
  290. package/dist/sgr/style.js.map +0 -1
  291. package/dist/sgr/types.d.ts.map +0 -1
  292. package/dist/simplify/atom.d.ts.map +0 -1
  293. package/dist/simplify/atom.js.map +0 -1
  294. package/dist/simplify/index.d.ts.map +0 -1
  295. package/dist/simplify/index.js.map +0 -1
  296. package/dist/simplify/lookup.d.ts.map +0 -1
  297. package/dist/simplify/lookup.js.map +0 -1
  298. package/dist/simplify/simplify.d.ts.map +0 -1
  299. package/dist/simplify/simplify.js.map +0 -1
  300. package/dist/simplify/state.d.ts.map +0 -1
  301. package/dist/simplify/state.js.map +0 -1
  302. package/dist/simplify/types.d.ts.map +0 -1
  303. package/dist/simplify/utils.d.ts.map +0 -1
  304. package/dist/simplify/utils.js.map +0 -1
  305. package/dist/slice.d.ts.map +0 -1
  306. package/dist/slice.js.map +0 -1
  307. package/dist/strip.d.ts.map +0 -1
  308. package/dist/strip.js.map +0 -1
  309. package/dist/terminal.d.ts.map +0 -1
  310. package/dist/typed-object.d.ts.map +0 -1
  311. package/dist/typed-object.js.map +0 -1
  312. package/dist/types.d.ts.map +0 -1
  313. package/dist/types.js.map +0 -1
  314. /package/dist/{caret.d.ts → cjs/caret.d.ts} +0 -0
  315. /package/dist/{caret.js → cjs/caret.js} +0 -0
  316. /package/dist/{erase.d.ts → cjs/erase.d.ts} +0 -0
  317. /package/dist/{erase.js → cjs/erase.js} +0 -0
  318. /package/dist/{features → cjs/features}/build.d.ts +0 -0
  319. /package/dist/{features → cjs/features}/build.js +0 -0
  320. /package/dist/{features → cjs/features}/detect.d.ts +0 -0
  321. /package/dist/{features → cjs/features}/detect.js +0 -0
  322. /package/dist/{features → cjs/features}/features.d.ts +0 -0
  323. /package/dist/{features → cjs/features}/index.d.ts +0 -0
  324. /package/dist/{features → cjs/features}/index.js +0 -0
  325. /package/dist/{features → cjs/features}/types.d.ts +0 -0
  326. /package/dist/{features → cjs/features}/types.js +0 -0
  327. /package/dist/{pad.d.ts → cjs/pad.d.ts} +0 -0
  328. /package/dist/{pad.js → cjs/pad.js} +0 -0
  329. /package/dist/{patterns.d.ts → cjs/patterns.d.ts} +0 -0
  330. /package/dist/{patterns.js → cjs/patterns.js} +0 -0
  331. /package/dist/{scroll.d.ts → cjs/scroll.d.ts} +0 -0
  332. /package/dist/{scroll.js → cjs/scroll.js} +0 -0
  333. /package/dist/{sgr → cjs/sgr}/color/channel.d.ts +0 -0
  334. /package/dist/{sgr → cjs/sgr}/color/channel.js +0 -0
  335. /package/dist/{sgr → cjs/sgr}/color/color.d.ts +0 -0
  336. /package/dist/{sgr → cjs/sgr}/color/color.js +0 -0
  337. /package/dist/{sgr → cjs/sgr}/color/context.d.ts +0 -0
  338. /package/dist/{sgr → cjs/sgr}/color/context.js +0 -0
  339. /package/dist/{sgr → cjs/sgr}/color/index.d.ts +0 -0
  340. /package/dist/{sgr → cjs/sgr}/color/index.js +0 -0
  341. /package/dist/{sgr → cjs/sgr}/color/rgb.d.ts +0 -0
  342. /package/dist/{sgr → cjs/sgr}/color/rgb.js +0 -0
  343. /package/dist/{sgr → cjs/sgr}/color/utils.d.ts +0 -0
  344. /package/dist/{sgr → cjs/sgr}/color/utils.js +0 -0
  345. /package/dist/{sgr → cjs/sgr}/combine.d.ts +0 -0
  346. /package/dist/{sgr → cjs/sgr}/combine.js +0 -0
  347. /package/dist/{sgr → cjs/sgr}/format-builder.d.ts +0 -0
  348. /package/dist/{sgr → cjs/sgr}/format-builder.js +0 -0
  349. /package/dist/{sgr → cjs/sgr}/index.d.ts +0 -0
  350. /package/dist/{sgr → cjs/sgr}/index.js +0 -0
  351. /package/dist/{sgr → cjs/sgr}/lazy.d.ts +0 -0
  352. /package/dist/{sgr → cjs/sgr}/lazy.js +0 -0
  353. /package/dist/{sgr → cjs/sgr}/reset.d.ts +0 -0
  354. /package/dist/{sgr → cjs/sgr}/reset.js +0 -0
  355. /package/dist/{sgr → cjs/sgr}/sgr.d.ts +0 -0
  356. /package/dist/{sgr → cjs/sgr}/sgr.js +0 -0
  357. /package/dist/{sgr → cjs/sgr}/style.d.ts +0 -0
  358. /package/dist/{sgr → cjs/sgr}/style.js +0 -0
  359. /package/dist/{sgr → cjs/sgr}/types.d.ts +0 -0
  360. /package/dist/{sgr → cjs/sgr}/types.js +0 -0
  361. /package/dist/{simplify → cjs/simplify}/atom.d.ts +0 -0
  362. /package/dist/{simplify → cjs/simplify}/atom.js +0 -0
  363. /package/dist/{simplify → cjs/simplify}/index.d.ts +0 -0
  364. /package/dist/{simplify → cjs/simplify}/index.js +0 -0
  365. /package/dist/{simplify → cjs/simplify}/lookup.d.ts +0 -0
  366. /package/dist/{simplify → cjs/simplify}/lookup.js +0 -0
  367. /package/dist/{simplify → cjs/simplify}/simplify.d.ts +0 -0
  368. /package/dist/{simplify → cjs/simplify}/simplify.js +0 -0
  369. /package/dist/{simplify → cjs/simplify}/state.d.ts +0 -0
  370. /package/dist/{simplify → cjs/simplify}/state.js +0 -0
  371. /package/dist/{simplify → cjs/simplify}/types.d.ts +0 -0
  372. /package/dist/{simplify → cjs/simplify}/types.js +0 -0
  373. /package/dist/{simplify → cjs/simplify}/utils.d.ts +0 -0
  374. /package/dist/{simplify → cjs/simplify}/utils.js +0 -0
  375. /package/dist/{slice.d.ts → cjs/slice.d.ts} +0 -0
  376. /package/dist/{strip.d.ts → cjs/strip.d.ts} +0 -0
  377. /package/dist/{strip.js → cjs/strip.js} +0 -0
  378. /package/dist/{terminal.d.ts → cjs/terminal.d.ts} +0 -0
  379. /package/dist/{terminal.js → cjs/terminal.js} +0 -0
  380. /package/dist/{typed-object.d.ts → cjs/typed-object.d.ts} +0 -0
  381. /package/dist/{typed-object.js → cjs/typed-object.js} +0 -0
  382. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  383. /package/dist/{types.js → cjs/types.js} +0 -0
@@ -0,0 +1,59 @@
1
+ export type ColorKey = "fg" | "bg";
2
+ export type StyleKey = "bold" | "dim" | "italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "doubleUnderline" | "frame" | "encircle" | "overline";
3
+ export type ChainKey = ColorKey | StyleKey;
4
+ export type Chain<Keys extends ChainKey> = Color<Keys> & Style<Keys>;
5
+ export type ChainBuilder = <Keys extends ChainKey>(keys: ReadonlySet<Keys>, baseFormat: FormatBase) => Chain<Keys>;
6
+ export type Code = number | number[];
7
+ export interface FormatBase {
8
+ (text: string): string;
9
+ open: string;
10
+ close: string;
11
+ codes: {
12
+ open: Code;
13
+ close: Code;
14
+ };
15
+ }
16
+ export interface ChainedFormat<Keys extends ChainKey = ChainKey> extends FormatBase {
17
+ and: Chain<Keys>;
18
+ }
19
+ export type Format<Keys extends ChainKey = ChainKey> = [
20
+ Keys
21
+ ] extends [never] ? FormatBase : ChainedFormat<Keys>;
22
+ export type FormatBuilder = <Keys extends ChainKey = ChainKey>(keys: ReadonlySet<Keys>, open: Code, close: Code, reset?: boolean) => Format<Keys>;
23
+ export interface Channel<Keys extends ChainKey = ChainKey> {
24
+ black: Format<Keys>;
25
+ red: Format<Keys>;
26
+ green: Format<Keys>;
27
+ yellow: Format<Keys>;
28
+ blue: Format<Keys>;
29
+ magenta: Format<Keys>;
30
+ cyan: Format<Keys>;
31
+ white: Format<Keys>;
32
+ brightBlack: Format<Keys>;
33
+ brightRed: Format<Keys>;
34
+ brightGreen: Format<Keys>;
35
+ brightYellow: Format<Keys>;
36
+ brightBlue: Format<Keys>;
37
+ brightMagenta: Format<Keys>;
38
+ brightCyan: Format<Keys>;
39
+ brightWhite: Format<Keys>;
40
+ rgb: (r: number, g: number, b: number) => Format<Keys>;
41
+ x256: {
42
+ (code: number): Format<Keys>;
43
+ (r: number, g: number, b: number): Format<Keys>;
44
+ };
45
+ default: string;
46
+ }
47
+ export type Color<Keys extends ChainKey = ChainKey> = {
48
+ [K in Extract<ColorKey, Keys>]: Channel<Exclude<Keys, K>>;
49
+ };
50
+ export type Style<Keys extends ChainKey = ChainKey> = {
51
+ [K in Extract<StyleKey, Keys>]: Format<Exclude<Keys, K>>;
52
+ };
53
+ export interface SGR {
54
+ fg: Channel<Exclude<ChainKey, "fg">>;
55
+ bg: Channel<Exclude<ChainKey, "bg">>;
56
+ style: Style;
57
+ reset: string;
58
+ }
59
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sgr/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,GACjB,MAAM,GACN,KAAK,GACL,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,eAAe,GACf,iBAAiB,GACjB,OAAO,GACP,UAAU,GACV,UAAU,CAAC;AAEd,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,SAAS,QAAQ,EAChD,IAAI,EAAS,WAAW,CAAC,IAAI,CAAC,EAC9B,UAAU,EAAG,UAAU,KACnB,KAAK,CAAC,IAAI,CAAC,CAAC;AAEjB,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAErC,MAAM,WAAW,UAAU;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB,IAAI,EAAI,MAAM,CAAC;IACf,KAAK,EAAG,MAAM,CAAC;IACf,KAAK,EAAG;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,UAAU;IAClF,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACjB;AAED,MAAM,MAAM,MAAM,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAClD;IAAC,IAAI;CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,EAC5D,IAAI,EAAK,WAAW,CAAC,IAAI,CAAC,EAC1B,IAAI,EAAK,IAAI,EACb,KAAK,EAAI,IAAI,EACb,KAAK,CAAC,EAAG,OAAO,KACZ,MAAM,CAAC,IAAI,CAAC,CAAC;AAElB,MAAM,WAAW,OAAO,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ;IACxD,KAAK,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,EAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,EAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,EAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,WAAW,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAS,EAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,YAAY,EAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvD,IAAI,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;KAChD,CAAC;IAEF,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAAI;KACpD,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAAI;KACpD,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,WAAW,GAAG;IACnB,EAAE,EAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,EAAE,EAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACzC,KAAK,EAAG,KAAK,CAAC;IACd,KAAK,EAAG,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/simplify/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/sgr/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
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"}
@@ -0,0 +1,33 @@
1
+ export const buildExtendedColorAtom = (attribute, codes, index) => {
2
+ switch (codes[index + 1]) {
3
+ case 2:
4
+ if (index + 5 >= codes.length)
5
+ return { attribute, code: codes.slice(index), skip: codes.length - index - 1 };
6
+ return { attribute, code: codes.slice(index, index + 5), skip: 4 };
7
+ case 5:
8
+ if (index + 3 >= codes.length)
9
+ return { attribute, code: codes.slice(index), skip: codes.length - index - 1 };
10
+ return { attribute, code: codes.slice(index, index + 3), skip: 2 };
11
+ default:
12
+ return { attribute, code: codes.slice(index, index + 2), skip: 1 };
13
+ }
14
+ };
15
+ export const buildIntensityAtom = (attribute, codes, index, state) => {
16
+ const code = codes[index];
17
+ if (code === 22)
18
+ return { attribute, code: [code] };
19
+ const current = state.get("intensity");
20
+ if (
21
+ // If there is no intensity currently in the state, then we can just set the new state.
22
+ !current ||
23
+ // If the current intensity is normal (22), then we can just set the new state.
24
+ // Note that while the ultimate transition may return a code sequence of `[22, 1]` or
25
+ // `[22, 2]`, in our state representation, the only two-code intensity is `[1, 2]`.
26
+ current[0] === 22 ||
27
+ // If the current intensity is equal to the new intensity, then return the same state.
28
+ current.length === 1 && current[0] === code)
29
+ return { attribute, code: [code] };
30
+ // Otherwise, we need to set both intensity codes.
31
+ return { attribute, code: [1, 2] };
32
+ };
33
+ //# sourceMappingURL=atom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atom.js","sourceRoot":"","sources":["../../../src/simplify/atom.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,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;AAEF,MAAM,CAAC,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"}
@@ -0,0 +1,2 @@
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"}
@@ -0,0 +1,2 @@
1
+ export * from "./simplify.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/simplify/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,3 @@
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"}
@@ -0,0 +1,70 @@
1
+ import { buildExtendedColorAtom, buildIntensityAtom } from "./atom.js";
2
+ const codeMap = {
3
+ 0: ["reset"],
4
+ 1: ["intensity", buildIntensityAtom],
5
+ 2: ["intensity", buildIntensityAtom],
6
+ 3: ["italic"],
7
+ 4: ["underline"],
8
+ 7: ["inverse"],
9
+ 8: ["hidden"],
10
+ 9: ["strikethrough"],
11
+ 21: ["underline"],
12
+ 22: ["intensity", buildIntensityAtom],
13
+ 23: ["italic"],
14
+ 24: ["underline"],
15
+ 27: ["inverse"],
16
+ 28: ["hidden"],
17
+ 29: ["strikethrough"],
18
+ 30: ["fg"],
19
+ 31: ["fg"],
20
+ 32: ["fg"],
21
+ 33: ["fg"],
22
+ 34: ["fg"],
23
+ 35: ["fg"],
24
+ 36: ["fg"],
25
+ 37: ["fg"],
26
+ 38: ["fg", buildExtendedColorAtom],
27
+ 39: ["fg"],
28
+ 40: ["bg"],
29
+ 41: ["bg"],
30
+ 42: ["bg"],
31
+ 43: ["bg"],
32
+ 44: ["bg"],
33
+ 45: ["bg"],
34
+ 46: ["bg"],
35
+ 47: ["bg"],
36
+ 48: ["bg", buildExtendedColorAtom],
37
+ 49: ["bg"],
38
+ 51: ["frame"],
39
+ 52: ["frame"],
40
+ 53: ["overline"],
41
+ 54: ["frame"],
42
+ 55: ["overline"],
43
+ 90: ["fg"],
44
+ 91: ["fg"],
45
+ 92: ["fg"],
46
+ 93: ["fg"],
47
+ 94: ["fg"],
48
+ 95: ["fg"],
49
+ 96: ["fg"],
50
+ 97: ["fg"],
51
+ 100: ["bg"],
52
+ 101: ["bg"],
53
+ 102: ["bg"],
54
+ 103: ["bg"],
55
+ 104: ["bg"],
56
+ 105: ["bg"],
57
+ 106: ["bg"],
58
+ 107: ["bg"],
59
+ };
60
+ export function lookUpAtom(codes, index, state) {
61
+ const code = codes[index];
62
+ const entry = codeMap[code];
63
+ if (!entry)
64
+ return { attribute: code, code: [code] };
65
+ const [attribute, buildAtom] = entry;
66
+ if (buildAtom)
67
+ return buildAtom(attribute, codes, index, state);
68
+ return { attribute, code: [code] };
69
+ }
70
+ //# 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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"}
@@ -0,0 +1,3 @@
1
+ export declare function simplify(text: string): string;
2
+ export type Simplify = typeof simplify;
3
+ //# 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;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { rxSGR } from "../patterns.js";
2
+ import { State } from "./state.js";
3
+ export function simplify(text) {
4
+ // `.split` doesn't modify `lastIndex`, so no clone is necessary here.
5
+ const parts = text.split(rxSGR);
6
+ const state = new State();
7
+ let result = parts[0];
8
+ for (let i = 1; i < parts.length;) {
9
+ let codes = parts[i++].split(";").map(Number);
10
+ let chunk = parts[i++];
11
+ while (!chunk && i < parts.length) {
12
+ codes.push(...parts[i++].split(";").map(Number));
13
+ chunk = parts[i++];
14
+ }
15
+ codes = state.update(codes);
16
+ if (codes.length)
17
+ result += `\x1b[${codes.join(";")}m`;
18
+ result += chunk;
19
+ }
20
+ return result;
21
+ }
22
+ //# sourceMappingURL=simplify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAI,IAAI,KAAK,EAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;QACpC,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"}
@@ -0,0 +1,5 @@
1
+ import type { Attribute, AttributeMap } from "./types";
2
+ export declare class State extends Map<Attribute, number[]> implements AttributeMap {
3
+ update(codes: number[]): number[];
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"}
@@ -0,0 +1,49 @@
1
+ import { lookUpAtom } from "./lookup.js";
2
+ import { arraysEqual, transitionIntensity } from "./utils.js";
3
+ const defaultCodes = new Map([
4
+ ["intensity", [22]],
5
+ ["italic", [23]],
6
+ ["underline", [24]],
7
+ ["inverse", [27]],
8
+ ["hidden", [28]],
9
+ ["strikethrough", [29]],
10
+ ["fg", [39]],
11
+ ["bg", [49]],
12
+ ["frame", [54]],
13
+ ["overline", [55]],
14
+ ]);
15
+ export class State extends Map {
16
+ update(codes) {
17
+ let snapshot = new Map(this);
18
+ const attributes = new Set();
19
+ for (let i = 0; i < codes.length; i++) {
20
+ const { attribute, code, skip } = lookUpAtom(codes, i, this);
21
+ if (attribute === "reset") {
22
+ attributes.clear();
23
+ this.clear();
24
+ attributes.add("reset");
25
+ for (const [attr, defaultCode] of defaultCodes)
26
+ this.set(attr, defaultCode);
27
+ snapshot = new Map(this);
28
+ continue;
29
+ }
30
+ attributes.add(attribute);
31
+ this.set(attribute, code);
32
+ if (skip)
33
+ i += skip;
34
+ }
35
+ return Array.from(attributes).flatMap(attribute => {
36
+ if (attribute === "reset")
37
+ return [0];
38
+ const code = this.get(attribute);
39
+ if (arraysEqual(code, snapshot.get(attribute)))
40
+ return [];
41
+ if (attribute === "intensity") {
42
+ const previous = snapshot.get(attribute);
43
+ return transitionIntensity(previous, code);
44
+ }
45
+ return code;
46
+ });
47
+ }
48
+ }
49
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/simplify/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAA4B,UAAU,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;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,MAAM,OAAO,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,UAAU,CAAC,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,WAAW,CAAC,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,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5C,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/simplify/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
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"}
@@ -0,0 +1,28 @@
1
+ export function arraysEqual(a, b) {
2
+ if (a === b)
3
+ return true;
4
+ if (!a || !b || a.length !== b.length)
5
+ return false;
6
+ for (let i = 0; i < a.length; i++) {
7
+ if (a[i] !== b[i])
8
+ return false;
9
+ }
10
+ return true;
11
+ }
12
+ export function transitionIntensity(previous, current) {
13
+ if (!previous || previous[0] === 22 || current[0] === 22)
14
+ return current;
15
+ const oldBold = previous[0] === 1;
16
+ const newBold = current[0] === 1;
17
+ const oldDim = previous[previous.length - 1] === 2;
18
+ const newDim = current[current.length - 1] === 2;
19
+ const result = [];
20
+ if (oldBold && !newBold || oldDim && !newDim)
21
+ result.push(22);
22
+ if (newBold && (!oldBold || result[0] === 22))
23
+ result.push(1);
24
+ if (newDim && (!oldDim || result[0] === 22))
25
+ result.push(2);
26
+ return result;
27
+ }
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/simplify/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,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,MAAM,UAAU,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"}
@@ -0,0 +1,22 @@
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
+ export type Slice = typeof slice;
22
+ //# 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;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { rxCSI, rxSGR } from "./patterns.js";
2
+ import { simplify } from "./simplify/index.js";
3
+ import { visibleLength } from "./strip.js";
4
+ function scanCSI(text, fromStringIndex, visibleCount) {
5
+ // We intentionally mutate `lastIndex` here, so we need a clone.
6
+ const rx = new RegExp(rxCSI);
7
+ let length = 0;
8
+ let index = fromStringIndex;
9
+ while (index < text.length && length < visibleCount) {
10
+ if (text[index] === "\x1b") {
11
+ rx.lastIndex = index;
12
+ const match = rx.exec(text);
13
+ if (match?.index === index) {
14
+ index += match[0].length;
15
+ continue;
16
+ }
17
+ }
18
+ index++;
19
+ length++;
20
+ }
21
+ return { index, length };
22
+ }
23
+ function skippedSequences(text, start, end) {
24
+ const sequences = text.slice(start, end).match(new RegExp(rxSGR));
25
+ return sequences ? simplify(sequences.join("")) : "";
26
+ }
27
+ /**
28
+ * Return a slice of the given text, counting only visible characters (i.e. ignoring ANSI escape
29
+ * codes). The returned slice will include any ANSI escape codes from within the slice. In addition,
30
+ * SGR codes (m) from before and after the slice will be combined, simplified, and included so that
31
+ * the terminal state before and after the slice will be the same as if the whole string were
32
+ * printed. If you compose two or more slices together, there may be redundant SGR sequences at the
33
+ * boundaries, but the result will be correct. You can use `simplify` to remove the redundancies.
34
+ *
35
+ * Note the following caveats:
36
+ *
37
+ * * Any non-SGR ANSI codes prior to or after the slice will be ignored.
38
+ * * Control characters (such as newlines and backspaces) both outside and inside the slice are
39
+ * counted as visible characters.
40
+ *
41
+ * These caveats mean that text may not appear on screen to be the same number of characters as the
42
+ * length of the slice, and that the terminal state may not be exactly the same at the start and end
43
+ * of the slice as it would be if the whole string were printed. This function is intended mostly
44
+ * for text that contains SGR codes, but no other ANSI codes or control characters.
45
+ */
46
+ export function slice(text, start, end) {
47
+ let textVisibleLength;
48
+ const getVisibleLength = () => textVisibleLength ??= visibleLength(text);
49
+ if (start < 0 || end < 0) {
50
+ textVisibleLength = getVisibleLength();
51
+ if (start < 0)
52
+ start = Math.max(0, textVisibleLength + start);
53
+ if (end < 0)
54
+ end = Math.max(0, textVisibleLength + end);
55
+ }
56
+ if (start > end)
57
+ return "";
58
+ if (start === 0 && (end >= text.length || end >= getVisibleLength()))
59
+ return text;
60
+ const { index: startIndex, length: visibleSkipped } = scanCSI(text, 0, start);
61
+ const endIndex = startIndex < text.length && visibleSkipped < end
62
+ ? scanCSI(text, startIndex, end - visibleSkipped).index
63
+ : text.length;
64
+ // Start and end the string in the same terminal state it would be in if the string weren't sliced.
65
+ const leadingSequences = skippedSequences(text, 0, startIndex);
66
+ const trailingSequences = skippedSequences(text, endIndex);
67
+ return leadingSequences + text.slice(startIndex, endIndex) + trailingSequences;
68
+ }
69
+ //# sourceMappingURL=slice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice.js","sourceRoot":"","sources":["../../src/slice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /** Remove all ANSI escape codes from the given text. */
2
+ export declare const strip: (text: string) => string;
3
+ /** Calculate the visible length of a string with ANSI escape codes stripped. */
4
+ export declare const visibleLength: (text: string) => number;
5
+ /** Remove all ANSI escape codes except SGR codes (m), which are used for color and styling. */
6
+ export declare const sanitize: (text: string) => string;
7
+ export type Strip = typeof strip;
8
+ export type VisibleLength = typeof visibleLength;
9
+ export type Sanitize = typeof sanitize;
10
+ //# sourceMappingURL=strip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip.d.ts","sourceRoot":"","sources":["../../src/strip.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,eAAO,MAAM,KAAK,GAAY,MAAM,MAAM,KAAG,MAA6C,CAAC;AAE3F,gFAAgF;AAChF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAA4B,CAAC;AAE1E,+FAA+F;AAC/F,eAAO,MAAM,QAAQ,GAAS,MAAM,MAAM,KAAG,MAAgD,CAAC;AAE9F,MAAM,MAAM,KAAK,GAAW,OAAO,KAAK,CAAC;AACzC,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAQ,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { rxCSI, rxUnsafe } from "./patterns.js";
2
+ /** Remove all ANSI escape codes from the given text. */
3
+ export const strip = (text) => text.replace(new RegExp(rxCSI), "");
4
+ /** Calculate the visible length of a string with ANSI escape codes stripped. */
5
+ export const visibleLength = (text) => strip(text).length;
6
+ /** Remove all ANSI escape codes except SGR codes (m), which are used for color and styling. */
7
+ export const sanitize = (text) => text.replace(new RegExp(rxUnsafe), "");
8
+ //# sourceMappingURL=strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strip.js","sourceRoot":"","sources":["../../src/strip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AAE3C,wDAAwD;AACxD,MAAM,CAAC,MAAM,KAAK,GAAW,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AAE3F,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAE1E,+FAA+F;AAC/F,MAAM,CAAC,MAAM,QAAQ,GAAQ,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ declare const terminal: {
2
+ focusReporting: {
3
+ enable: string;
4
+ disable: string;
5
+ focus: string;
6
+ blur: string;
7
+ };
8
+ alternateScreen: {
9
+ enable: string;
10
+ disable: string;
11
+ legacy: {
12
+ enable: string;
13
+ disable: string;
14
+ };
15
+ };
16
+ bracketedPaste: {
17
+ enable: string;
18
+ disable: string;
19
+ start: string;
20
+ end: string;
21
+ };
22
+ };
23
+ export type Terminal = typeof terminal;
24
+ export declare const makeTerminal: (enabled?: boolean) => Terminal;
25
+ export {};
26
+ //# sourceMappingURL=terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/terminal.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAwBb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC;AA4BvC,eAAO,MAAM,YAAY,GAAI,iBAAc,KAAG,QAAyC,CAAC"}
@@ -0,0 +1,46 @@
1
+ const terminal = {
2
+ focusReporting: {
3
+ enable: "\x1b[?1004h",
4
+ disable: "\x1b[?1004l",
5
+ focus: "\x1b[I",
6
+ blur: "\x1b[O",
7
+ },
8
+ alternateScreen: {
9
+ enable: "\x1b[?1049h",
10
+ disable: "\x1b[?1049l",
11
+ legacy: {
12
+ enable: "\x1b[?47h",
13
+ disable: "\x1b[?47l",
14
+ },
15
+ },
16
+ bracketedPaste: {
17
+ enable: "\x1b[?2004h",
18
+ disable: "\x1b[?2004l",
19
+ start: "\x1b[200~",
20
+ end: "\x1b[201~",
21
+ },
22
+ };
23
+ const disabled = {
24
+ focusReporting: {
25
+ enable: "",
26
+ disable: "",
27
+ focus: "",
28
+ blur: "",
29
+ },
30
+ alternateScreen: {
31
+ enable: "",
32
+ disable: "",
33
+ legacy: {
34
+ enable: "",
35
+ disable: "",
36
+ },
37
+ },
38
+ bracketedPaste: {
39
+ enable: "",
40
+ disable: "",
41
+ start: "",
42
+ end: "",
43
+ },
44
+ };
45
+ export const makeTerminal = (enabled = true) => enabled ? terminal : disabled;
46
+ //# sourceMappingURL=terminal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG;IAChB,cAAc,EAAE;QACf,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QACvB,KAAK,EAAK,QAAQ;QAClB,IAAI,EAAM,QAAQ;KAClB;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QAEvB,MAAM,EAAE;YACP,MAAM,EAAI,WAAW;YACrB,OAAO,EAAG,WAAW;SACrB;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QACvB,KAAK,EAAK,WAAW;QACrB,GAAG,EAAO,WAAW;KACrB;CACD,CAAC;AAIF,MAAM,QAAQ,GAAa;IAC1B,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QAEZ,MAAM,EAAE;YACP,MAAM,EAAI,EAAE;YACZ,OAAO,EAAG,EAAE;SACZ;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,GAAG,EAAO,EAAE;KACZ;CACD,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,IAAI,EAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAA3E,QAAA,YAAY,gBAA+D"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/terminal.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IAChB,cAAc,EAAE;QACf,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QACvB,KAAK,EAAK,QAAQ;QAClB,IAAI,EAAM,QAAQ;KAClB;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QAEvB,MAAM,EAAE;YACP,MAAM,EAAI,WAAW;YACrB,OAAO,EAAG,WAAW;SACrB;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,aAAa;QACvB,OAAO,EAAG,aAAa;QACvB,KAAK,EAAK,WAAW;QACrB,GAAG,EAAO,WAAW;KACrB;CACD,CAAC;AAIF,MAAM,QAAQ,GAAa;IAC1B,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,IAAI,EAAM,EAAE;KACZ;IAED,eAAe,EAAE;QAChB,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QAEZ,MAAM,EAAE;YACP,MAAM,EAAI,EAAE;YACZ,OAAO,EAAG,EAAE;SACZ;KACD;IAED,cAAc,EAAE;QACf,MAAM,EAAI,EAAE;QACZ,OAAO,EAAG,EAAE;QACZ,KAAK,EAAK,EAAE;QACZ,GAAG,EAAO,EAAE;KACZ;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,IAAI,EAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC"}