@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,42 @@
1
+ /*
2
+ I'm freezing these to prevent accidental mutation of the `lastIndex` property, which could keep
3
+ future calls from starting at the beginning of the string.
4
+
5
+ Code using these objects will have to clone them (with `new RegExp(rx)`) before using functions
6
+ that modify `lastIndex` (such as `exec`). But according to my benchmarks, cloning the regex takes
7
+ mere nanoseconds, and it wasn't even measurable when operating on longer strings. V8 clearly uses a
8
+ global cache of compiled regexes. I assume that SpiderMonkey does the same thing.
9
+
10
+ Here are my `timeit` benchmark results:
11
+
12
+ ```js
13
+ const {timeit} = require("$timeit");
14
+
15
+ const rxSGR = /\x1b\[[\d;]*m/g;
16
+ const short = "\x1b[31mred \x1b[32mgreen \x1b[34mblue \x1b[0m";
17
+ const long = short.repeat(1000);
18
+
19
+ timeit(() => short.replace(rxSGR, ""), {description: "short - no clone "});
20
+ timeit(() => short.replace(new RegExp(rxSGR), ""), {description: "short - clone object "});
21
+ timeit(() => short.replace(new RegExp(rxSGR.source, "g"), ""), {description: "short - clone source "});
22
+
23
+ console.log();
24
+
25
+ timeit(() => long .replace(rxSGR, ""), {description: "long - no clone "});
26
+ timeit(() => long .replace(new RegExp(rxSGR), ""), {description: "long - clone object "});
27
+ timeit(() => long .replace(new RegExp(rxSGR.source, "g"), ""), {description: "long - clone source "});
28
+
29
+ // Output:
30
+ // short - no clone : 82.73 ns (12,087,731 in 1.000016982 s)
31
+ // short - clone object : 142.132 ns (7,035,692 in 1.0000001770000002 s)
32
+ // short - clone source : 127.872 ns (7,820,293 in 1.00000017 s)
33
+ //
34
+ // long - no clone : 47.953 ųs (20,854 in 1.0000098149999999 s)
35
+ // long - clone object : 46.713 ųs (21,408 in 1.0000285520000003 s)
36
+ // long - clone source : 46.491 ųs (21,510 in 1.000026492 s)
37
+ ```
38
+ */
39
+ export const rxSGR = Object.freeze(/\x1b\[[\d;]*m/g);
40
+ export const rxCSI = Object.freeze(/\x1b\[[0-?]*[ -/]*[@-~]/g);
41
+ export const rxUnsafe = Object.freeze(/\x1b\[[0-?]*[ -/]*[@-ln-~]/g); // Everything except SGR codes (m).
42
+ //# sourceMappingURL=patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCE;AAEF,MAAM,CAAC,MAAM,KAAK,GAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,KAAK,GAAM,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,mCAAmC"}
@@ -0,0 +1,8 @@
1
+ declare const scroll: {
2
+ up: (lines?: number) => string;
3
+ down: (lines?: number) => string;
4
+ };
5
+ export type Scroll = typeof scroll;
6
+ export declare const makeScroll: (enabled?: boolean) => Scroll;
7
+ export {};
8
+ //# sourceMappingURL=scroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;iBACK,MAAM,KAAG,MAAM;mBACf,MAAM,KAAG,MAAM;CAC/B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAOnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
@@ -0,0 +1,10 @@
1
+ const scroll = {
2
+ up: (lines) => `\x1b[${lines ?? 1}S`,
3
+ down: (lines) => `\x1b[${lines ?? 1}T`,
4
+ };
5
+ const disabled = {
6
+ up: () => "",
7
+ down: () => "",
8
+ };
9
+ export const makeScroll = (enabled = true) => enabled ? scroll : disabled;
10
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,CAAC,KAAc,EAAU,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG;IACxD,IAAI,EAAG,CAAC,KAAc,EAAU,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG;CACxD,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAK,GAAG,EAAE,CAAC,EAAE;IACf,IAAI,EAAG,GAAG,EAAE,CAAC,EAAE;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ColorDepth } from "../../features";
2
+ import type { ChainKey, Channel, ColorKey, FormatBuilder, Style } from "../types";
3
+ export declare function makeChannel(keys: ReadonlySet<ChainKey>, makeFormatter: FormatBuilder, style: Style, colorDepth: ColorDepth, channel: ColorKey): Channel;
4
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAA6C,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAahF,wBAAgB,WAAW,CAC1B,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,EAC1B,OAAO,EAAS,QAAQ,GACtB,OAAO,CAmBT"}
@@ -0,0 +1,30 @@
1
+ import { lazy } from "../lazy.js";
2
+ import { buildContext } from "./context.js";
3
+ import { makeRGB, makeX256 } from "./rgb.js";
4
+ const colors = [
5
+ "black",
6
+ "red",
7
+ "green",
8
+ "yellow",
9
+ "blue",
10
+ "magenta",
11
+ "cyan",
12
+ "white",
13
+ ];
14
+ export function makeChannel(keys, makeFormatter, style, colorDepth, channel) {
15
+ const ctx = buildContext(keys, makeFormatter, style, colorDepth, channel);
16
+ const { build, bright, open, close } = ctx;
17
+ const rtn = {
18
+ rgb: makeRGB(ctx),
19
+ x256: makeX256(ctx),
20
+ default: colorDepth > 1 ? `\x1b[${close}m` : "",
21
+ };
22
+ for (let i = 0; i < colors.length; i++) {
23
+ const color = colors[i];
24
+ const brightColor = `bright${color[0].toUpperCase()}${color.slice(1)}`;
25
+ lazy.add(rtn, color, () => build(open + i));
26
+ lazy.add(rtn, brightColor, () => bright(i));
27
+ }
28
+ return rtn;
29
+ }
30
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAmB,SAAS,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAW,WAAW,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,GAAG;IACd,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;CACE,CAAC;AAEX,MAAM,UAAU,WAAW,CAC1B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,GAAG,CAAC;IAEzC,MAAM,GAAG,GAAG;QACX,GAAG,EAAO,OAAO,CAAC,GAAG,CAAC;QACtB,IAAI,EAAM,QAAQ,CAAC,GAAG,CAAC;QACvB,OAAO,EAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;KACrC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAS,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ColorDepth } from "../../features";
2
+ import type { ChainKey, Color, FormatBuilder, Style } from "../types";
3
+ export declare function makeColor(keys: ReadonlySet<ChainKey>, makeFormatter: FormatBuilder, style: Style, colorDepth: ColorDepth): Color<any>;
4
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAiC,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAIpE,wBAAgB,SAAS,CACxB,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,GACxB,KAAK,CAAC,GAAG,CAAC,CAcZ"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ import { lazy } from "../lazy.js";
3
+ import { makeChannel } from "./channel.js";
4
+ const channels = ["fg", "bg"];
5
+ export function makeColor(keys, makeFormatter, style, colorDepth) {
6
+ const rtn = {};
7
+ for (const channel of channels) {
8
+ if (keys.has(channel)) {
9
+ lazy.add(rtn, channel, () => {
10
+ const newKeys = new Set(keys);
11
+ newKeys.delete(channel);
12
+ return makeChannel(newKeys, makeFormatter, style, colorDepth, channel);
13
+ });
14
+ }
15
+ }
16
+ return rtn;
17
+ }
18
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAC,IAAI,EAAC,MAAa,SAAS,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAKtC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAEvC,MAAM,UAAU,SAAS,CACxB,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B;IAE1B,MAAM,GAAG,GAAG,EAAgB,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxB,OAAO,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ColorDepth } from "../../features";
2
+ import type { ChainKey, Code, ColorKey, Format, FormatBuilder, Style } from "../types";
3
+ export declare function buildContext(keys: ReadonlySet<ChainKey>, makeFormatter: FormatBuilder, style: Style, colorDepth: ColorDepth, channel: ColorKey): {
4
+ colorDepth: ColorDepth;
5
+ channel: ColorKey;
6
+ open: number;
7
+ close: number;
8
+ build: (open: Code) => Format;
9
+ bright: (index: number) => Format;
10
+ x16ToX8: (code: number) => Format;
11
+ };
12
+ export type Context = ReturnType<typeof buildContext>;
13
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAc,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAOjG,wBAAgB,YAAY,CAC3B,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,EAC1B,OAAO,EAAS,QAAQ;;;;;kBAIH,IAAI,KAAG,MAAM;oBAQZ,MAAM,KAAK,MAAM;oBAQjB,MAAM,KAAK,MAAM;EAMvC;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { combineCodes } from "../combine.js";
2
+ const baseCodes = {
3
+ fg: { open: 30, close: 39 },
4
+ bg: { open: 40, close: 49 },
5
+ };
6
+ export function buildContext(keys, makeFormatter, style, colorDepth, channel) {
7
+ const { open, close } = baseCodes[channel];
8
+ const build = (open) => makeFormatter(keys, open, close);
9
+ const combine = (base, style) => makeFormatter(keys, combineCodes(base.codes.open, style.codes.open), combineCodes(base.codes.close, style.codes.close));
10
+ const bright = colorDepth >= 4 ? index => build(open + 60 + index) :
11
+ colorDepth === 3 ?
12
+ channel === "fg" ?
13
+ index => combine(style.bold, build(open + index)) :
14
+ index => build(open + index) :
15
+ () => build(0);
16
+ const x16ToX8 = channel === "fg" ?
17
+ code => code >= 60 ? combine(style.bold, build(open + code - 60)) : build(open + code) :
18
+ code => code >= 60 ? build(open + code - 60) : build(open + code);
19
+ return { colorDepth, channel, open, close, build, bright, x16ToX8 };
20
+ }
21
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAKxC,MAAM,SAAS,GAAG;IACjB,EAAE,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC;IACzB,EAAE,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC;CACzB,CAAC;AAEF,MAAM,UAAU,YAAY,CAC3B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,CAAC,IAAU,EAAU,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,KAAiB,EAAU,EAAE,CAAC,aAAa,CAC7E,IAAI,EACJ,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAChD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CACjD,CAAC;IAEF,MAAM,MAAM,GACX,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACrD,UAAU,KAAK,CAAC,CAAC,CAAC;YACjB,OAAO,KAAK,IAAI,CAAC,CAAC;gBACjB,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;YAChC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhB,MAAM,OAAO,GACZ,OAAO,KAAK,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAEpE,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./color";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./color.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sgr/color/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Channel, Format } from "../types";
2
+ import type { Context } from "./context";
3
+ export declare function makeRGB(ctx: Context): Channel["rgb"];
4
+ export declare function makeX256(ctx: Context): (...args: [number] | [number, number, number]) => Format;
5
+ //# sourceMappingURL=rgb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAc,WAAW,CAAC;AAE/C,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAapD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CA2B/F"}
@@ -0,0 +1,28 @@
1
+ import { clip, rgbToX256, rgbToX16, rgbToX8, x256ToRgb } from "./utils.js";
2
+ export function makeRGB(ctx) {
3
+ const { colorDepth, channel, build, open, x16ToX8 } = ctx;
4
+ return (colorDepth >= 24 ? (r, g, b) => build([open + 8, 2, ...clip(r, g, b)]) :
5
+ colorDepth >= 8 ? (r, g, b) => build([open + 8, 5, rgbToX256(...clip(r, g, b))]) :
6
+ colorDepth >= 4 ? (r, g, b) => build(open + rgbToX16(...clip(r, g, b))) :
7
+ colorDepth === 3 ?
8
+ channel === "fg" ?
9
+ (r, g, b) => x16ToX8(rgbToX16(...clip(r, g, b))) :
10
+ (r, g, b) => build(open + rgbToX8(...clip(r, g, b))) :
11
+ () => build(0));
12
+ }
13
+ export function makeX256(ctx) {
14
+ const { colorDepth, channel, build, open, x16ToX8 } = ctx;
15
+ return (colorDepth >= 8 ?
16
+ (...args) => build([open + 8, 5, args.length === 3 ? rgbToX256(...clip(...args)) : clip(args[0])]) :
17
+ colorDepth >= 4 ?
18
+ (...args) => build(open +
19
+ rgbToX16(...(args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0]))))) :
20
+ colorDepth === 3 ?
21
+ channel === "fg" ?
22
+ (...args) => x16ToX8(args.length === 3 ?
23
+ rgbToX16(...clip(...args)) :
24
+ rgbToX16(...x256ToRgb(clip(args[0])))) :
25
+ (...args) => build(open + rgbToX8(...args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0])))) :
26
+ () => build(0));
27
+ }
28
+ //# sourceMappingURL=rgb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb.js","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAKtE,MAAM,UAAU,OAAO,CAAC,GAAY;IACnC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC,GAAG,GAAG,CAAC;IAExD,OAAO,CACN,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,UAAU,IAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,UAAU,IAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,UAAU,KAAK,CAAC,CAAC,CAAC;oBACjB,OAAO,KAAK,IAAI,CAAC,CAAC;wBACjB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxD,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAY;IACpC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAC,GAAG,GAAG,CAAC;IAExD,OAAO,CACN,UAAU,IAAI,CAAC,CAAC,CAAC;QAChB,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,KAAK,CACjB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9E,CAAC,CAAC;QACJ,UAAU,IAAI,CAAC,CAAC,CAAC;YAChB,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,KAAK,CACjB,IAAI;gBACJ,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3E,CAAC,CAAC;YACJ,UAAU,KAAK,CAAC,CAAC,CAAC;gBACjB,OAAO,KAAK,IAAI,CAAC,CAAC;oBACjB,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CACnB,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;wBAClB,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC5B,QAAQ,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtC,CAAC,CAAC;oBACH,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,KAAK,CACjB,IAAI,GAAG,OAAO,CACb,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/D,CACD,CAAC,CAAC;gBACL,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function rgbToX256(r: number, g: number, b: number): number;
2
+ export declare function x256ToRgb(code: number): [number, number, number];
3
+ export declare function rgbToX16(r: number, g: number, b: number): number;
4
+ export declare function rgbToX8(r: number, g: number, b: number): number;
5
+ export declare function clip(x: number): number;
6
+ export declare function clip(r: number, g: number, b: number): [number, number, number];
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAajE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAYhE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ export function rgbToX256(r, g, b) {
2
+ if (r === g && g === b) {
3
+ // grayscale
4
+ return 232 + Math.floor(r * 24 / 256);
5
+ }
6
+ // 6x6x6 color cube
7
+ return (16 +
8
+ Math.floor(r * 6 / 256) * 36 +
9
+ Math.floor(g * 6 / 256) * 6 +
10
+ Math.floor(b * 6 / 256));
11
+ }
12
+ export function x256ToRgb(code) {
13
+ if (code >= 232) {
14
+ // grayscale
15
+ const gray = Math.round((code - 232) * 255 / 24);
16
+ return [gray, gray, gray];
17
+ }
18
+ code -= 16;
19
+ const r = Math.floor(code / 36) * 51;
20
+ const g = Math.floor((code % 36) / 6) * 51;
21
+ const b = (code % 6) * 51;
22
+ return [r, g, b];
23
+ }
24
+ export function rgbToX16(r, g, b) {
25
+ // First calculate it as a 4x4x4 cube.
26
+ r = Math.min(2, Math.floor(r / 85));
27
+ g = Math.min(2, Math.floor(g / 85));
28
+ b = Math.min(2, Math.floor(b / 85));
29
+ // Which channels are "on" determines the hue (ANSI color index 0–7).
30
+ const index = (r ? 1 : 0) | (g ? 2 : 0) | (b ? 4 : 0);
31
+ // The bright bit is derived from the max channel level across all three.
32
+ const twos = (r === 2 ? 1 : 0) + (g === 2 ? 1 : 0) + (b === 2 ? 1 : 0);
33
+ const ones = (r === 1 ? 1 : 0) + (g === 1 ? 1 : 0) + (b === 1 ? 1 : 0);
34
+ const bright = twos > 0 && twos >= ones;
35
+ // Return value uses the SGR offset scheme: 0–7 for normal, 60–67 for bright.
36
+ return index + (bright ? 60 : 0);
37
+ }
38
+ export function rgbToX8(r, g, b) {
39
+ r = r >= 128 ? 1 : 0;
40
+ g = g >= 128 ? 1 : 0;
41
+ b = b >= 128 ? 1 : 0;
42
+ return (r ? 1 : 0) | (g ? 2 : 0) | (b ? 4 : 0);
43
+ }
44
+ export function clip(...args) {
45
+ return args.length === 1 ?
46
+ Math.max(0, Math.min(255, Math.floor(args[0]))) :
47
+ [
48
+ Math.max(0, Math.min(255, Math.floor(args[0]))),
49
+ Math.max(0, Math.min(255, Math.floor(args[1]))),
50
+ Math.max(0, Math.min(255, Math.floor(args[2]))),
51
+ ];
52
+ }
53
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/sgr/color/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Code } from "./types";
2
+ export declare function combineCodes(base: Code, code: Code): Code;
3
+ //# sourceMappingURL=combine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAUzD"}
@@ -0,0 +1,11 @@
1
+ export function combineCodes(base, code) {
2
+ const set = new Set(Array.isArray(base) ? [...base] : [base]);
3
+ if (Array.isArray(code)) {
4
+ for (const c of code)
5
+ set.add(c);
6
+ }
7
+ else
8
+ set.add(code);
9
+ return [...set];
10
+ }
11
+ //# sourceMappingURL=combine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,IAAU,EAAE,IAAU;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI;YACnB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;;QACA,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEf,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ChainBuilder, FormatBuilder } from "./types";
2
+ export declare function makeFormatBuilder(makeChain: ChainBuilder, enabled?: boolean): FormatBuilder;
3
+ //# sourceMappingURL=format-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-builder.d.ts","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAsC,aAAa,EAAC,MAAM,SAAS,CAAC;AAY7F,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,UAAO,GAAG,aAAa,CA+BxF"}
@@ -0,0 +1,30 @@
1
+ import { define } from "@peteanderson/props";
2
+ import { lazy } from "./lazy.js";
3
+ const codeSequence = (code) => Array.isArray(code) ? code.join(';') : code;
4
+ const chain = (makeChain, keys, baseFormat) => !keys.size
5
+ ? baseFormat
6
+ : lazy.add(baseFormat, "and", () => makeChain(keys, baseFormat));
7
+ export function makeFormatBuilder(makeChain, enabled = true) {
8
+ if (enabled) {
9
+ return (keys, open, close, reset) => {
10
+ const openCode = codeSequence(open);
11
+ const closeCode = codeSequence(close);
12
+ const openSequence = `\x1b[${openCode}m`;
13
+ const closeSequence = `\x1b[${closeCode}m`;
14
+ const reopenCode = reset ? `${closeCode};${openCode}` : openCode;
15
+ const rxClose = new RegExp(`(?<start>\\x1b\\[(?:\\d+;)*)${closeCode}(?<end>(?:;\\d+)*m)`, "g");
16
+ const replace = `$<start>${reopenCode}$<end>`;
17
+ return chain(makeChain, keys, define((s) => s ? openSequence + s.replace(rxClose, replace) + closeSequence : s, {
18
+ open: { value: openSequence, enumerable: true },
19
+ close: { value: closeSequence, enumerable: true },
20
+ codes: { value: { open, close }, enumerable: true },
21
+ }));
22
+ };
23
+ }
24
+ return keys => chain(makeChain, keys, define((s) => s, {
25
+ open: { value: "", enumerable: true },
26
+ close: { value: "", enumerable: true },
27
+ codes: { value: { open: [], close: [] }, enumerable: true },
28
+ }));
29
+ }
30
+ //# sourceMappingURL=format-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-builder.js","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAC,MAAQ,QAAQ,CAAC;AAI9B,MAAM,YAAY,GAAG,CAAC,IAAU,EAAmB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAElG,MAAM,KAAK,GAAG,CACb,SAAyB,EACzB,IAA8B,EAC9B,UAAuB,EACR,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;IAC5B,CAAC,CAAC,UAA0B;IAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;AAElE,MAAM,UAAU,iBAAiB,CAAC,SAAuB,EAAE,OAAO,GAAG,IAAI;IACxE,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAQ,YAAY,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,SAAS,GAAO,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,YAAY,GAAI,QAAQ,QAAQ,GAAG,CAAC;YAC1C,MAAM,aAAa,GAAG,QAAQ,SAAS,GAAG,CAAC;YAC3C,MAAM,UAAU,GAAM,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEpE,MAAM,OAAO,GAAG,IAAI,MAAM,CACzB,+BAA+B,SAAS,qBAAqB,EAC7D,GAAG,CACH,CAAC;YACF,MAAM,OAAO,GAAG,WAAW,UAAU,QAAQ,CAAC;YAE9C,OAAO,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CACnC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EACjF;gBACC,IAAI,EAAI,EAAC,KAAK,EAAE,YAAY,EAAG,UAAU,EAAE,IAAI,EAAC;gBAChD,KAAK,EAAG,EAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAC;gBAChD,KAAK,EAAG,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,UAAU,EAAE,IAAI,EAAC;aAChD,CACD,CAAC,CAAC;QACJ,CAAC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE;QAC9D,IAAI,EAAI,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAC;QACrC,KAAK,EAAG,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAC;QACrC,KAAK,EAAG,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC,EAAE,UAAU,EAAE,IAAI,EAAC;KACxD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./sgr";
2
+ export { SGR } from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sgr/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./sgr.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sgr/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { GetterProperty } from "@peteanderson/props";
2
+ export declare function lazy<K extends keyof any, V>(key: K, get: () => V): GetterProperty<V>;
3
+ export declare namespace lazy {
4
+ var add: <T extends object, K extends keyof any, V>(obj: T, key: K, get: () => V) => T & { [k in K]: V; };
5
+ }
6
+ //# sourceMappingURL=lazy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../src/sgr/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAUpF;yBAVe,IAAI;cAYR,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,OAC7C,CAAC,OACD,CAAC,OACD,MAAM,CAAC,KACX,CAAC,GAAG,GAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC"}
@@ -0,0 +1,14 @@
1
+ import { define } from "@peteanderson/props";
2
+ export function lazy(key, get) {
3
+ return {
4
+ get() {
5
+ const value = get();
6
+ define(this, key, { value, enumerable: true });
7
+ return value;
8
+ },
9
+ enumerable: true,
10
+ configurable: true,
11
+ };
12
+ }
13
+ lazy.add = (obj, key, get) => define(obj, key, lazy(key, get));
14
+ //# sourceMappingURL=lazy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/sgr/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAI3C,MAAM,UAAU,IAAI,CAAyB,GAAM,EAAE,GAAY;IAChE,OAAO;QACN,GAAG;YACF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,EAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACd,CAAC;QACD,UAAU,EAAK,IAAI;QACnB,YAAY,EAAG,IAAI;KACnB,CAAC;AACH,CAAC;AAED,IAAI,CAAC,GAAG,GAAG,CACV,GAAO,EACP,GAAO,EACP,GAAa,EACO,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const makeReset: (enabled?: boolean) => string;
2
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,MAAkC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const makeReset = (enabled = true) => enabled ? "\x1b[0m" : "";
2
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Features } from "../features";
2
+ import type { SGR } from "./types";
3
+ export declare function makeSGR(features: Features): SGR;
4
+ //# sourceMappingURL=sgr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgr.d.ts","sourceRoot":"","sources":["../../../src/sgr/sgr.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,QAAQ,EAAC,MAAiC,aAAa,CAAC;AACjF,OAAO,KAAK,EAA6C,GAAG,EAAC,MAAM,SAAS,CAAC;AAsB7E,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAyC/C"}
@@ -0,0 +1,47 @@
1
+ import { TypedObject } from "../typed-object.js";
2
+ import { makeColor } from "./color/index.js";
3
+ import { combineCodes } from "./combine.js";
4
+ import { makeFormatBuilder } from "./format-builder.js";
5
+ import { makeReset } from "./reset.js";
6
+ import { makeStyle } from "./style.js";
7
+ const keyMap = {
8
+ fg: undefined,
9
+ bg: undefined,
10
+ bold: undefined,
11
+ dim: undefined,
12
+ italic: undefined,
13
+ underline: undefined,
14
+ inverse: undefined,
15
+ hidden: undefined,
16
+ strikethrough: undefined,
17
+ doubleUnderline: undefined,
18
+ frame: undefined,
19
+ encircle: undefined,
20
+ overline: undefined,
21
+ };
22
+ const allKeys = new Set(TypedObject.keys(keyMap));
23
+ const cache = {};
24
+ export function makeSGR(features) {
25
+ const cacheKey = `${features.colorDepth}.${features.style}`;
26
+ if (cache[cacheKey])
27
+ return cache[cacheKey];
28
+ const colorFormat = makeFormatBuilder(makeChain, features.colorDepth > 1);
29
+ const styleFormat = makeFormatBuilder(makeChain, features.style);
30
+ const style = makeStyle(allKeys, styleFormat, features.style);
31
+ function makeChain(keys, baseFormat) {
32
+ const chainedColorFormat = (keys, open, close, reset) => colorFormat(keys, combineCodes(baseFormat.codes.open, open), combineCodes(baseFormat.codes.close, close), reset);
33
+ const chainedStyleFormat = (keys, open, close, reset) => styleFormat(keys, combineCodes(baseFormat.codes.open, open), combineCodes(baseFormat.codes.close, close), reset);
34
+ return /** @type {Chain<any>} */ ({
35
+ ...makeColor(keys, chainedColorFormat, style, features.colorDepth),
36
+ ...makeStyle(keys, chainedStyleFormat, features.style),
37
+ });
38
+ }
39
+ const rtn = {
40
+ ...makeColor(allKeys, colorFormat, style, features.colorDepth),
41
+ style,
42
+ reset: makeReset(features.colorDepth > 1 || features.style),
43
+ };
44
+ cache[cacheKey] = rtn;
45
+ return rtn;
46
+ }
47
+ //# sourceMappingURL=sgr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sgr.js","sourceRoot":"","sources":["../../../src/sgr/sgr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAY,iBAAiB,CAAC;AAClD,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAW,WAAW,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAK1C,MAAM,MAAM,GAAgC;IAC3C,EAAE,EAAgB,SAAS;IAC3B,EAAE,EAAgB,SAAS;IAC3B,IAAI,EAAc,SAAS;IAC3B,GAAG,EAAe,SAAS;IAC3B,MAAM,EAAY,SAAS;IAC3B,SAAS,EAAS,SAAS;IAC3B,OAAO,EAAW,SAAS;IAC3B,MAAM,EAAY,SAAS;IAC3B,aAAa,EAAK,SAAS;IAC3B,eAAe,EAAG,SAAS;IAC3B,KAAK,EAAa,SAAS;IAC3B,QAAQ,EAAU,SAAS;IAC3B,QAAQ,EAAU,SAAS;CAC3B,CAAC;AAEF,MAAM,OAAO,GAA0B,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,MAAM,KAAK,GAAqD,EAAE,CAAC;AAEnE,MAAM,UAAU,OAAO,CAAC,QAAkB;IACzC,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,EAAW,CAAC;IACrE,IAAI,KAAK,CAAC,QAAQ,CAAC;QAClB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,KAAK,GAAS,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,SAAS,SAAS,CACjB,IAA8B,EAC9B,UAAuB;QAEvB,MAAM,kBAAkB,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAClF,IAAI,EACJ,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EACzC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAC3C,KAAK,CACL,CAAC;QACF,MAAM,kBAAkB,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAClF,IAAI,EACJ,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EACzC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAC3C,KAAK,CACL,CAAC;QAEF,OAAO,yBAAyB,CAAA,CAAC;YAChC,GAAG,SAAS,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC;YAClE,GAAG,SAAS,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC;SACtD,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAQ;QAChB,GAAG,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC9D,KAAK;QACL,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;KAC3D,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;IAEtB,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ChainKey, FormatBuilder, Style } from "./types";
2
+ export declare function makeStyle(keys: ReadonlySet<ChainKey>, makeFormatter: FormatBuilder, enabled: boolean): Style<any>;
3
+ //# sourceMappingURL=style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/sgr/style.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAC,MAAM,SAAS,CAAC;AAgB5D,wBAAgB,SAAS,CACxB,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,OAAO,EAAS,OAAO,GACrB,KAAK,CAAC,GAAG,CAAC,CAcZ"}
@@ -0,0 +1,29 @@
1
+ import { TypedObject } from "../typed-object.js";
2
+ import { lazy } from "./lazy.js";
3
+ const propParams = TypedObject.entries({
4
+ bold: [1, 22, true],
5
+ dim: [2, 22, true],
6
+ italic: [3, 23],
7
+ underline: [4, 24],
8
+ inverse: [7, 27],
9
+ hidden: [8, 28],
10
+ strikethrough: [9, 29],
11
+ doubleUnderline: [21, 24],
12
+ frame: [51, 54],
13
+ encircle: [52, 54],
14
+ overline: [53, 55],
15
+ });
16
+ export function makeStyle(keys, makeFormatter, enabled) {
17
+ const rtn = {};
18
+ for (const [key, args] of propParams) {
19
+ if (keys.has(key)) {
20
+ lazy.add(rtn, key, () => {
21
+ const newKeys = new Set(keys);
22
+ newKeys.delete(key);
23
+ return enabled ? makeFormatter(newKeys, ...args) : makeFormatter(newKeys, 0, 0);
24
+ });
25
+ }
26
+ }
27
+ return rtn;
28
+ }
29
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/sgr/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAa,QAAQ,CAAC;AAInC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAA4D;IACjG,IAAI,EAAc,CAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;IAChC,GAAG,EAAe,CAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;IAChC,MAAM,EAAY,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,SAAS,EAAS,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,OAAO,EAAW,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,MAAM,EAAY,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,aAAa,EAAK,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,eAAe,EAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1B,KAAK,EAAa,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1B,QAAQ,EAAU,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1B,QAAQ,EAAU,CAAC,EAAE,EAAE,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CACxB,IAAqC,EACrC,aAA6B,EAC7B,OAAuB;IAEvB,MAAM,GAAG,GAAG,EAAgB,CAAC;IAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;gBACvB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}