gsd-pi 2.9.0 → 2.10.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 (1016) hide show
  1. package/node_modules/@gsd/native/package.json +59 -0
  2. package/node_modules/@gsd/native/src/__tests__/clipboard.test.mjs +79 -0
  3. package/node_modules/@gsd/native/src/__tests__/fd.test.mjs +164 -0
  4. package/node_modules/@gsd/native/src/__tests__/glob.test.mjs +237 -0
  5. package/node_modules/@gsd/native/src/__tests__/grep.test.mjs +162 -0
  6. package/node_modules/@gsd/native/src/__tests__/highlight.test.mjs +156 -0
  7. package/node_modules/@gsd/native/src/__tests__/html.test.mjs +98 -0
  8. package/node_modules/@gsd/native/src/__tests__/image.test.mjs +137 -0
  9. package/node_modules/@gsd/native/src/__tests__/ps.test.mjs +109 -0
  10. package/node_modules/@gsd/native/src/__tests__/text.test.mjs +262 -0
  11. package/node_modules/@gsd/native/src/ast/index.ts +12 -0
  12. package/node_modules/@gsd/native/src/ast/types.ts +75 -0
  13. package/node_modules/@gsd/native/src/clipboard/index.ts +40 -0
  14. package/node_modules/@gsd/native/src/clipboard/types.ts +7 -0
  15. package/node_modules/@gsd/native/src/fd/index.ts +35 -0
  16. package/node_modules/@gsd/native/src/fd/types.ts +31 -0
  17. package/node_modules/@gsd/native/src/glob/index.ts +44 -0
  18. package/node_modules/@gsd/native/src/glob/types.ts +53 -0
  19. package/node_modules/@gsd/native/src/grep/index.ts +48 -0
  20. package/node_modules/@gsd/native/src/grep/types.ts +105 -0
  21. package/node_modules/@gsd/native/src/highlight/index.ts +44 -0
  22. package/node_modules/@gsd/native/src/highlight/types.ts +25 -0
  23. package/node_modules/@gsd/native/src/html/index.ts +24 -0
  24. package/node_modules/@gsd/native/src/html/types.ts +7 -0
  25. package/node_modules/@gsd/native/src/image/index.ts +28 -0
  26. package/node_modules/@gsd/native/src/image/types.ts +41 -0
  27. package/node_modules/@gsd/native/src/index.ts +88 -0
  28. package/node_modules/@gsd/native/src/native.ts +94 -0
  29. package/node_modules/@gsd/native/src/ps/index.ts +52 -0
  30. package/node_modules/@gsd/native/src/ps/types.ts +5 -0
  31. package/node_modules/@gsd/native/src/text/index.ts +125 -0
  32. package/node_modules/@gsd/native/src/text/types.ts +29 -0
  33. package/node_modules/@gsd/native/src/ttsr/index.ts +39 -0
  34. package/node_modules/@gsd/native/src/ttsr/types.ts +10 -0
  35. package/node_modules/@gsd/pi-coding-agent/dist/core/lsp/defaults.json +456 -0
  36. package/node_modules/@gsd/pi-coding-agent/dist/core/lsp/lsp.md +33 -0
  37. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/find.d.ts +1 -1
  38. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
  39. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/find.js +12 -77
  40. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/find.js.map +1 -1
  41. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-edit.d.ts +60 -0
  42. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-edit.d.ts.map +1 -0
  43. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-edit.js +247 -0
  44. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-edit.js.map +1 -0
  45. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-read.d.ts +43 -0
  46. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-read.d.ts.map +1 -0
  47. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-read.js +146 -0
  48. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline-read.js.map +1 -0
  49. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.d.ts +114 -0
  50. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.d.ts.map +1 -0
  51. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.js +522 -0
  52. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.js.map +1 -0
  53. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.test.d.ts +2 -0
  54. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.test.d.ts.map +1 -0
  55. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.test.js +376 -0
  56. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/hashline.test.js.map +1 -0
  57. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/index.d.ts +25 -0
  58. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/index.d.ts.map +1 -1
  59. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/index.js +23 -0
  60. package/node_modules/@gsd/pi-coding-agent/dist/core/tools/index.js.map +1 -1
  61. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  62. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +6 -3
  63. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  64. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +0 -1
  65. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  66. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/interactive-mode.js +8 -9
  67. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  68. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  69. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/theme/theme.js +25 -40
  70. package/node_modules/@gsd/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  71. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard-image.d.ts.map +1 -1
  72. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard-image.js +17 -21
  73. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard-image.js.map +1 -1
  74. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard-native.d.ts +7 -6
  75. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard-native.d.ts.map +1 -1
  76. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard-native.js +7 -13
  77. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard-native.js.map +1 -1
  78. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard.d.ts.map +1 -1
  79. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard.js +3 -56
  80. package/node_modules/@gsd/pi-coding-agent/dist/utils/clipboard.js.map +1 -1
  81. package/node_modules/@gsd/pi-coding-agent/dist/utils/image-convert.d.ts.map +1 -1
  82. package/node_modules/@gsd/pi-coding-agent/dist/utils/image-convert.js +7 -17
  83. package/node_modules/@gsd/pi-coding-agent/dist/utils/image-convert.js.map +1 -1
  84. package/node_modules/@gsd/pi-coding-agent/dist/utils/image-resize.d.ts +1 -2
  85. package/node_modules/@gsd/pi-coding-agent/dist/utils/image-resize.d.ts.map +1 -1
  86. package/node_modules/@gsd/pi-coding-agent/dist/utils/image-resize.js +21 -29
  87. package/node_modules/@gsd/pi-coding-agent/dist/utils/image-resize.js.map +1 -1
  88. package/node_modules/@gsd/pi-coding-agent/package.json +2 -5
  89. package/node_modules/@gsd/pi-coding-agent/src/core/tools/find.ts +13 -88
  90. package/node_modules/@gsd/pi-coding-agent/src/core/tools/hashline-edit.ts +318 -0
  91. package/node_modules/@gsd/pi-coding-agent/src/core/tools/hashline-read.ts +196 -0
  92. package/node_modules/@gsd/pi-coding-agent/src/core/tools/hashline.test.ts +456 -0
  93. package/node_modules/@gsd/pi-coding-agent/src/core/tools/hashline.ts +594 -0
  94. package/node_modules/@gsd/pi-coding-agent/src/core/tools/index.ts +53 -0
  95. package/node_modules/@gsd/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +5 -3
  96. package/node_modules/@gsd/pi-coding-agent/src/modes/interactive/interactive-mode.ts +7 -10
  97. package/node_modules/@gsd/pi-coding-agent/src/modes/interactive/theme/theme.ts +26 -42
  98. package/node_modules/@gsd/pi-coding-agent/src/utils/clipboard-image.ts +17 -24
  99. package/node_modules/@gsd/pi-coding-agent/src/utils/clipboard-native.ts +11 -21
  100. package/node_modules/@gsd/pi-coding-agent/src/utils/clipboard.ts +3 -51
  101. package/node_modules/@gsd/pi-coding-agent/src/utils/image-convert.ts +7 -17
  102. package/node_modules/@gsd/pi-coding-agent/src/utils/image-resize.ts +28 -34
  103. package/node_modules/@gsd/pi-tui/dist/autocomplete.d.ts +1 -3
  104. package/node_modules/@gsd/pi-tui/dist/autocomplete.d.ts.map +1 -1
  105. package/node_modules/@gsd/pi-tui/dist/autocomplete.js +16 -95
  106. package/node_modules/@gsd/pi-tui/dist/autocomplete.js.map +1 -1
  107. package/node_modules/@gsd/pi-tui/dist/components/image.d.ts +7 -0
  108. package/node_modules/@gsd/pi-tui/dist/components/image.d.ts.map +1 -1
  109. package/node_modules/@gsd/pi-tui/dist/components/image.js +20 -1
  110. package/node_modules/@gsd/pi-tui/dist/components/image.js.map +1 -1
  111. package/node_modules/@gsd/pi-tui/dist/index.d.ts +1 -1
  112. package/node_modules/@gsd/pi-tui/dist/index.d.ts.map +1 -1
  113. package/node_modules/@gsd/pi-tui/dist/index.js +1 -1
  114. package/node_modules/@gsd/pi-tui/dist/index.js.map +1 -1
  115. package/node_modules/@gsd/pi-tui/dist/terminal-image.d.ts +5 -5
  116. package/node_modules/@gsd/pi-tui/dist/terminal-image.d.ts.map +1 -1
  117. package/node_modules/@gsd/pi-tui/dist/terminal-image.js +9 -120
  118. package/node_modules/@gsd/pi-tui/dist/terminal-image.js.map +1 -1
  119. package/node_modules/@gsd/pi-tui/dist/utils.d.ts +23 -26
  120. package/node_modules/@gsd/pi-tui/dist/utils.d.ts.map +1 -1
  121. package/node_modules/@gsd/pi-tui/dist/utils.js +47 -716
  122. package/node_modules/@gsd/pi-tui/dist/utils.js.map +1 -1
  123. package/node_modules/@gsd/pi-tui/package.json +1 -0
  124. package/node_modules/@gsd/pi-tui/src/autocomplete.ts +17 -112
  125. package/node_modules/@gsd/pi-tui/src/components/image.ts +23 -1
  126. package/node_modules/@gsd/pi-tui/src/index.ts +0 -4
  127. package/node_modules/@gsd/pi-tui/src/terminal-image.ts +9 -135
  128. package/node_modules/@gsd/pi-tui/src/utils.ts +51 -775
  129. package/package.json +4 -1
  130. package/packages/native/package.json +59 -0
  131. package/packages/native/src/__tests__/clipboard.test.mjs +79 -0
  132. package/packages/native/src/__tests__/fd.test.mjs +164 -0
  133. package/packages/native/src/__tests__/glob.test.mjs +237 -0
  134. package/packages/native/src/__tests__/grep.test.mjs +162 -0
  135. package/packages/native/src/__tests__/highlight.test.mjs +156 -0
  136. package/packages/native/src/__tests__/html.test.mjs +98 -0
  137. package/packages/native/src/__tests__/image.test.mjs +137 -0
  138. package/packages/native/src/__tests__/ps.test.mjs +109 -0
  139. package/packages/native/src/__tests__/text.test.mjs +262 -0
  140. package/packages/native/src/ast/index.ts +12 -0
  141. package/packages/native/src/ast/types.ts +75 -0
  142. package/packages/native/src/clipboard/index.ts +40 -0
  143. package/packages/native/src/clipboard/types.ts +7 -0
  144. package/packages/native/src/fd/index.ts +35 -0
  145. package/packages/native/src/fd/types.ts +31 -0
  146. package/packages/native/src/glob/index.ts +44 -0
  147. package/packages/native/src/glob/types.ts +53 -0
  148. package/packages/native/src/grep/index.ts +48 -0
  149. package/packages/native/src/grep/types.ts +105 -0
  150. package/packages/native/src/highlight/index.ts +44 -0
  151. package/packages/native/src/highlight/types.ts +25 -0
  152. package/packages/native/src/html/index.ts +24 -0
  153. package/packages/native/src/html/types.ts +7 -0
  154. package/packages/native/src/image/index.ts +28 -0
  155. package/packages/native/src/image/types.ts +41 -0
  156. package/packages/native/src/index.ts +88 -0
  157. package/packages/native/src/native.ts +94 -0
  158. package/packages/native/src/ps/index.ts +52 -0
  159. package/packages/native/src/ps/types.ts +5 -0
  160. package/packages/native/src/text/index.ts +125 -0
  161. package/packages/native/src/text/types.ts +29 -0
  162. package/packages/native/src/ttsr/index.ts +39 -0
  163. package/packages/native/src/ttsr/types.ts +10 -0
  164. package/packages/native/tsconfig.json +8 -0
  165. package/packages/pi-coding-agent/dist/core/lsp/defaults.json +456 -0
  166. package/packages/pi-coding-agent/dist/core/lsp/lsp.md +33 -0
  167. package/packages/pi-coding-agent/dist/core/tools/find.d.ts +1 -1
  168. package/packages/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
  169. package/packages/pi-coding-agent/dist/core/tools/find.js +12 -77
  170. package/packages/pi-coding-agent/dist/core/tools/find.js.map +1 -1
  171. package/packages/pi-coding-agent/dist/core/tools/hashline-edit.d.ts +60 -0
  172. package/packages/pi-coding-agent/dist/core/tools/hashline-edit.d.ts.map +1 -0
  173. package/packages/pi-coding-agent/dist/core/tools/hashline-edit.js +247 -0
  174. package/packages/pi-coding-agent/dist/core/tools/hashline-edit.js.map +1 -0
  175. package/packages/pi-coding-agent/dist/core/tools/hashline-read.d.ts +43 -0
  176. package/packages/pi-coding-agent/dist/core/tools/hashline-read.d.ts.map +1 -0
  177. package/packages/pi-coding-agent/dist/core/tools/hashline-read.js +146 -0
  178. package/packages/pi-coding-agent/dist/core/tools/hashline-read.js.map +1 -0
  179. package/packages/pi-coding-agent/dist/core/tools/hashline.d.ts +114 -0
  180. package/packages/pi-coding-agent/dist/core/tools/hashline.d.ts.map +1 -0
  181. package/packages/pi-coding-agent/dist/core/tools/hashline.js +522 -0
  182. package/packages/pi-coding-agent/dist/core/tools/hashline.js.map +1 -0
  183. package/packages/pi-coding-agent/dist/core/tools/hashline.test.d.ts +2 -0
  184. package/packages/pi-coding-agent/dist/core/tools/hashline.test.d.ts.map +1 -0
  185. package/packages/pi-coding-agent/dist/core/tools/hashline.test.js +376 -0
  186. package/packages/pi-coding-agent/dist/core/tools/hashline.test.js.map +1 -0
  187. package/packages/pi-coding-agent/dist/core/tools/index.d.ts +25 -0
  188. package/packages/pi-coding-agent/dist/core/tools/index.d.ts.map +1 -1
  189. package/packages/pi-coding-agent/dist/core/tools/index.js +23 -0
  190. package/packages/pi-coding-agent/dist/core/tools/index.js.map +1 -1
  191. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  192. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +6 -3
  193. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  194. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +0 -1
  195. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  196. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +8 -9
  197. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  198. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  199. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +25 -40
  200. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  201. package/packages/pi-coding-agent/dist/utils/clipboard-image.d.ts.map +1 -1
  202. package/packages/pi-coding-agent/dist/utils/clipboard-image.js +17 -21
  203. package/packages/pi-coding-agent/dist/utils/clipboard-image.js.map +1 -1
  204. package/packages/pi-coding-agent/dist/utils/clipboard-native.d.ts +7 -6
  205. package/packages/pi-coding-agent/dist/utils/clipboard-native.d.ts.map +1 -1
  206. package/packages/pi-coding-agent/dist/utils/clipboard-native.js +7 -13
  207. package/packages/pi-coding-agent/dist/utils/clipboard-native.js.map +1 -1
  208. package/packages/pi-coding-agent/dist/utils/clipboard.d.ts.map +1 -1
  209. package/packages/pi-coding-agent/dist/utils/clipboard.js +3 -56
  210. package/packages/pi-coding-agent/dist/utils/clipboard.js.map +1 -1
  211. package/packages/pi-coding-agent/dist/utils/image-convert.d.ts.map +1 -1
  212. package/packages/pi-coding-agent/dist/utils/image-convert.js +7 -17
  213. package/packages/pi-coding-agent/dist/utils/image-convert.js.map +1 -1
  214. package/packages/pi-coding-agent/dist/utils/image-resize.d.ts +1 -2
  215. package/packages/pi-coding-agent/dist/utils/image-resize.d.ts.map +1 -1
  216. package/packages/pi-coding-agent/dist/utils/image-resize.js +21 -29
  217. package/packages/pi-coding-agent/dist/utils/image-resize.js.map +1 -1
  218. package/packages/pi-coding-agent/package.json +2 -5
  219. package/packages/pi-coding-agent/src/core/tools/find.ts +13 -88
  220. package/packages/pi-coding-agent/src/core/tools/hashline-edit.ts +318 -0
  221. package/packages/pi-coding-agent/src/core/tools/hashline-read.ts +196 -0
  222. package/packages/pi-coding-agent/src/core/tools/hashline.test.ts +456 -0
  223. package/packages/pi-coding-agent/src/core/tools/hashline.ts +594 -0
  224. package/packages/pi-coding-agent/src/core/tools/index.ts +53 -0
  225. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +5 -3
  226. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +7 -10
  227. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +26 -42
  228. package/packages/pi-coding-agent/src/utils/clipboard-image.ts +17 -24
  229. package/packages/pi-coding-agent/src/utils/clipboard-native.ts +11 -21
  230. package/packages/pi-coding-agent/src/utils/clipboard.ts +3 -51
  231. package/packages/pi-coding-agent/src/utils/image-convert.ts +7 -17
  232. package/packages/pi-coding-agent/src/utils/image-resize.ts +28 -34
  233. package/packages/pi-tui/dist/autocomplete.d.ts +1 -3
  234. package/packages/pi-tui/dist/autocomplete.d.ts.map +1 -1
  235. package/packages/pi-tui/dist/autocomplete.js +16 -95
  236. package/packages/pi-tui/dist/autocomplete.js.map +1 -1
  237. package/packages/pi-tui/dist/components/image.d.ts +7 -0
  238. package/packages/pi-tui/dist/components/image.d.ts.map +1 -1
  239. package/packages/pi-tui/dist/components/image.js +20 -1
  240. package/packages/pi-tui/dist/components/image.js.map +1 -1
  241. package/packages/pi-tui/dist/index.d.ts +1 -1
  242. package/packages/pi-tui/dist/index.d.ts.map +1 -1
  243. package/packages/pi-tui/dist/index.js +1 -1
  244. package/packages/pi-tui/dist/index.js.map +1 -1
  245. package/packages/pi-tui/dist/terminal-image.d.ts +5 -5
  246. package/packages/pi-tui/dist/terminal-image.d.ts.map +1 -1
  247. package/packages/pi-tui/dist/terminal-image.js +9 -120
  248. package/packages/pi-tui/dist/terminal-image.js.map +1 -1
  249. package/packages/pi-tui/dist/utils.d.ts +23 -26
  250. package/packages/pi-tui/dist/utils.d.ts.map +1 -1
  251. package/packages/pi-tui/dist/utils.js +47 -716
  252. package/packages/pi-tui/dist/utils.js.map +1 -1
  253. package/packages/pi-tui/package.json +1 -0
  254. package/packages/pi-tui/src/autocomplete.ts +17 -112
  255. package/packages/pi-tui/src/components/image.ts +23 -1
  256. package/packages/pi-tui/src/index.ts +0 -4
  257. package/packages/pi-tui/src/terminal-image.ts +9 -135
  258. package/packages/pi-tui/src/utils.ts +51 -775
  259. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  260. package/pkg/dist/modes/interactive/theme/theme.js +25 -40
  261. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  262. package/src/resources/extensions/bg-shell/index.ts +343 -14
  263. package/src/resources/extensions/gsd/git-service.ts +13 -1
  264. package/src/resources/extensions/universal-config/discovery.ts +78 -0
  265. package/src/resources/extensions/universal-config/format.ts +160 -0
  266. package/src/resources/extensions/universal-config/index.ts +118 -0
  267. package/src/resources/extensions/universal-config/package.json +11 -0
  268. package/src/resources/extensions/universal-config/scanners.ts +579 -0
  269. package/src/resources/extensions/universal-config/tests/discovery.test.ts +111 -0
  270. package/src/resources/extensions/universal-config/tests/format.test.ts +111 -0
  271. package/src/resources/extensions/universal-config/tests/scanners.test.ts +438 -0
  272. package/src/resources/extensions/universal-config/tools.ts +60 -0
  273. package/src/resources/extensions/universal-config/types.ts +116 -0
  274. package/node_modules/@mariozechner/clipboard/.yarnrc.yml +0 -1
  275. package/node_modules/@mariozechner/clipboard/Cargo.toml +0 -26
  276. package/node_modules/@mariozechner/clipboard/README.md +0 -58
  277. package/node_modules/@mariozechner/clipboard/build.rs +0 -5
  278. package/node_modules/@mariozechner/clipboard/exp.ts +0 -12
  279. package/node_modules/@mariozechner/clipboard/index.d.ts +0 -23
  280. package/node_modules/@mariozechner/clipboard/index.js +0 -317
  281. package/node_modules/@mariozechner/clipboard/package.json +0 -56
  282. package/node_modules/@mariozechner/clipboard/src/lib.rs +0 -191
  283. package/node_modules/@mariozechner/clipboard-darwin-arm64/README.md +0 -3
  284. package/node_modules/@mariozechner/clipboard-darwin-arm64/clipboard.darwin-arm64.node +0 -0
  285. package/node_modules/@mariozechner/clipboard-darwin-arm64/package.json +0 -22
  286. package/node_modules/@mariozechner/clipboard-darwin-universal/README.md +0 -3
  287. package/node_modules/@mariozechner/clipboard-darwin-universal/clipboard.darwin-universal.node +0 -0
  288. package/node_modules/@mariozechner/clipboard-darwin-universal/package.json +0 -19
  289. package/node_modules/ansi-styles/index.d.ts +0 -345
  290. package/node_modules/ansi-styles/index.js +0 -163
  291. package/node_modules/ansi-styles/license +0 -9
  292. package/node_modules/ansi-styles/package.json +0 -56
  293. package/node_modules/ansi-styles/readme.md +0 -152
  294. package/node_modules/any-promise/.jshintrc +0 -4
  295. package/node_modules/any-promise/.npmignore +0 -7
  296. package/node_modules/any-promise/LICENSE +0 -19
  297. package/node_modules/any-promise/README.md +0 -161
  298. package/node_modules/any-promise/implementation.d.ts +0 -3
  299. package/node_modules/any-promise/implementation.js +0 -1
  300. package/node_modules/any-promise/index.d.ts +0 -73
  301. package/node_modules/any-promise/index.js +0 -1
  302. package/node_modules/any-promise/loader.js +0 -78
  303. package/node_modules/any-promise/optional.js +0 -6
  304. package/node_modules/any-promise/package.json +0 -45
  305. package/node_modules/any-promise/register/bluebird.d.ts +0 -1
  306. package/node_modules/any-promise/register/bluebird.js +0 -2
  307. package/node_modules/any-promise/register/es6-promise.d.ts +0 -1
  308. package/node_modules/any-promise/register/es6-promise.js +0 -2
  309. package/node_modules/any-promise/register/lie.d.ts +0 -1
  310. package/node_modules/any-promise/register/lie.js +0 -2
  311. package/node_modules/any-promise/register/native-promise-only.d.ts +0 -1
  312. package/node_modules/any-promise/register/native-promise-only.js +0 -2
  313. package/node_modules/any-promise/register/pinkie.d.ts +0 -1
  314. package/node_modules/any-promise/register/pinkie.js +0 -2
  315. package/node_modules/any-promise/register/promise.d.ts +0 -1
  316. package/node_modules/any-promise/register/promise.js +0 -2
  317. package/node_modules/any-promise/register/q.d.ts +0 -1
  318. package/node_modules/any-promise/register/q.js +0 -2
  319. package/node_modules/any-promise/register/rsvp.d.ts +0 -1
  320. package/node_modules/any-promise/register/rsvp.js +0 -2
  321. package/node_modules/any-promise/register/vow.d.ts +0 -1
  322. package/node_modules/any-promise/register/vow.js +0 -2
  323. package/node_modules/any-promise/register/when.d.ts +0 -1
  324. package/node_modules/any-promise/register/when.js +0 -2
  325. package/node_modules/any-promise/register-shim.js +0 -18
  326. package/node_modules/any-promise/register.d.ts +0 -17
  327. package/node_modules/any-promise/register.js +0 -94
  328. package/node_modules/cli-highlight/LICENSE.txt +0 -15
  329. package/node_modules/cli-highlight/README.md +0 -88
  330. package/node_modules/cli-highlight/bin/highlight +0 -2
  331. package/node_modules/cli-highlight/dist/cli.d.ts +0 -1
  332. package/node_modules/cli-highlight/dist/cli.js +0 -102
  333. package/node_modules/cli-highlight/dist/cli.js.map +0 -1
  334. package/node_modules/cli-highlight/dist/index.d.ts +0 -53
  335. package/node_modules/cli-highlight/dist/index.js +0 -112
  336. package/node_modules/cli-highlight/dist/index.js.map +0 -1
  337. package/node_modules/cli-highlight/dist/test/test.d.ts +0 -1
  338. package/node_modules/cli-highlight/dist/test/test.js +0 -62
  339. package/node_modules/cli-highlight/dist/test/test.js.map +0 -1
  340. package/node_modules/cli-highlight/dist/theme.d.ts +0 -270
  341. package/node_modules/cli-highlight/dist/theme.js +0 -265
  342. package/node_modules/cli-highlight/dist/theme.js.map +0 -1
  343. package/node_modules/cli-highlight/node_modules/chalk/index.d.ts +0 -415
  344. package/node_modules/cli-highlight/node_modules/chalk/license +0 -9
  345. package/node_modules/cli-highlight/node_modules/chalk/package.json +0 -68
  346. package/node_modules/cli-highlight/node_modules/chalk/readme.md +0 -341
  347. package/node_modules/cli-highlight/node_modules/chalk/source/index.js +0 -229
  348. package/node_modules/cli-highlight/node_modules/chalk/source/templates.js +0 -134
  349. package/node_modules/cli-highlight/node_modules/chalk/source/util.js +0 -39
  350. package/node_modules/cli-highlight/package.json +0 -129
  351. package/node_modules/cliui/CHANGELOG.md +0 -121
  352. package/node_modules/cliui/LICENSE.txt +0 -14
  353. package/node_modules/cliui/README.md +0 -141
  354. package/node_modules/cliui/build/index.cjs +0 -302
  355. package/node_modules/cliui/build/lib/index.js +0 -287
  356. package/node_modules/cliui/build/lib/string-utils.js +0 -27
  357. package/node_modules/cliui/index.mjs +0 -13
  358. package/node_modules/cliui/node_modules/ansi-regex/index.d.ts +0 -37
  359. package/node_modules/cliui/node_modules/ansi-regex/index.js +0 -10
  360. package/node_modules/cliui/node_modules/ansi-regex/license +0 -9
  361. package/node_modules/cliui/node_modules/ansi-regex/package.json +0 -55
  362. package/node_modules/cliui/node_modules/ansi-regex/readme.md +0 -78
  363. package/node_modules/cliui/node_modules/strip-ansi/index.d.ts +0 -17
  364. package/node_modules/cliui/node_modules/strip-ansi/index.js +0 -4
  365. package/node_modules/cliui/node_modules/strip-ansi/license +0 -9
  366. package/node_modules/cliui/node_modules/strip-ansi/package.json +0 -54
  367. package/node_modules/cliui/node_modules/strip-ansi/readme.md +0 -46
  368. package/node_modules/cliui/package.json +0 -83
  369. package/node_modules/color-convert/CHANGELOG.md +0 -54
  370. package/node_modules/color-convert/LICENSE +0 -21
  371. package/node_modules/color-convert/README.md +0 -68
  372. package/node_modules/color-convert/conversions.js +0 -839
  373. package/node_modules/color-convert/index.js +0 -81
  374. package/node_modules/color-convert/package.json +0 -48
  375. package/node_modules/color-convert/route.js +0 -97
  376. package/node_modules/color-name/LICENSE +0 -8
  377. package/node_modules/color-name/README.md +0 -11
  378. package/node_modules/color-name/index.js +0 -152
  379. package/node_modules/color-name/package.json +0 -28
  380. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  381. package/node_modules/emoji-regex/README.md +0 -73
  382. package/node_modules/emoji-regex/es2015/index.js +0 -6
  383. package/node_modules/emoji-regex/es2015/text.js +0 -6
  384. package/node_modules/emoji-regex/index.d.ts +0 -23
  385. package/node_modules/emoji-regex/index.js +0 -6
  386. package/node_modules/emoji-regex/package.json +0 -50
  387. package/node_modules/emoji-regex/text.js +0 -6
  388. package/node_modules/escalade/dist/index.js +0 -22
  389. package/node_modules/escalade/dist/index.mjs +0 -22
  390. package/node_modules/escalade/index.d.mts +0 -11
  391. package/node_modules/escalade/index.d.ts +0 -15
  392. package/node_modules/escalade/license +0 -9
  393. package/node_modules/escalade/package.json +0 -74
  394. package/node_modules/escalade/readme.md +0 -211
  395. package/node_modules/escalade/sync/index.d.mts +0 -9
  396. package/node_modules/escalade/sync/index.d.ts +0 -13
  397. package/node_modules/escalade/sync/index.js +0 -18
  398. package/node_modules/escalade/sync/index.mjs +0 -18
  399. package/node_modules/esprima/ChangeLog +0 -235
  400. package/node_modules/get-caller-file/LICENSE.md +0 -6
  401. package/node_modules/get-caller-file/README.md +0 -41
  402. package/node_modules/get-caller-file/index.d.ts +0 -2
  403. package/node_modules/get-caller-file/index.js +0 -22
  404. package/node_modules/get-caller-file/index.js.map +0 -1
  405. package/node_modules/get-caller-file/package.json +0 -42
  406. package/node_modules/has-flag/index.d.ts +0 -39
  407. package/node_modules/has-flag/index.js +0 -8
  408. package/node_modules/has-flag/license +0 -9
  409. package/node_modules/has-flag/package.json +0 -46
  410. package/node_modules/has-flag/readme.md +0 -89
  411. package/node_modules/highlight.js/LICENSE +0 -29
  412. package/node_modules/highlight.js/README.md +0 -371
  413. package/node_modules/highlight.js/lib/core.js +0 -2517
  414. package/node_modules/highlight.js/lib/highlight.js +0 -2
  415. package/node_modules/highlight.js/lib/index.js +0 -195
  416. package/node_modules/highlight.js/lib/languages/1c.js +0 -521
  417. package/node_modules/highlight.js/lib/languages/abnf.js +0 -103
  418. package/node_modules/highlight.js/lib/languages/accesslog.js +0 -127
  419. package/node_modules/highlight.js/lib/languages/actionscript.js +0 -113
  420. package/node_modules/highlight.js/lib/languages/ada.js +0 -194
  421. package/node_modules/highlight.js/lib/languages/angelscript.js +0 -123
  422. package/node_modules/highlight.js/lib/languages/apache.js +0 -89
  423. package/node_modules/highlight.js/lib/languages/applescript.js +0 -189
  424. package/node_modules/highlight.js/lib/languages/arcade.js +0 -165
  425. package/node_modules/highlight.js/lib/languages/arduino.js +0 -576
  426. package/node_modules/highlight.js/lib/languages/armasm.js +0 -131
  427. package/node_modules/highlight.js/lib/languages/asciidoc.js +0 -303
  428. package/node_modules/highlight.js/lib/languages/aspectj.js +0 -186
  429. package/node_modules/highlight.js/lib/languages/autohotkey.js +0 -84
  430. package/node_modules/highlight.js/lib/languages/autoit.js +0 -183
  431. package/node_modules/highlight.js/lib/languages/avrasm.js +0 -80
  432. package/node_modules/highlight.js/lib/languages/awk.js +0 -73
  433. package/node_modules/highlight.js/lib/languages/axapta.js +0 -179
  434. package/node_modules/highlight.js/lib/languages/bash.js +0 -169
  435. package/node_modules/highlight.js/lib/languages/basic.js +0 -65
  436. package/node_modules/highlight.js/lib/languages/bnf.js +0 -38
  437. package/node_modules/highlight.js/lib/languages/brainfuck.js +0 -46
  438. package/node_modules/highlight.js/lib/languages/c-like.js +0 -501
  439. package/node_modules/highlight.js/lib/languages/c.js +0 -309
  440. package/node_modules/highlight.js/lib/languages/cal.js +0 -104
  441. package/node_modules/highlight.js/lib/languages/capnproto.js +0 -64
  442. package/node_modules/highlight.js/lib/languages/ceylon.js +0 -82
  443. package/node_modules/highlight.js/lib/languages/clean.js +0 -40
  444. package/node_modules/highlight.js/lib/languages/clojure-repl.js +0 -27
  445. package/node_modules/highlight.js/lib/languages/clojure.js +0 -158
  446. package/node_modules/highlight.js/lib/languages/cmake.js +0 -64
  447. package/node_modules/highlight.js/lib/languages/coffeescript.js +0 -356
  448. package/node_modules/highlight.js/lib/languages/coq.js +0 -79
  449. package/node_modules/highlight.js/lib/languages/cos.js +0 -138
  450. package/node_modules/highlight.js/lib/languages/cpp.js +0 -464
  451. package/node_modules/highlight.js/lib/languages/crmsh.js +0 -102
  452. package/node_modules/highlight.js/lib/languages/crystal.js +0 -326
  453. package/node_modules/highlight.js/lib/languages/csharp.js +0 -441
  454. package/node_modules/highlight.js/lib/languages/csp.js +0 -37
  455. package/node_modules/highlight.js/lib/languages/css.js +0 -608
  456. package/node_modules/highlight.js/lib/languages/d.js +0 -271
  457. package/node_modules/highlight.js/lib/languages/dart.js +0 -199
  458. package/node_modules/highlight.js/lib/languages/delphi.js +0 -126
  459. package/node_modules/highlight.js/lib/languages/diff.js +0 -85
  460. package/node_modules/highlight.js/lib/languages/django.js +0 -77
  461. package/node_modules/highlight.js/lib/languages/dns.js +0 -46
  462. package/node_modules/highlight.js/lib/languages/dockerfile.js +0 -34
  463. package/node_modules/highlight.js/lib/languages/dos.js +0 -70
  464. package/node_modules/highlight.js/lib/languages/dsconfig.js +0 -66
  465. package/node_modules/highlight.js/lib/languages/dts.js +0 -153
  466. package/node_modules/highlight.js/lib/languages/dust.js +0 -45
  467. package/node_modules/highlight.js/lib/languages/ebnf.js +0 -53
  468. package/node_modules/highlight.js/lib/languages/elixir.js +0 -259
  469. package/node_modules/highlight.js/lib/languages/elm.js +0 -129
  470. package/node_modules/highlight.js/lib/languages/erb.js +0 -29
  471. package/node_modules/highlight.js/lib/languages/erlang-repl.js +0 -86
  472. package/node_modules/highlight.js/lib/languages/erlang.js +0 -199
  473. package/node_modules/highlight.js/lib/languages/excel.js +0 -64
  474. package/node_modules/highlight.js/lib/languages/fix.js +0 -37
  475. package/node_modules/highlight.js/lib/languages/flix.js +0 -54
  476. package/node_modules/highlight.js/lib/languages/fortran.js +0 -159
  477. package/node_modules/highlight.js/lib/languages/fsharp.js +0 -86
  478. package/node_modules/highlight.js/lib/languages/gams.js +0 -208
  479. package/node_modules/highlight.js/lib/languages/gauss.js +0 -316
  480. package/node_modules/highlight.js/lib/languages/gcode.js +0 -88
  481. package/node_modules/highlight.js/lib/languages/gherkin.js +0 -49
  482. package/node_modules/highlight.js/lib/languages/glsl.js +0 -128
  483. package/node_modules/highlight.js/lib/languages/gml.js +0 -885
  484. package/node_modules/highlight.js/lib/languages/go.js +0 -74
  485. package/node_modules/highlight.js/lib/languages/golo.js +0 -33
  486. package/node_modules/highlight.js/lib/languages/gradle.js +0 -44
  487. package/node_modules/highlight.js/lib/languages/groovy.js +0 -174
  488. package/node_modules/highlight.js/lib/languages/haml.js +0 -117
  489. package/node_modules/highlight.js/lib/languages/handlebars.js +0 -324
  490. package/node_modules/highlight.js/lib/languages/haskell.js +0 -173
  491. package/node_modules/highlight.js/lib/languages/haxe.js +0 -157
  492. package/node_modules/highlight.js/lib/languages/hsp.js +0 -65
  493. package/node_modules/highlight.js/lib/languages/htmlbars.js +0 -352
  494. package/node_modules/highlight.js/lib/languages/http.js +0 -121
  495. package/node_modules/highlight.js/lib/languages/hy.js +0 -109
  496. package/node_modules/highlight.js/lib/languages/inform7.js +0 -70
  497. package/node_modules/highlight.js/lib/languages/ini.js +0 -173
  498. package/node_modules/highlight.js/lib/languages/irpf90.js +0 -141
  499. package/node_modules/highlight.js/lib/languages/isbl.js +0 -3207
  500. package/node_modules/highlight.js/lib/languages/java.js +0 -181
  501. package/node_modules/highlight.js/lib/languages/javascript.js +0 -604
  502. package/node_modules/highlight.js/lib/languages/jboss-cli.js +0 -63
  503. package/node_modules/highlight.js/lib/languages/json.js +0 -63
  504. package/node_modules/highlight.js/lib/languages/julia-repl.js +0 -50
  505. package/node_modules/highlight.js/lib/languages/julia.js +0 -416
  506. package/node_modules/highlight.js/lib/languages/kotlin.js +0 -284
  507. package/node_modules/highlight.js/lib/languages/lasso.js +0 -187
  508. package/node_modules/highlight.js/lib/languages/latex.js +0 -276
  509. package/node_modules/highlight.js/lib/languages/ldif.js +0 -42
  510. package/node_modules/highlight.js/lib/languages/leaf.js +0 -49
  511. package/node_modules/highlight.js/lib/languages/less.js +0 -666
  512. package/node_modules/highlight.js/lib/languages/lisp.js +0 -111
  513. package/node_modules/highlight.js/lib/languages/livecodeserver.js +0 -189
  514. package/node_modules/highlight.js/lib/languages/livescript.js +0 -374
  515. package/node_modules/highlight.js/lib/languages/llvm.js +0 -154
  516. package/node_modules/highlight.js/lib/languages/lsl.js +0 -95
  517. package/node_modules/highlight.js/lib/languages/lua.js +0 -82
  518. package/node_modules/highlight.js/lib/languages/makefile.js +0 -92
  519. package/node_modules/highlight.js/lib/languages/markdown.js +0 -258
  520. package/node_modules/highlight.js/lib/languages/mathematica.js +0 -6797
  521. package/node_modules/highlight.js/lib/languages/matlab.js +0 -106
  522. package/node_modules/highlight.js/lib/languages/maxima.js +0 -417
  523. package/node_modules/highlight.js/lib/languages/mel.js +0 -236
  524. package/node_modules/highlight.js/lib/languages/mercury.js +0 -121
  525. package/node_modules/highlight.js/lib/languages/mipsasm.js +0 -109
  526. package/node_modules/highlight.js/lib/languages/mizar.js +0 -29
  527. package/node_modules/highlight.js/lib/languages/mojolicious.js +0 -36
  528. package/node_modules/highlight.js/lib/languages/monkey.js +0 -89
  529. package/node_modules/highlight.js/lib/languages/moonscript.js +0 -147
  530. package/node_modules/highlight.js/lib/languages/n1ql.js +0 -77
  531. package/node_modules/highlight.js/lib/languages/nginx.js +0 -140
  532. package/node_modules/highlight.js/lib/languages/nim.js +0 -79
  533. package/node_modules/highlight.js/lib/languages/nix.js +0 -65
  534. package/node_modules/highlight.js/lib/languages/node-repl.js +0 -37
  535. package/node_modules/highlight.js/lib/languages/nsis.js +0 -119
  536. package/node_modules/highlight.js/lib/languages/objectivec.js +0 -121
  537. package/node_modules/highlight.js/lib/languages/ocaml.js +0 -82
  538. package/node_modules/highlight.js/lib/languages/openscad.js +0 -81
  539. package/node_modules/highlight.js/lib/languages/oxygene.js +0 -101
  540. package/node_modules/highlight.js/lib/languages/parser3.js +0 -57
  541. package/node_modules/highlight.js/lib/languages/perl.js +0 -515
  542. package/node_modules/highlight.js/lib/languages/pf.js +0 -59
  543. package/node_modules/highlight.js/lib/languages/pgsql.js +0 -630
  544. package/node_modules/highlight.js/lib/languages/php-template.js +0 -54
  545. package/node_modules/highlight.js/lib/languages/php.js +0 -204
  546. package/node_modules/highlight.js/lib/languages/plaintext.js +0 -19
  547. package/node_modules/highlight.js/lib/languages/pony.js +0 -89
  548. package/node_modules/highlight.js/lib/languages/powershell.js +0 -331
  549. package/node_modules/highlight.js/lib/languages/processing.js +0 -58
  550. package/node_modules/highlight.js/lib/languages/profile.js +0 -43
  551. package/node_modules/highlight.js/lib/languages/prolog.js +0 -102
  552. package/node_modules/highlight.js/lib/languages/properties.js +0 -85
  553. package/node_modules/highlight.js/lib/languages/protobuf.js +0 -47
  554. package/node_modules/highlight.js/lib/languages/puppet.js +0 -147
  555. package/node_modules/highlight.js/lib/languages/purebasic.js +0 -101
  556. package/node_modules/highlight.js/lib/languages/python-repl.js +0 -36
  557. package/node_modules/highlight.js/lib/languages/python.js +0 -446
  558. package/node_modules/highlight.js/lib/languages/q.js +0 -37
  559. package/node_modules/highlight.js/lib/languages/qml.js +0 -225
  560. package/node_modules/highlight.js/lib/languages/r.js +0 -231
  561. package/node_modules/highlight.js/lib/languages/reasonml.js +0 -321
  562. package/node_modules/highlight.js/lib/languages/rib.js +0 -37
  563. package/node_modules/highlight.js/lib/languages/roboconf.js +0 -82
  564. package/node_modules/highlight.js/lib/languages/routeros.js +0 -172
  565. package/node_modules/highlight.js/lib/languages/rsl.js +0 -49
  566. package/node_modules/highlight.js/lib/languages/ruby.js +0 -387
  567. package/node_modules/highlight.js/lib/languages/ruleslanguage.js +0 -78
  568. package/node_modules/highlight.js/lib/languages/rust.js +0 -146
  569. package/node_modules/highlight.js/lib/languages/sas.js +0 -133
  570. package/node_modules/highlight.js/lib/languages/scala.js +0 -140
  571. package/node_modules/highlight.js/lib/languages/scheme.js +0 -207
  572. package/node_modules/highlight.js/lib/languages/scilab.js +0 -73
  573. package/node_modules/highlight.js/lib/languages/scss.js +0 -545
  574. package/node_modules/highlight.js/lib/languages/shell.js +0 -30
  575. package/node_modules/highlight.js/lib/languages/smali.js +0 -135
  576. package/node_modules/highlight.js/lib/languages/smalltalk.js +0 -63
  577. package/node_modules/highlight.js/lib/languages/sml.js +0 -81
  578. package/node_modules/highlight.js/lib/languages/sqf.js +0 -448
  579. package/node_modules/highlight.js/lib/languages/sql.js +0 -699
  580. package/node_modules/highlight.js/lib/languages/sql_more.js +0 -183
  581. package/node_modules/highlight.js/lib/languages/stan.js +0 -548
  582. package/node_modules/highlight.js/lib/languages/stata.js +0 -60
  583. package/node_modules/highlight.js/lib/languages/step21.js +0 -66
  584. package/node_modules/highlight.js/lib/languages/stylus.js +0 -609
  585. package/node_modules/highlight.js/lib/languages/subunit.js +0 -51
  586. package/node_modules/highlight.js/lib/languages/swift.js +0 -873
  587. package/node_modules/highlight.js/lib/languages/taggerscript.js +0 -52
  588. package/node_modules/highlight.js/lib/languages/tap.js +0 -55
  589. package/node_modules/highlight.js/lib/languages/tcl.js +0 -115
  590. package/node_modules/highlight.js/lib/languages/thrift.js +0 -51
  591. package/node_modules/highlight.js/lib/languages/tp.js +0 -95
  592. package/node_modules/highlight.js/lib/languages/twig.js +0 -77
  593. package/node_modules/highlight.js/lib/languages/typescript.js +0 -697
  594. package/node_modules/highlight.js/lib/languages/vala.js +0 -61
  595. package/node_modules/highlight.js/lib/languages/vbnet.js +0 -214
  596. package/node_modules/highlight.js/lib/languages/vbscript-html.js +0 -24
  597. package/node_modules/highlight.js/lib/languages/vbscript.js +0 -109
  598. package/node_modules/highlight.js/lib/languages/verilog.js +0 -131
  599. package/node_modules/highlight.js/lib/languages/vhdl.js +0 -71
  600. package/node_modules/highlight.js/lib/languages/vim.js +0 -123
  601. package/node_modules/highlight.js/lib/languages/x86asm.js +0 -163
  602. package/node_modules/highlight.js/lib/languages/xl.js +0 -92
  603. package/node_modules/highlight.js/lib/languages/xml.js +0 -287
  604. package/node_modules/highlight.js/lib/languages/xquery.js +0 -197
  605. package/node_modules/highlight.js/lib/languages/yaml.js +0 -176
  606. package/node_modules/highlight.js/lib/languages/zephir.js +0 -140
  607. package/node_modules/highlight.js/package.json +0 -86
  608. package/node_modules/highlight.js/scss/a11y-dark.scss +0 -99
  609. package/node_modules/highlight.js/scss/a11y-light.scss +0 -99
  610. package/node_modules/highlight.js/scss/agate.scss +0 -108
  611. package/node_modules/highlight.js/scss/an-old-hope.scss +0 -89
  612. package/node_modules/highlight.js/scss/androidstudio.scss +0 -66
  613. package/node_modules/highlight.js/scss/arduino-light.scss +0 -87
  614. package/node_modules/highlight.js/scss/arta.scss +0 -73
  615. package/node_modules/highlight.js/scss/ascetic.scss +0 -45
  616. package/node_modules/highlight.js/scss/atelier-cave-dark.scss +0 -83
  617. package/node_modules/highlight.js/scss/atelier-cave-light.scss +0 -85
  618. package/node_modules/highlight.js/scss/atelier-dune-dark.scss +0 -69
  619. package/node_modules/highlight.js/scss/atelier-dune-light.scss +0 -69
  620. package/node_modules/highlight.js/scss/atelier-estuary-dark.scss +0 -84
  621. package/node_modules/highlight.js/scss/atelier-estuary-light.scss +0 -84
  622. package/node_modules/highlight.js/scss/atelier-forest-dark.scss +0 -69
  623. package/node_modules/highlight.js/scss/atelier-forest-light.scss +0 -69
  624. package/node_modules/highlight.js/scss/atelier-heath-dark.scss +0 -69
  625. package/node_modules/highlight.js/scss/atelier-heath-light.scss +0 -69
  626. package/node_modules/highlight.js/scss/atelier-lakeside-dark.scss +0 -69
  627. package/node_modules/highlight.js/scss/atelier-lakeside-light.scss +0 -69
  628. package/node_modules/highlight.js/scss/atelier-plateau-dark.scss +0 -84
  629. package/node_modules/highlight.js/scss/atelier-plateau-light.scss +0 -84
  630. package/node_modules/highlight.js/scss/atelier-savanna-dark.scss +0 -84
  631. package/node_modules/highlight.js/scss/atelier-savanna-light.scss +0 -84
  632. package/node_modules/highlight.js/scss/atelier-seaside-dark.scss +0 -69
  633. package/node_modules/highlight.js/scss/atelier-seaside-light.scss +0 -69
  634. package/node_modules/highlight.js/scss/atelier-sulphurpool-dark.scss +0 -69
  635. package/node_modules/highlight.js/scss/atelier-sulphurpool-light.scss +0 -69
  636. package/node_modules/highlight.js/scss/atom-one-dark-reasonable.scss +0 -75
  637. package/node_modules/highlight.js/scss/atom-one-dark.scss +0 -96
  638. package/node_modules/highlight.js/scss/atom-one-light.scss +0 -96
  639. package/node_modules/highlight.js/scss/brown-paper.scss +0 -64
  640. package/node_modules/highlight.js/scss/brown-papersq.png +0 -0
  641. package/node_modules/highlight.js/scss/codepen-embed.scss +0 -60
  642. package/node_modules/highlight.js/scss/color-brewer.scss +0 -71
  643. package/node_modules/highlight.js/scss/darcula.scss +0 -74
  644. package/node_modules/highlight.js/scss/dark.scss +0 -63
  645. package/node_modules/highlight.js/scss/default.scss +0 -99
  646. package/node_modules/highlight.js/scss/docco.scss +0 -97
  647. package/node_modules/highlight.js/scss/dracula.scss +0 -76
  648. package/node_modules/highlight.js/scss/far.scss +0 -71
  649. package/node_modules/highlight.js/scss/foundation.scss +0 -89
  650. package/node_modules/highlight.js/scss/github-gist.scss +0 -79
  651. package/node_modules/highlight.js/scss/github.scss +0 -99
  652. package/node_modules/highlight.js/scss/gml.scss +0 -78
  653. package/node_modules/highlight.js/scss/googlecode.scss +0 -89
  654. package/node_modules/highlight.js/scss/gradient-dark.scss +0 -122
  655. package/node_modules/highlight.js/scss/gradient-light.scss +0 -130
  656. package/node_modules/highlight.js/scss/grayscale.scss +0 -101
  657. package/node_modules/highlight.js/scss/gruvbox-dark.scss +0 -108
  658. package/node_modules/highlight.js/scss/gruvbox-light.scss +0 -108
  659. package/node_modules/highlight.js/scss/hopscotch.scss +0 -84
  660. package/node_modules/highlight.js/scss/hybrid.scss +0 -102
  661. package/node_modules/highlight.js/scss/idea.scss +0 -97
  662. package/node_modules/highlight.js/scss/ir-black.scss +0 -73
  663. package/node_modules/highlight.js/scss/isbl-editor-dark.scss +0 -112
  664. package/node_modules/highlight.js/scss/isbl-editor-light.scss +0 -111
  665. package/node_modules/highlight.js/scss/kimbie.dark.scss +0 -74
  666. package/node_modules/highlight.js/scss/kimbie.light.scss +0 -74
  667. package/node_modules/highlight.js/scss/lightfair.scss +0 -88
  668. package/node_modules/highlight.js/scss/lioshi.scss +0 -88
  669. package/node_modules/highlight.js/scss/magula.scss +0 -70
  670. package/node_modules/highlight.js/scss/mono-blue.scss +0 -56
  671. package/node_modules/highlight.js/scss/monokai-sublime.scss +0 -83
  672. package/node_modules/highlight.js/scss/monokai.scss +0 -71
  673. package/node_modules/highlight.js/scss/night-owl.scss +0 -182
  674. package/node_modules/highlight.js/scss/nnfx-dark.scss +0 -106
  675. package/node_modules/highlight.js/scss/nnfx.scss +0 -106
  676. package/node_modules/highlight.js/scss/nord.scss +0 -309
  677. package/node_modules/highlight.js/scss/obsidian.scss +0 -88
  678. package/node_modules/highlight.js/scss/ocean.scss +0 -74
  679. package/node_modules/highlight.js/scss/paraiso-dark.scss +0 -72
  680. package/node_modules/highlight.js/scss/paraiso-light.scss +0 -72
  681. package/node_modules/highlight.js/scss/pojoaque.jpg +0 -0
  682. package/node_modules/highlight.js/scss/pojoaque.scss +0 -83
  683. package/node_modules/highlight.js/scss/purebasic.scss +0 -96
  684. package/node_modules/highlight.js/scss/qtcreator_dark.scss +0 -83
  685. package/node_modules/highlight.js/scss/qtcreator_light.scss +0 -83
  686. package/node_modules/highlight.js/scss/railscasts.scss +0 -106
  687. package/node_modules/highlight.js/scss/rainbow.scss +0 -85
  688. package/node_modules/highlight.js/scss/routeros.scss +0 -108
  689. package/node_modules/highlight.js/scss/school-book.png +0 -0
  690. package/node_modules/highlight.js/scss/school-book.scss +0 -69
  691. package/node_modules/highlight.js/scss/shades-of-purple.scss +0 -96
  692. package/node_modules/highlight.js/scss/solarized-dark.scss +0 -84
  693. package/node_modules/highlight.js/scss/solarized-light.scss +0 -84
  694. package/node_modules/highlight.js/scss/srcery.scss +0 -78
  695. package/node_modules/highlight.js/scss/stackoverflow-dark.scss +0 -78
  696. package/node_modules/highlight.js/scss/stackoverflow-light.scss +0 -78
  697. package/node_modules/highlight.js/scss/sunburst.scss +0 -102
  698. package/node_modules/highlight.js/scss/tomorrow-night-blue.scss +0 -75
  699. package/node_modules/highlight.js/scss/tomorrow-night-bright.scss +0 -74
  700. package/node_modules/highlight.js/scss/tomorrow-night-eighties.scss +0 -74
  701. package/node_modules/highlight.js/scss/tomorrow-night.scss +0 -75
  702. package/node_modules/highlight.js/scss/tomorrow.scss +0 -72
  703. package/node_modules/highlight.js/scss/vs.scss +0 -68
  704. package/node_modules/highlight.js/scss/vs2015.scss +0 -115
  705. package/node_modules/highlight.js/scss/xcode.scss +0 -104
  706. package/node_modules/highlight.js/scss/xt256.scss +0 -92
  707. package/node_modules/highlight.js/scss/zenburn.scss +0 -80
  708. package/node_modules/highlight.js/styles/a11y-dark.css +0 -99
  709. package/node_modules/highlight.js/styles/a11y-light.css +0 -99
  710. package/node_modules/highlight.js/styles/agate.css +0 -108
  711. package/node_modules/highlight.js/styles/an-old-hope.css +0 -89
  712. package/node_modules/highlight.js/styles/androidstudio.css +0 -66
  713. package/node_modules/highlight.js/styles/arduino-light.css +0 -87
  714. package/node_modules/highlight.js/styles/arta.css +0 -73
  715. package/node_modules/highlight.js/styles/ascetic.css +0 -45
  716. package/node_modules/highlight.js/styles/atelier-cave-dark.css +0 -83
  717. package/node_modules/highlight.js/styles/atelier-cave-light.css +0 -85
  718. package/node_modules/highlight.js/styles/atelier-dune-dark.css +0 -69
  719. package/node_modules/highlight.js/styles/atelier-dune-light.css +0 -69
  720. package/node_modules/highlight.js/styles/atelier-estuary-dark.css +0 -84
  721. package/node_modules/highlight.js/styles/atelier-estuary-light.css +0 -84
  722. package/node_modules/highlight.js/styles/atelier-forest-dark.css +0 -69
  723. package/node_modules/highlight.js/styles/atelier-forest-light.css +0 -69
  724. package/node_modules/highlight.js/styles/atelier-heath-dark.css +0 -69
  725. package/node_modules/highlight.js/styles/atelier-heath-light.css +0 -69
  726. package/node_modules/highlight.js/styles/atelier-lakeside-dark.css +0 -69
  727. package/node_modules/highlight.js/styles/atelier-lakeside-light.css +0 -69
  728. package/node_modules/highlight.js/styles/atelier-plateau-dark.css +0 -84
  729. package/node_modules/highlight.js/styles/atelier-plateau-light.css +0 -84
  730. package/node_modules/highlight.js/styles/atelier-savanna-dark.css +0 -84
  731. package/node_modules/highlight.js/styles/atelier-savanna-light.css +0 -84
  732. package/node_modules/highlight.js/styles/atelier-seaside-dark.css +0 -69
  733. package/node_modules/highlight.js/styles/atelier-seaside-light.css +0 -69
  734. package/node_modules/highlight.js/styles/atelier-sulphurpool-dark.css +0 -69
  735. package/node_modules/highlight.js/styles/atelier-sulphurpool-light.css +0 -69
  736. package/node_modules/highlight.js/styles/atom-one-dark-reasonable.css +0 -75
  737. package/node_modules/highlight.js/styles/atom-one-dark.css +0 -96
  738. package/node_modules/highlight.js/styles/atom-one-light.css +0 -96
  739. package/node_modules/highlight.js/styles/brown-paper.css +0 -64
  740. package/node_modules/highlight.js/styles/brown-papersq.png +0 -0
  741. package/node_modules/highlight.js/styles/codepen-embed.css +0 -60
  742. package/node_modules/highlight.js/styles/color-brewer.css +0 -71
  743. package/node_modules/highlight.js/styles/darcula.css +0 -74
  744. package/node_modules/highlight.js/styles/dark.css +0 -63
  745. package/node_modules/highlight.js/styles/default.css +0 -99
  746. package/node_modules/highlight.js/styles/docco.css +0 -97
  747. package/node_modules/highlight.js/styles/dracula.css +0 -76
  748. package/node_modules/highlight.js/styles/far.css +0 -71
  749. package/node_modules/highlight.js/styles/foundation.css +0 -89
  750. package/node_modules/highlight.js/styles/github-gist.css +0 -79
  751. package/node_modules/highlight.js/styles/github.css +0 -99
  752. package/node_modules/highlight.js/styles/gml.css +0 -78
  753. package/node_modules/highlight.js/styles/googlecode.css +0 -89
  754. package/node_modules/highlight.js/styles/gradient-dark.css +0 -122
  755. package/node_modules/highlight.js/styles/gradient-light.css +0 -130
  756. package/node_modules/highlight.js/styles/grayscale.css +0 -101
  757. package/node_modules/highlight.js/styles/gruvbox-dark.css +0 -108
  758. package/node_modules/highlight.js/styles/gruvbox-light.css +0 -108
  759. package/node_modules/highlight.js/styles/hopscotch.css +0 -84
  760. package/node_modules/highlight.js/styles/hybrid.css +0 -102
  761. package/node_modules/highlight.js/styles/idea.css +0 -97
  762. package/node_modules/highlight.js/styles/ir-black.css +0 -73
  763. package/node_modules/highlight.js/styles/isbl-editor-dark.css +0 -112
  764. package/node_modules/highlight.js/styles/isbl-editor-light.css +0 -111
  765. package/node_modules/highlight.js/styles/kimbie.dark.css +0 -74
  766. package/node_modules/highlight.js/styles/kimbie.light.css +0 -74
  767. package/node_modules/highlight.js/styles/lightfair.css +0 -88
  768. package/node_modules/highlight.js/styles/lioshi.css +0 -88
  769. package/node_modules/highlight.js/styles/magula.css +0 -70
  770. package/node_modules/highlight.js/styles/mono-blue.css +0 -56
  771. package/node_modules/highlight.js/styles/monokai-sublime.css +0 -83
  772. package/node_modules/highlight.js/styles/monokai.css +0 -71
  773. package/node_modules/highlight.js/styles/night-owl.css +0 -182
  774. package/node_modules/highlight.js/styles/nnfx-dark.css +0 -106
  775. package/node_modules/highlight.js/styles/nnfx.css +0 -106
  776. package/node_modules/highlight.js/styles/nord.css +0 -309
  777. package/node_modules/highlight.js/styles/obsidian.css +0 -88
  778. package/node_modules/highlight.js/styles/ocean.css +0 -74
  779. package/node_modules/highlight.js/styles/paraiso-dark.css +0 -72
  780. package/node_modules/highlight.js/styles/paraiso-light.css +0 -72
  781. package/node_modules/highlight.js/styles/pojoaque.css +0 -83
  782. package/node_modules/highlight.js/styles/pojoaque.jpg +0 -0
  783. package/node_modules/highlight.js/styles/purebasic.css +0 -96
  784. package/node_modules/highlight.js/styles/qtcreator_dark.css +0 -83
  785. package/node_modules/highlight.js/styles/qtcreator_light.css +0 -83
  786. package/node_modules/highlight.js/styles/railscasts.css +0 -106
  787. package/node_modules/highlight.js/styles/rainbow.css +0 -85
  788. package/node_modules/highlight.js/styles/routeros.css +0 -108
  789. package/node_modules/highlight.js/styles/school-book.css +0 -69
  790. package/node_modules/highlight.js/styles/school-book.png +0 -0
  791. package/node_modules/highlight.js/styles/shades-of-purple.css +0 -96
  792. package/node_modules/highlight.js/styles/solarized-dark.css +0 -84
  793. package/node_modules/highlight.js/styles/solarized-light.css +0 -84
  794. package/node_modules/highlight.js/styles/srcery.css +0 -78
  795. package/node_modules/highlight.js/styles/stackoverflow-dark.css +0 -78
  796. package/node_modules/highlight.js/styles/stackoverflow-light.css +0 -78
  797. package/node_modules/highlight.js/styles/sunburst.css +0 -102
  798. package/node_modules/highlight.js/styles/tomorrow-night-blue.css +0 -75
  799. package/node_modules/highlight.js/styles/tomorrow-night-bright.css +0 -74
  800. package/node_modules/highlight.js/styles/tomorrow-night-eighties.css +0 -74
  801. package/node_modules/highlight.js/styles/tomorrow-night.css +0 -75
  802. package/node_modules/highlight.js/styles/tomorrow.css +0 -72
  803. package/node_modules/highlight.js/styles/vs.css +0 -68
  804. package/node_modules/highlight.js/styles/vs2015.css +0 -115
  805. package/node_modules/highlight.js/styles/xcode.css +0 -104
  806. package/node_modules/highlight.js/styles/xt256.css +0 -92
  807. package/node_modules/highlight.js/styles/zenburn.css +0 -80
  808. package/node_modules/highlight.js/types/index.d.ts +0 -261
  809. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  810. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  811. package/node_modules/is-fullwidth-code-point/license +0 -9
  812. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  813. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  814. package/node_modules/mz/HISTORY.md +0 -66
  815. package/node_modules/mz/LICENSE +0 -22
  816. package/node_modules/mz/README.md +0 -106
  817. package/node_modules/mz/child_process.js +0 -8
  818. package/node_modules/mz/crypto.js +0 -9
  819. package/node_modules/mz/dns.js +0 -16
  820. package/node_modules/mz/fs.js +0 -62
  821. package/node_modules/mz/index.js +0 -8
  822. package/node_modules/mz/package.json +0 -44
  823. package/node_modules/mz/readline.js +0 -64
  824. package/node_modules/mz/zlib.js +0 -13
  825. package/node_modules/object-assign/index.js +0 -90
  826. package/node_modules/object-assign/license +0 -21
  827. package/node_modules/object-assign/package.json +0 -42
  828. package/node_modules/object-assign/readme.md +0 -61
  829. package/node_modules/parse5/LICENSE +0 -19
  830. package/node_modules/parse5/README.md +0 -38
  831. package/node_modules/parse5/lib/common/doctype.js +0 -162
  832. package/node_modules/parse5/lib/common/error-codes.js +0 -65
  833. package/node_modules/parse5/lib/common/foreign-content.js +0 -265
  834. package/node_modules/parse5/lib/common/html.js +0 -272
  835. package/node_modules/parse5/lib/common/unicode.js +0 -109
  836. package/node_modules/parse5/lib/extensions/error-reporting/mixin-base.js +0 -43
  837. package/node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js +0 -52
  838. package/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js +0 -24
  839. package/node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js +0 -17
  840. package/node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js +0 -35
  841. package/node_modules/parse5/lib/extensions/location-info/parser-mixin.js +0 -222
  842. package/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js +0 -146
  843. package/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js +0 -64
  844. package/node_modules/parse5/lib/index.js +0 -29
  845. package/node_modules/parse5/lib/parser/formatting-element-list.js +0 -181
  846. package/node_modules/parse5/lib/parser/index.js +0 -2956
  847. package/node_modules/parse5/lib/parser/open-element-stack.js +0 -482
  848. package/node_modules/parse5/lib/serializer/index.js +0 -176
  849. package/node_modules/parse5/lib/tokenizer/index.js +0 -2196
  850. package/node_modules/parse5/lib/tokenizer/named-entity-data.js +0 -5
  851. package/node_modules/parse5/lib/tokenizer/preprocessor.js +0 -159
  852. package/node_modules/parse5/lib/tree-adapters/default.js +0 -217
  853. package/node_modules/parse5/lib/utils/merge-options.js +0 -13
  854. package/node_modules/parse5/lib/utils/mixin.js +0 -39
  855. package/node_modules/parse5/package.json +0 -35
  856. package/node_modules/parse5-htmlparser2-tree-adapter/LICENSE +0 -19
  857. package/node_modules/parse5-htmlparser2-tree-adapter/README.md +0 -34
  858. package/node_modules/parse5-htmlparser2-tree-adapter/lib/index.js +0 -348
  859. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/LICENSE +0 -19
  860. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/README.md +0 -38
  861. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/common/doctype.js +0 -162
  862. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/common/error-codes.js +0 -65
  863. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/common/foreign-content.js +0 -265
  864. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/common/html.js +0 -272
  865. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/common/unicode.js +0 -109
  866. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/error-reporting/mixin-base.js +0 -43
  867. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js +0 -52
  868. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js +0 -24
  869. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js +0 -17
  870. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js +0 -35
  871. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/location-info/parser-mixin.js +0 -223
  872. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js +0 -146
  873. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js +0 -64
  874. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/index.js +0 -29
  875. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/parser/formatting-element-list.js +0 -181
  876. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/parser/index.js +0 -2956
  877. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/parser/open-element-stack.js +0 -482
  878. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/serializer/index.js +0 -176
  879. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/tokenizer/index.js +0 -2196
  880. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/tokenizer/named-entity-data.js +0 -5
  881. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/tokenizer/preprocessor.js +0 -159
  882. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/tree-adapters/default.js +0 -221
  883. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/utils/merge-options.js +0 -13
  884. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/lib/utils/mixin.js +0 -39
  885. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/package.json +0 -35
  886. package/node_modules/parse5-htmlparser2-tree-adapter/package.json +0 -27
  887. package/node_modules/proper-lockfile/CHANGELOG.md +0 -108
  888. package/node_modules/require-directory/.jshintrc +0 -67
  889. package/node_modules/require-directory/.npmignore +0 -1
  890. package/node_modules/require-directory/.travis.yml +0 -3
  891. package/node_modules/require-directory/LICENSE +0 -22
  892. package/node_modules/require-directory/README.markdown +0 -184
  893. package/node_modules/require-directory/index.js +0 -86
  894. package/node_modules/require-directory/package.json +0 -40
  895. package/node_modules/source-map/CHANGELOG.md +0 -301
  896. package/node_modules/string-width/index.d.ts +0 -29
  897. package/node_modules/string-width/index.js +0 -47
  898. package/node_modules/string-width/license +0 -9
  899. package/node_modules/string-width/node_modules/ansi-regex/index.d.ts +0 -37
  900. package/node_modules/string-width/node_modules/ansi-regex/index.js +0 -10
  901. package/node_modules/string-width/node_modules/ansi-regex/license +0 -9
  902. package/node_modules/string-width/node_modules/ansi-regex/package.json +0 -55
  903. package/node_modules/string-width/node_modules/ansi-regex/readme.md +0 -78
  904. package/node_modules/string-width/node_modules/strip-ansi/index.d.ts +0 -17
  905. package/node_modules/string-width/node_modules/strip-ansi/index.js +0 -4
  906. package/node_modules/string-width/node_modules/strip-ansi/license +0 -9
  907. package/node_modules/string-width/node_modules/strip-ansi/package.json +0 -54
  908. package/node_modules/string-width/node_modules/strip-ansi/readme.md +0 -46
  909. package/node_modules/string-width/package.json +0 -56
  910. package/node_modules/string-width/readme.md +0 -50
  911. package/node_modules/supports-color/browser.js +0 -5
  912. package/node_modules/supports-color/index.js +0 -135
  913. package/node_modules/supports-color/license +0 -9
  914. package/node_modules/supports-color/package.json +0 -53
  915. package/node_modules/supports-color/readme.md +0 -76
  916. package/node_modules/thenify/History.md +0 -11
  917. package/node_modules/thenify/LICENSE +0 -22
  918. package/node_modules/thenify/README.md +0 -120
  919. package/node_modules/thenify/index.js +0 -77
  920. package/node_modules/thenify/package.json +0 -31
  921. package/node_modules/thenify-all/History.md +0 -11
  922. package/node_modules/thenify-all/LICENSE +0 -22
  923. package/node_modules/thenify-all/README.md +0 -66
  924. package/node_modules/thenify-all/index.js +0 -73
  925. package/node_modules/thenify-all/package.json +0 -34
  926. package/node_modules/wrap-ansi/index.js +0 -216
  927. package/node_modules/wrap-ansi/license +0 -9
  928. package/node_modules/wrap-ansi/node_modules/ansi-regex/index.d.ts +0 -37
  929. package/node_modules/wrap-ansi/node_modules/ansi-regex/index.js +0 -10
  930. package/node_modules/wrap-ansi/node_modules/ansi-regex/license +0 -9
  931. package/node_modules/wrap-ansi/node_modules/ansi-regex/package.json +0 -55
  932. package/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md +0 -78
  933. package/node_modules/wrap-ansi/node_modules/strip-ansi/index.d.ts +0 -17
  934. package/node_modules/wrap-ansi/node_modules/strip-ansi/index.js +0 -4
  935. package/node_modules/wrap-ansi/node_modules/strip-ansi/license +0 -9
  936. package/node_modules/wrap-ansi/node_modules/strip-ansi/package.json +0 -54
  937. package/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md +0 -46
  938. package/node_modules/wrap-ansi/package.json +0 -62
  939. package/node_modules/wrap-ansi/readme.md +0 -91
  940. package/node_modules/y18n/CHANGELOG.md +0 -100
  941. package/node_modules/y18n/LICENSE +0 -13
  942. package/node_modules/y18n/README.md +0 -127
  943. package/node_modules/y18n/build/index.cjs +0 -203
  944. package/node_modules/y18n/build/lib/cjs.js +0 -6
  945. package/node_modules/y18n/build/lib/index.js +0 -174
  946. package/node_modules/y18n/build/lib/platform-shims/node.js +0 -19
  947. package/node_modules/y18n/index.mjs +0 -8
  948. package/node_modules/y18n/package.json +0 -70
  949. package/node_modules/yargs/CHANGELOG.md +0 -88
  950. package/node_modules/yargs/LICENSE +0 -21
  951. package/node_modules/yargs/README.md +0 -202
  952. package/node_modules/yargs/browser.mjs +0 -7
  953. package/node_modules/yargs/build/index.cjs +0 -2920
  954. package/node_modules/yargs/build/lib/argsert.js +0 -62
  955. package/node_modules/yargs/build/lib/command.js +0 -382
  956. package/node_modules/yargs/build/lib/completion-templates.js +0 -47
  957. package/node_modules/yargs/build/lib/completion.js +0 -128
  958. package/node_modules/yargs/build/lib/middleware.js +0 -53
  959. package/node_modules/yargs/build/lib/parse-command.js +0 -32
  960. package/node_modules/yargs/build/lib/typings/common-types.js +0 -9
  961. package/node_modules/yargs/build/lib/typings/yargs-parser-types.js +0 -1
  962. package/node_modules/yargs/build/lib/usage.js +0 -548
  963. package/node_modules/yargs/build/lib/utils/apply-extends.js +0 -59
  964. package/node_modules/yargs/build/lib/utils/is-promise.js +0 -5
  965. package/node_modules/yargs/build/lib/utils/levenshtein.js +0 -26
  966. package/node_modules/yargs/build/lib/utils/obj-filter.js +0 -10
  967. package/node_modules/yargs/build/lib/utils/process-argv.js +0 -17
  968. package/node_modules/yargs/build/lib/utils/set-blocking.js +0 -12
  969. package/node_modules/yargs/build/lib/utils/which-module.js +0 -10
  970. package/node_modules/yargs/build/lib/validation.js +0 -308
  971. package/node_modules/yargs/build/lib/yargs-factory.js +0 -1143
  972. package/node_modules/yargs/build/lib/yerror.js +0 -7
  973. package/node_modules/yargs/helpers/helpers.mjs +0 -10
  974. package/node_modules/yargs/helpers/index.js +0 -14
  975. package/node_modules/yargs/helpers/package.json +0 -3
  976. package/node_modules/yargs/index.cjs +0 -39
  977. package/node_modules/yargs/index.mjs +0 -8
  978. package/node_modules/yargs/lib/platform-shims/browser.mjs +0 -92
  979. package/node_modules/yargs/lib/platform-shims/esm.mjs +0 -67
  980. package/node_modules/yargs/locales/be.json +0 -46
  981. package/node_modules/yargs/locales/de.json +0 -46
  982. package/node_modules/yargs/locales/en.json +0 -51
  983. package/node_modules/yargs/locales/es.json +0 -46
  984. package/node_modules/yargs/locales/fi.json +0 -49
  985. package/node_modules/yargs/locales/fr.json +0 -53
  986. package/node_modules/yargs/locales/hi.json +0 -49
  987. package/node_modules/yargs/locales/hu.json +0 -46
  988. package/node_modules/yargs/locales/id.json +0 -50
  989. package/node_modules/yargs/locales/it.json +0 -46
  990. package/node_modules/yargs/locales/ja.json +0 -51
  991. package/node_modules/yargs/locales/ko.json +0 -49
  992. package/node_modules/yargs/locales/nb.json +0 -44
  993. package/node_modules/yargs/locales/nl.json +0 -49
  994. package/node_modules/yargs/locales/nn.json +0 -44
  995. package/node_modules/yargs/locales/pirate.json +0 -13
  996. package/node_modules/yargs/locales/pl.json +0 -49
  997. package/node_modules/yargs/locales/pt.json +0 -45
  998. package/node_modules/yargs/locales/pt_BR.json +0 -48
  999. package/node_modules/yargs/locales/ru.json +0 -46
  1000. package/node_modules/yargs/locales/th.json +0 -46
  1001. package/node_modules/yargs/locales/tr.json +0 -48
  1002. package/node_modules/yargs/locales/zh_CN.json +0 -48
  1003. package/node_modules/yargs/locales/zh_TW.json +0 -47
  1004. package/node_modules/yargs/package.json +0 -122
  1005. package/node_modules/yargs/yargs +0 -9
  1006. package/node_modules/yargs-parser/CHANGELOG.md +0 -263
  1007. package/node_modules/yargs-parser/LICENSE.txt +0 -14
  1008. package/node_modules/yargs-parser/README.md +0 -518
  1009. package/node_modules/yargs-parser/browser.js +0 -29
  1010. package/node_modules/yargs-parser/build/index.cjs +0 -1042
  1011. package/node_modules/yargs-parser/build/lib/index.js +0 -59
  1012. package/node_modules/yargs-parser/build/lib/string-utils.js +0 -65
  1013. package/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +0 -40
  1014. package/node_modules/yargs-parser/build/lib/yargs-parser-types.js +0 -12
  1015. package/node_modules/yargs-parser/build/lib/yargs-parser.js +0 -1037
  1016. package/node_modules/yargs-parser/package.json +0 -87
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { eastAsianWidth } from \"get-east-asian-width\";\n\n// Grapheme segmenter (shared instance)\nconst segmenter = new Intl.Segmenter(undefined, { granularity: \"grapheme\" });\n\n/**\n * Get the shared grapheme segmenter instance.\n */\nexport function getSegmenter(): Intl.Segmenter {\n\treturn segmenter;\n}\n\n/**\n * Check if a grapheme cluster (after segmentation) could possibly be an RGI emoji.\n * This is a fast heuristic to avoid the expensive rgiEmojiRegex test.\n * The tested Unicode blocks are deliberately broad to account for future\n * Unicode additions.\n */\nfunction couldBeEmoji(segment: string): boolean {\n\tconst cp = segment.codePointAt(0)!;\n\treturn (\n\t\t(cp >= 0x1f000 && cp <= 0x1fbff) || // Emoji and Pictograph\n\t\t(cp >= 0x2300 && cp <= 0x23ff) || // Misc technical\n\t\t(cp >= 0x2600 && cp <= 0x27bf) || // Misc symbols, dingbats\n\t\t(cp >= 0x2b50 && cp <= 0x2b55) || // Specific stars/circles\n\t\tsegment.includes(\"\\uFE0F\") || // Contains VS16 (emoji presentation selector)\n\t\tsegment.length > 2 // Multi-codepoint sequences (ZWJ, skin tones, etc.)\n\t);\n}\n\n// Regexes for character classification (same as string-width library)\nconst zeroWidthRegex = /^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Mark}|\\p{Surrogate})+$/v;\nconst leadingNonPrintingRegex = /^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+/v;\nconst rgiEmojiRegex = /^\\p{RGI_Emoji}$/v;\n\n// Cache for non-ASCII strings\nconst WIDTH_CACHE_SIZE = 512;\nconst widthCache = new Map<string, number>();\n\n/**\n * Calculate the terminal width of a single grapheme cluster.\n * Based on code from the string-width library, but includes a possible-emoji\n * check to avoid running the RGI_Emoji regex unnecessarily.\n */\nfunction graphemeWidth(segment: string): number {\n\t// Zero-width clusters\n\tif (zeroWidthRegex.test(segment)) {\n\t\treturn 0;\n\t}\n\n\t// Emoji check with pre-filter\n\tif (couldBeEmoji(segment) && rgiEmojiRegex.test(segment)) {\n\t\treturn 2;\n\t}\n\n\t// Get base visible codepoint\n\tconst base = segment.replace(leadingNonPrintingRegex, \"\");\n\tconst cp = base.codePointAt(0);\n\tif (cp === undefined) {\n\t\treturn 0;\n\t}\n\n\t// Regional indicator symbols (U+1F1E6..U+1F1FF) are often rendered as\n\t// full-width emoji in terminals, even when isolated during streaming.\n\t// Keep width conservative (2) to avoid terminal auto-wrap drift artifacts.\n\tif (cp >= 0x1f1e6 && cp <= 0x1f1ff) {\n\t\treturn 2;\n\t}\n\n\tlet width = eastAsianWidth(cp);\n\n\t// Trailing halfwidth/fullwidth forms\n\tif (segment.length > 1) {\n\t\tfor (const char of segment.slice(1)) {\n\t\t\tconst c = char.codePointAt(0)!;\n\t\t\tif (c >= 0xff00 && c <= 0xffef) {\n\t\t\t\twidth += eastAsianWidth(c);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn width;\n}\n\n/**\n * Calculate the visible width of a string in terminal columns.\n */\nexport function visibleWidth(str: string): number {\n\tif (str.length === 0) {\n\t\treturn 0;\n\t}\n\n\t// Fast path: pure ASCII printable\n\tlet isPureAscii = true;\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst code = str.charCodeAt(i);\n\t\tif (code < 0x20 || code > 0x7e) {\n\t\t\tisPureAscii = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (isPureAscii) {\n\t\treturn str.length;\n\t}\n\n\t// Check cache\n\tconst cached = widthCache.get(str);\n\tif (cached !== undefined) {\n\t\treturn cached;\n\t}\n\n\t// Normalize: tabs to 3 spaces, strip ANSI escape codes\n\tlet clean = str;\n\tif (str.includes(\"\\t\")) {\n\t\tclean = clean.replace(/\\t/g, \" \");\n\t}\n\tif (clean.includes(\"\\x1b\")) {\n\t\t// Strip supported ANSI/OSC/APC escape sequences in one pass.\n\t\t// This covers CSI styling/cursor codes, OSC hyperlinks and prompt markers,\n\t\t// and APC sequences like CURSOR_MARKER.\n\t\tlet stripped = \"\";\n\t\tlet i = 0;\n\t\twhile (i < clean.length) {\n\t\t\tconst ansi = extractAnsiCode(clean, i);\n\t\t\tif (ansi) {\n\t\t\t\ti += ansi.length;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tstripped += clean[i];\n\t\t\ti++;\n\t\t}\n\t\tclean = stripped;\n\t}\n\n\t// Calculate width\n\tlet width = 0;\n\tfor (const { segment } of segmenter.segment(clean)) {\n\t\twidth += graphemeWidth(segment);\n\t}\n\n\t// Cache result\n\tif (widthCache.size >= WIDTH_CACHE_SIZE) {\n\t\tconst firstKey = widthCache.keys().next().value;\n\t\tif (firstKey !== undefined) {\n\t\t\twidthCache.delete(firstKey);\n\t\t}\n\t}\n\twidthCache.set(str, width);\n\n\treturn width;\n}\n\n/**\n * Extract ANSI escape sequences from a string at the given position.\n */\nexport function extractAnsiCode(str: string, pos: number): { code: string; length: number } | null {\n\tif (pos >= str.length || str[pos] !== \"\\x1b\") return null;\n\n\tconst next = str[pos + 1];\n\n\t// CSI sequence: ESC [ ... m/G/K/H/J\n\tif (next === \"[\") {\n\t\tlet j = pos + 2;\n\t\twhile (j < str.length && !/[mGKHJ]/.test(str[j]!)) j++;\n\t\tif (j < str.length) return { code: str.substring(pos, j + 1), length: j + 1 - pos };\n\t\treturn null;\n\t}\n\n\t// OSC sequence: ESC ] ... BEL or ESC ] ... ST (ESC \\)\n\t// Used for hyperlinks (OSC 8), window titles, etc.\n\tif (next === \"]\") {\n\t\tlet j = pos + 2;\n\t\twhile (j < str.length) {\n\t\t\tif (str[j] === \"\\x07\") return { code: str.substring(pos, j + 1), length: j + 1 - pos };\n\t\t\tif (str[j] === \"\\x1b\" && str[j + 1] === \"\\\\\") return { code: str.substring(pos, j + 2), length: j + 2 - pos };\n\t\t\tj++;\n\t\t}\n\t\treturn null;\n\t}\n\n\t// APC sequence: ESC _ ... BEL or ESC _ ... ST (ESC \\)\n\t// Used for cursor marker and application-specific commands\n\tif (next === \"_\") {\n\t\tlet j = pos + 2;\n\t\twhile (j < str.length) {\n\t\t\tif (str[j] === \"\\x07\") return { code: str.substring(pos, j + 1), length: j + 1 - pos };\n\t\t\tif (str[j] === \"\\x1b\" && str[j + 1] === \"\\\\\") return { code: str.substring(pos, j + 2), length: j + 2 - pos };\n\t\t\tj++;\n\t\t}\n\t\treturn null;\n\t}\n\n\treturn null;\n}\n\n/**\n * Track active ANSI SGR codes to preserve styling across line breaks.\n */\nclass AnsiCodeTracker {\n\t// Track individual attributes separately so we can reset them specifically\n\tprivate bold = false;\n\tprivate dim = false;\n\tprivate italic = false;\n\tprivate underline = false;\n\tprivate blink = false;\n\tprivate inverse = false;\n\tprivate hidden = false;\n\tprivate strikethrough = false;\n\tprivate fgColor: string | null = null; // Stores the full code like \"31\" or \"38;5;240\"\n\tprivate bgColor: string | null = null; // Stores the full code like \"41\" or \"48;5;240\"\n\n\tprocess(ansiCode: string): void {\n\t\tif (!ansiCode.endsWith(\"m\")) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Extract the parameters between \\x1b[ and m\n\t\tconst match = ansiCode.match(/\\x1b\\[([\\d;]*)m/);\n\t\tif (!match) return;\n\n\t\tconst params = match[1];\n\t\tif (params === \"\" || params === \"0\") {\n\t\t\t// Full reset\n\t\t\tthis.reset();\n\t\t\treturn;\n\t\t}\n\n\t\t// Parse parameters (can be semicolon-separated)\n\t\tconst parts = params.split(\";\");\n\t\tlet i = 0;\n\t\twhile (i < parts.length) {\n\t\t\tconst code = Number.parseInt(parts[i], 10);\n\n\t\t\t// Handle 256-color and RGB codes which consume multiple parameters\n\t\t\tif (code === 38 || code === 48) {\n\t\t\t\t// 38;5;N (256 color fg) or 38;2;R;G;B (RGB fg)\n\t\t\t\t// 48;5;N (256 color bg) or 48;2;R;G;B (RGB bg)\n\t\t\t\tif (parts[i + 1] === \"5\" && parts[i + 2] !== undefined) {\n\t\t\t\t\t// 256 color: 38;5;N or 48;5;N\n\t\t\t\t\tconst colorCode = `${parts[i]};${parts[i + 1]};${parts[i + 2]}`;\n\t\t\t\t\tif (code === 38) {\n\t\t\t\t\t\tthis.fgColor = colorCode;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.bgColor = colorCode;\n\t\t\t\t\t}\n\t\t\t\t\ti += 3;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (parts[i + 1] === \"2\" && parts[i + 4] !== undefined) {\n\t\t\t\t\t// RGB color: 38;2;R;G;B or 48;2;R;G;B\n\t\t\t\t\tconst colorCode = `${parts[i]};${parts[i + 1]};${parts[i + 2]};${parts[i + 3]};${parts[i + 4]}`;\n\t\t\t\t\tif (code === 38) {\n\t\t\t\t\t\tthis.fgColor = colorCode;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.bgColor = colorCode;\n\t\t\t\t\t}\n\t\t\t\t\ti += 5;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Standard SGR codes\n\t\t\tswitch (code) {\n\t\t\t\tcase 0:\n\t\t\t\t\tthis.reset();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tthis.bold = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tthis.dim = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tthis.italic = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tthis.underline = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 5:\n\t\t\t\t\tthis.blink = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 7:\n\t\t\t\t\tthis.inverse = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 8:\n\t\t\t\t\tthis.hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9:\n\t\t\t\t\tthis.strikethrough = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 21:\n\t\t\t\t\tthis.bold = false;\n\t\t\t\t\tbreak; // Some terminals\n\t\t\t\tcase 22:\n\t\t\t\t\tthis.bold = false;\n\t\t\t\t\tthis.dim = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 23:\n\t\t\t\t\tthis.italic = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 24:\n\t\t\t\t\tthis.underline = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 25:\n\t\t\t\t\tthis.blink = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 27:\n\t\t\t\t\tthis.inverse = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 28:\n\t\t\t\t\tthis.hidden = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 29:\n\t\t\t\t\tthis.strikethrough = false;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 39:\n\t\t\t\t\tthis.fgColor = null;\n\t\t\t\t\tbreak; // Default fg\n\t\t\t\tcase 49:\n\t\t\t\t\tthis.bgColor = null;\n\t\t\t\t\tbreak; // Default bg\n\t\t\t\tdefault:\n\t\t\t\t\t// Standard foreground colors 30-37, 90-97\n\t\t\t\t\tif ((code >= 30 && code <= 37) || (code >= 90 && code <= 97)) {\n\t\t\t\t\t\tthis.fgColor = String(code);\n\t\t\t\t\t}\n\t\t\t\t\t// Standard background colors 40-47, 100-107\n\t\t\t\t\telse if ((code >= 40 && code <= 47) || (code >= 100 && code <= 107)) {\n\t\t\t\t\t\tthis.bgColor = String(code);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t}\n\n\tprivate reset(): void {\n\t\tthis.bold = false;\n\t\tthis.dim = false;\n\t\tthis.italic = false;\n\t\tthis.underline = false;\n\t\tthis.blink = false;\n\t\tthis.inverse = false;\n\t\tthis.hidden = false;\n\t\tthis.strikethrough = false;\n\t\tthis.fgColor = null;\n\t\tthis.bgColor = null;\n\t}\n\n\t/** Clear all state for reuse. */\n\tclear(): void {\n\t\tthis.reset();\n\t}\n\n\tgetActiveCodes(): string {\n\t\tconst codes: string[] = [];\n\t\tif (this.bold) codes.push(\"1\");\n\t\tif (this.dim) codes.push(\"2\");\n\t\tif (this.italic) codes.push(\"3\");\n\t\tif (this.underline) codes.push(\"4\");\n\t\tif (this.blink) codes.push(\"5\");\n\t\tif (this.inverse) codes.push(\"7\");\n\t\tif (this.hidden) codes.push(\"8\");\n\t\tif (this.strikethrough) codes.push(\"9\");\n\t\tif (this.fgColor) codes.push(this.fgColor);\n\t\tif (this.bgColor) codes.push(this.bgColor);\n\n\t\tif (codes.length === 0) return \"\";\n\t\treturn `\\x1b[${codes.join(\";\")}m`;\n\t}\n\n\thasActiveCodes(): boolean {\n\t\treturn (\n\t\t\tthis.bold ||\n\t\t\tthis.dim ||\n\t\t\tthis.italic ||\n\t\t\tthis.underline ||\n\t\t\tthis.blink ||\n\t\t\tthis.inverse ||\n\t\t\tthis.hidden ||\n\t\t\tthis.strikethrough ||\n\t\t\tthis.fgColor !== null ||\n\t\t\tthis.bgColor !== null\n\t\t);\n\t}\n\n\t/**\n\t * Get reset codes for attributes that need to be turned off at line end,\n\t * specifically underline which bleeds into padding.\n\t * Returns empty string if no problematic attributes are active.\n\t */\n\tgetLineEndReset(): string {\n\t\t// Only underline causes visual bleeding into padding\n\t\t// Other attributes like colors don't visually bleed to padding\n\t\tif (this.underline) {\n\t\t\treturn \"\\x1b[24m\"; // Underline off only\n\t\t}\n\t\treturn \"\";\n\t}\n}\n\nfunction updateTrackerFromText(text: string, tracker: AnsiCodeTracker): void {\n\tlet i = 0;\n\twhile (i < text.length) {\n\t\tconst ansiResult = extractAnsiCode(text, i);\n\t\tif (ansiResult) {\n\t\t\ttracker.process(ansiResult.code);\n\t\t\ti += ansiResult.length;\n\t\t} else {\n\t\t\ti++;\n\t\t}\n\t}\n}\n\n/**\n * Split text into words while keeping ANSI codes attached.\n */\nfunction splitIntoTokensWithAnsi(text: string): string[] {\n\tconst tokens: string[] = [];\n\tlet current = \"\";\n\tlet pendingAnsi = \"\"; // ANSI codes waiting to be attached to next visible content\n\tlet inWhitespace = false;\n\tlet i = 0;\n\n\twhile (i < text.length) {\n\t\tconst ansiResult = extractAnsiCode(text, i);\n\t\tif (ansiResult) {\n\t\t\t// Hold ANSI codes separately - they'll be attached to the next visible char\n\t\t\tpendingAnsi += ansiResult.code;\n\t\t\ti += ansiResult.length;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst char = text[i];\n\t\tconst charIsSpace = char === \" \";\n\n\t\tif (charIsSpace !== inWhitespace && current) {\n\t\t\t// Switching between whitespace and non-whitespace, push current token\n\t\t\ttokens.push(current);\n\t\t\tcurrent = \"\";\n\t\t}\n\n\t\t// Attach any pending ANSI codes to this visible character\n\t\tif (pendingAnsi) {\n\t\t\tcurrent += pendingAnsi;\n\t\t\tpendingAnsi = \"\";\n\t\t}\n\n\t\tinWhitespace = charIsSpace;\n\t\tcurrent += char;\n\t\ti++;\n\t}\n\n\t// Handle any remaining pending ANSI codes (attach to last token)\n\tif (pendingAnsi) {\n\t\tcurrent += pendingAnsi;\n\t}\n\n\tif (current) {\n\t\ttokens.push(current);\n\t}\n\n\treturn tokens;\n}\n\n/**\n * Wrap text with ANSI codes preserved.\n *\n * ONLY does word wrapping - NO padding, NO background colors.\n * Returns lines where each line is <= width visible chars.\n * Active ANSI codes are preserved across line breaks.\n *\n * @param text - Text to wrap (may contain ANSI codes and newlines)\n * @param width - Maximum visible width per line\n * @returns Array of wrapped lines (NOT padded to width)\n */\nexport function wrapTextWithAnsi(text: string, width: number): string[] {\n\tif (!text) {\n\t\treturn [\"\"];\n\t}\n\n\t// Handle newlines by processing each line separately\n\t// Track ANSI state across lines so styles carry over after literal newlines\n\tconst inputLines = text.split(\"\\n\");\n\tconst result: string[] = [];\n\tconst tracker = new AnsiCodeTracker();\n\n\tfor (const inputLine of inputLines) {\n\t\t// Prepend active ANSI codes from previous lines (except for first line)\n\t\tconst prefix = result.length > 0 ? tracker.getActiveCodes() : \"\";\n\t\tresult.push(...wrapSingleLine(prefix + inputLine, width));\n\t\t// Update tracker with codes from this line for next iteration\n\t\tupdateTrackerFromText(inputLine, tracker);\n\t}\n\n\treturn result.length > 0 ? result : [\"\"];\n}\n\nfunction wrapSingleLine(line: string, width: number): string[] {\n\tif (!line) {\n\t\treturn [\"\"];\n\t}\n\n\tconst visibleLength = visibleWidth(line);\n\tif (visibleLength <= width) {\n\t\treturn [line];\n\t}\n\n\tconst wrapped: string[] = [];\n\tconst tracker = new AnsiCodeTracker();\n\tconst tokens = splitIntoTokensWithAnsi(line);\n\n\tlet currentLine = \"\";\n\tlet currentVisibleLength = 0;\n\n\tfor (const token of tokens) {\n\t\tconst tokenVisibleLength = visibleWidth(token);\n\t\tconst isWhitespace = token.trim() === \"\";\n\n\t\t// Token itself is too long - break it character by character\n\t\tif (tokenVisibleLength > width && !isWhitespace) {\n\t\t\tif (currentLine) {\n\t\t\t\t// Add specific reset for underline only (preserves background)\n\t\t\t\tconst lineEndReset = tracker.getLineEndReset();\n\t\t\t\tif (lineEndReset) {\n\t\t\t\t\tcurrentLine += lineEndReset;\n\t\t\t\t}\n\t\t\t\twrapped.push(currentLine);\n\t\t\t\tcurrentLine = \"\";\n\t\t\t\tcurrentVisibleLength = 0;\n\t\t\t}\n\n\t\t\t// Break long token - breakLongWord handles its own resets\n\t\t\tconst broken = breakLongWord(token, width, tracker);\n\t\t\twrapped.push(...broken.slice(0, -1));\n\t\t\tcurrentLine = broken[broken.length - 1];\n\t\t\tcurrentVisibleLength = visibleWidth(currentLine);\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Check if adding this token would exceed width\n\t\tconst totalNeeded = currentVisibleLength + tokenVisibleLength;\n\n\t\tif (totalNeeded > width && currentVisibleLength > 0) {\n\t\t\t// Trim trailing whitespace, then add underline reset (not full reset, to preserve background)\n\t\t\tlet lineToWrap = currentLine.trimEnd();\n\t\t\tconst lineEndReset = tracker.getLineEndReset();\n\t\t\tif (lineEndReset) {\n\t\t\t\tlineToWrap += lineEndReset;\n\t\t\t}\n\t\t\twrapped.push(lineToWrap);\n\t\t\tif (isWhitespace) {\n\t\t\t\t// Don't start new line with whitespace\n\t\t\t\tcurrentLine = tracker.getActiveCodes();\n\t\t\t\tcurrentVisibleLength = 0;\n\t\t\t} else {\n\t\t\t\tcurrentLine = tracker.getActiveCodes() + token;\n\t\t\t\tcurrentVisibleLength = tokenVisibleLength;\n\t\t\t}\n\t\t} else {\n\t\t\t// Add to current line\n\t\t\tcurrentLine += token;\n\t\t\tcurrentVisibleLength += tokenVisibleLength;\n\t\t}\n\n\t\tupdateTrackerFromText(token, tracker);\n\t}\n\n\tif (currentLine) {\n\t\t// No reset at end of final line - let caller handle it\n\t\twrapped.push(currentLine);\n\t}\n\n\t// Trailing whitespace can cause lines to exceed the requested width\n\treturn wrapped.length > 0 ? wrapped.map((line) => line.trimEnd()) : [\"\"];\n}\n\nconst PUNCTUATION_REGEX = /[(){}[\\]<>.,;:'\"!?+\\-=*/\\\\|&%^$#@~`]/;\n\n/**\n * Check if a character is whitespace.\n */\nexport function isWhitespaceChar(char: string): boolean {\n\treturn /\\s/.test(char);\n}\n\n/**\n * Check if a character is punctuation.\n */\nexport function isPunctuationChar(char: string): boolean {\n\treturn PUNCTUATION_REGEX.test(char);\n}\n\nfunction breakLongWord(word: string, width: number, tracker: AnsiCodeTracker): string[] {\n\tconst lines: string[] = [];\n\tlet currentLine = tracker.getActiveCodes();\n\tlet currentWidth = 0;\n\n\t// First, separate ANSI codes from visible content\n\t// We need to handle ANSI codes specially since they're not graphemes\n\tlet i = 0;\n\tconst segments: Array<{ type: \"ansi\" | \"grapheme\"; value: string }> = [];\n\n\twhile (i < word.length) {\n\t\tconst ansiResult = extractAnsiCode(word, i);\n\t\tif (ansiResult) {\n\t\t\tsegments.push({ type: \"ansi\", value: ansiResult.code });\n\t\t\ti += ansiResult.length;\n\t\t} else {\n\t\t\t// Find the next ANSI code or end of string\n\t\t\tlet end = i;\n\t\t\twhile (end < word.length) {\n\t\t\t\tconst nextAnsi = extractAnsiCode(word, end);\n\t\t\t\tif (nextAnsi) break;\n\t\t\t\tend++;\n\t\t\t}\n\t\t\t// Segment this non-ANSI portion into graphemes\n\t\t\tconst textPortion = word.slice(i, end);\n\t\t\tfor (const seg of segmenter.segment(textPortion)) {\n\t\t\t\tsegments.push({ type: \"grapheme\", value: seg.segment });\n\t\t\t}\n\t\t\ti = end;\n\t\t}\n\t}\n\n\t// Now process segments\n\tfor (const seg of segments) {\n\t\tif (seg.type === \"ansi\") {\n\t\t\tcurrentLine += seg.value;\n\t\t\ttracker.process(seg.value);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst grapheme = seg.value;\n\t\t// Skip empty graphemes to avoid issues with string-width calculation\n\t\tif (!grapheme) continue;\n\n\t\tconst graphemeWidth = visibleWidth(grapheme);\n\n\t\tif (currentWidth + graphemeWidth > width) {\n\t\t\t// Add specific reset for underline only (preserves background)\n\t\t\tconst lineEndReset = tracker.getLineEndReset();\n\t\t\tif (lineEndReset) {\n\t\t\t\tcurrentLine += lineEndReset;\n\t\t\t}\n\t\t\tlines.push(currentLine);\n\t\t\tcurrentLine = tracker.getActiveCodes();\n\t\t\tcurrentWidth = 0;\n\t\t}\n\n\t\tcurrentLine += grapheme;\n\t\tcurrentWidth += graphemeWidth;\n\t}\n\n\tif (currentLine) {\n\t\t// No reset at end of final segment - caller handles continuation\n\t\tlines.push(currentLine);\n\t}\n\n\treturn lines.length > 0 ? lines : [\"\"];\n}\n\n/**\n * Apply background color to a line, padding to full width.\n *\n * @param line - Line of text (may contain ANSI codes)\n * @param width - Total width to pad to\n * @param bgFn - Background color function\n * @returns Line with background applied and padded to width\n */\nexport function applyBackgroundToLine(line: string, width: number, bgFn: (text: string) => string): string {\n\t// Calculate padding needed\n\tconst visibleLen = visibleWidth(line);\n\tconst paddingNeeded = Math.max(0, width - visibleLen);\n\tconst padding = \" \".repeat(paddingNeeded);\n\n\t// Apply background to content + padding\n\tconst withPadding = line + padding;\n\treturn bgFn(withPadding);\n}\n\n/**\n * Truncate text to fit within a maximum visible width, adding ellipsis if needed.\n * Optionally pad with spaces to reach exactly maxWidth.\n * Properly handles ANSI escape codes (they don't count toward width).\n *\n * @param text - Text to truncate (may contain ANSI codes)\n * @param maxWidth - Maximum visible width\n * @param ellipsis - Ellipsis string to append when truncating (default: \"...\")\n * @param pad - If true, pad result with spaces to exactly maxWidth (default: false)\n * @returns Truncated text, optionally padded to exactly maxWidth\n */\nexport function truncateToWidth(\n\ttext: string,\n\tmaxWidth: number,\n\tellipsis: string = \"...\",\n\tpad: boolean = false,\n): string {\n\tconst textVisibleWidth = visibleWidth(text);\n\n\tif (textVisibleWidth <= maxWidth) {\n\t\treturn pad ? text + \" \".repeat(maxWidth - textVisibleWidth) : text;\n\t}\n\n\tconst ellipsisWidth = visibleWidth(ellipsis);\n\tconst targetWidth = maxWidth - ellipsisWidth;\n\n\tif (targetWidth <= 0) {\n\t\treturn ellipsis.substring(0, maxWidth);\n\t}\n\n\t// Separate ANSI codes from visible content using grapheme segmentation\n\tlet i = 0;\n\tconst segments: Array<{ type: \"ansi\" | \"grapheme\"; value: string }> = [];\n\n\twhile (i < text.length) {\n\t\tconst ansiResult = extractAnsiCode(text, i);\n\t\tif (ansiResult) {\n\t\t\tsegments.push({ type: \"ansi\", value: ansiResult.code });\n\t\t\ti += ansiResult.length;\n\t\t} else {\n\t\t\t// Find the next ANSI code or end of string\n\t\t\tlet end = i;\n\t\t\twhile (end < text.length) {\n\t\t\t\tconst nextAnsi = extractAnsiCode(text, end);\n\t\t\t\tif (nextAnsi) break;\n\t\t\t\tend++;\n\t\t\t}\n\t\t\t// Segment this non-ANSI portion into graphemes\n\t\t\tconst textPortion = text.slice(i, end);\n\t\t\tfor (const seg of segmenter.segment(textPortion)) {\n\t\t\t\tsegments.push({ type: \"grapheme\", value: seg.segment });\n\t\t\t}\n\t\t\ti = end;\n\t\t}\n\t}\n\n\t// Build truncated string from segments\n\tlet result = \"\";\n\tlet currentWidth = 0;\n\n\tfor (const seg of segments) {\n\t\tif (seg.type === \"ansi\") {\n\t\t\tresult += seg.value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst grapheme = seg.value;\n\t\t// Skip empty graphemes to avoid issues with string-width calculation\n\t\tif (!grapheme) continue;\n\n\t\tconst graphemeWidth = visibleWidth(grapheme);\n\n\t\tif (currentWidth + graphemeWidth > targetWidth) {\n\t\t\tbreak;\n\t\t}\n\n\t\tresult += grapheme;\n\t\tcurrentWidth += graphemeWidth;\n\t}\n\n\t// Add reset code before ellipsis to prevent styling leaking into it\n\tconst truncated = `${result}\\x1b[0m${ellipsis}`;\n\tif (pad) {\n\t\tconst truncatedWidth = visibleWidth(truncated);\n\t\treturn truncated + \" \".repeat(Math.max(0, maxWidth - truncatedWidth));\n\t}\n\treturn truncated;\n}\n\n/**\n * Extract a range of visible columns from a line. Handles ANSI codes and wide chars.\n * @param strict - If true, exclude wide chars at boundary that would extend past the range\n */\nexport function sliceByColumn(line: string, startCol: number, length: number, strict = false): string {\n\treturn sliceWithWidth(line, startCol, length, strict).text;\n}\n\n/** Like sliceByColumn but also returns the actual visible width of the result. */\nexport function sliceWithWidth(\n\tline: string,\n\tstartCol: number,\n\tlength: number,\n\tstrict = false,\n): { text: string; width: number } {\n\tif (length <= 0) return { text: \"\", width: 0 };\n\tconst endCol = startCol + length;\n\tlet result = \"\",\n\t\tresultWidth = 0,\n\t\tcurrentCol = 0,\n\t\ti = 0,\n\t\tpendingAnsi = \"\";\n\n\twhile (i < line.length) {\n\t\tconst ansi = extractAnsiCode(line, i);\n\t\tif (ansi) {\n\t\t\tif (currentCol >= startCol && currentCol < endCol) result += ansi.code;\n\t\t\telse if (currentCol < startCol) pendingAnsi += ansi.code;\n\t\t\ti += ansi.length;\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet textEnd = i;\n\t\twhile (textEnd < line.length && !extractAnsiCode(line, textEnd)) textEnd++;\n\n\t\tfor (const { segment } of segmenter.segment(line.slice(i, textEnd))) {\n\t\t\tconst w = graphemeWidth(segment);\n\t\t\tconst inRange = currentCol >= startCol && currentCol < endCol;\n\t\t\tconst fits = !strict || currentCol + w <= endCol;\n\t\t\tif (inRange && fits) {\n\t\t\t\tif (pendingAnsi) {\n\t\t\t\t\tresult += pendingAnsi;\n\t\t\t\t\tpendingAnsi = \"\";\n\t\t\t\t}\n\t\t\t\tresult += segment;\n\t\t\t\tresultWidth += w;\n\t\t\t}\n\t\t\tcurrentCol += w;\n\t\t\tif (currentCol >= endCol) break;\n\t\t}\n\t\ti = textEnd;\n\t\tif (currentCol >= endCol) break;\n\t}\n\treturn { text: result, width: resultWidth };\n}\n\n// Pooled tracker instance for extractSegments (avoids allocation per call)\nconst pooledStyleTracker = new AnsiCodeTracker();\n\n/**\n * Extract \"before\" and \"after\" segments from a line in a single pass.\n * Used for overlay compositing where we need content before and after the overlay region.\n * Preserves styling from before the overlay that should affect content after it.\n */\nexport function extractSegments(\n\tline: string,\n\tbeforeEnd: number,\n\tafterStart: number,\n\tafterLen: number,\n\tstrictAfter = false,\n): { before: string; beforeWidth: number; after: string; afterWidth: number } {\n\tlet before = \"\",\n\t\tbeforeWidth = 0,\n\t\tafter = \"\",\n\t\tafterWidth = 0;\n\tlet currentCol = 0,\n\t\ti = 0;\n\tlet pendingAnsiBefore = \"\";\n\tlet afterStarted = false;\n\tconst afterEnd = afterStart + afterLen;\n\n\t// Track styling state so \"after\" inherits styling from before the overlay\n\tpooledStyleTracker.clear();\n\n\twhile (i < line.length) {\n\t\tconst ansi = extractAnsiCode(line, i);\n\t\tif (ansi) {\n\t\t\t// Track all SGR codes to know styling state at afterStart\n\t\t\tpooledStyleTracker.process(ansi.code);\n\t\t\t// Include ANSI codes in their respective segments\n\t\t\tif (currentCol < beforeEnd) {\n\t\t\t\tpendingAnsiBefore += ansi.code;\n\t\t\t} else if (currentCol >= afterStart && currentCol < afterEnd && afterStarted) {\n\t\t\t\t// Only include after we've started \"after\" (styling already prepended)\n\t\t\t\tafter += ansi.code;\n\t\t\t}\n\t\t\ti += ansi.length;\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet textEnd = i;\n\t\twhile (textEnd < line.length && !extractAnsiCode(line, textEnd)) textEnd++;\n\n\t\tfor (const { segment } of segmenter.segment(line.slice(i, textEnd))) {\n\t\t\tconst w = graphemeWidth(segment);\n\n\t\t\tif (currentCol < beforeEnd) {\n\t\t\t\tif (pendingAnsiBefore) {\n\t\t\t\t\tbefore += pendingAnsiBefore;\n\t\t\t\t\tpendingAnsiBefore = \"\";\n\t\t\t\t}\n\t\t\t\tbefore += segment;\n\t\t\t\tbeforeWidth += w;\n\t\t\t} else if (currentCol >= afterStart && currentCol < afterEnd) {\n\t\t\t\tconst fits = !strictAfter || currentCol + w <= afterEnd;\n\t\t\t\tif (fits) {\n\t\t\t\t\t// On first \"after\" grapheme, prepend inherited styling from before overlay\n\t\t\t\t\tif (!afterStarted) {\n\t\t\t\t\t\tafter += pooledStyleTracker.getActiveCodes();\n\t\t\t\t\t\tafterStarted = true;\n\t\t\t\t\t}\n\t\t\t\t\tafter += segment;\n\t\t\t\t\tafterWidth += w;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcurrentCol += w;\n\t\t\t// Early exit: done with \"before\" only, or done with both segments\n\t\t\tif (afterLen <= 0 ? currentCol >= beforeEnd : currentCol >= afterEnd) break;\n\t\t}\n\t\ti = textEnd;\n\t\tif (afterLen <= 0 ? currentCol >= beforeEnd : currentCol >= afterEnd) break;\n\t}\n\n\treturn { before, beforeWidth, after, afterWidth };\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,IAAI,kBAAkB,EAClC,gBAAgB,IAAI,sBAAsB,EAC1C,eAAe,IAAI,qBAAqB,EACxC,cAAc,IAAI,oBAAoB,EACtC,eAAe,IAAI,qBAAqB,EACxC,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAE1B,uCAAuC;AACvC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,UAAU,YAAY;IAC3B,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AAEjE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,GAAW;IACvD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAE1B,oCAAoC;IACpC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;YAAE,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sDAAsD;IACtD,mDAAmD;IACnD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;YACvF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;YAC9G,CAAC,EAAE,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sDAAsD;IACtD,2DAA2D;IAC3D,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM;gBAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;YACvF,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;YAC9G,CAAC,EAAE,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa;IAC3D,OAAO,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC7C,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IACvD,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC;IAC5E,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IAC9C,+BAA+B;IAC/B,OAAO,YAAY,CAAC,KAAK,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAY,EACZ,QAAgB,EAChB,WAAmB,KAAK,EACxB,MAAe,KAAK;IAEpB,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;AACnF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAM,GAAG,KAAK;IAC3F,OAAO,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAC7B,IAAY,EACZ,QAAgB,EAChB,MAAc,EACd,MAAM,GAAG,KAAK;IAEd,OAAO,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAY,EACZ,SAAiB,EACjB,UAAkB,EAClB,QAAgB,EAChB,WAAW,GAAG,KAAK;IAEnB,OAAO,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,KAAa,EAAE,IAA8B;IAChG,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC;IACnC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import {\n\tvisibleWidth as nativeVisibleWidth,\n\twrapTextWithAnsi as nativeWrapTextWithAnsi,\n\ttruncateToWidth as nativeTruncateToWidth,\n\tsliceWithWidth as nativeSliceWithWidth,\n\textractSegments as nativeExtractSegments,\n\tEllipsisKind,\n} from \"@gsd/native/text\";\n\n// Grapheme segmenter (shared instance)\nconst segmenter = new Intl.Segmenter(undefined, { granularity: \"grapheme\" });\n\n/**\n * Get the shared grapheme segmenter instance.\n */\nexport function getSegmenter(): Intl.Segmenter {\n\treturn segmenter;\n}\n\nconst PUNCTUATION_REGEX = /[(){}[\\]<>.,;:'\"!?+\\-=*/\\\\|&%^$#@~`]/;\n\n/**\n * Check if a character is whitespace.\n */\nexport function isWhitespaceChar(char: string): boolean {\n\treturn /\\s/.test(char);\n}\n\n/**\n * Check if a character is punctuation.\n */\nexport function isPunctuationChar(char: string): boolean {\n\treturn PUNCTUATION_REGEX.test(char);\n}\n\n/**\n * Extract ANSI escape sequences from a string at the given position.\n */\nexport function extractAnsiCode(str: string, pos: number): { code: string; length: number } | null {\n\tif (pos >= str.length || str[pos] !== \"\\x1b\") return null;\n\n\tconst next = str[pos + 1];\n\n\t// CSI sequence: ESC [ ... m/G/K/H/J\n\tif (next === \"[\") {\n\t\tlet j = pos + 2;\n\t\twhile (j < str.length && !/[mGKHJ]/.test(str[j]!)) j++;\n\t\tif (j < str.length) return { code: str.substring(pos, j + 1), length: j + 1 - pos };\n\t\treturn null;\n\t}\n\n\t// OSC sequence: ESC ] ... BEL or ESC ] ... ST (ESC \\)\n\t// Used for hyperlinks (OSC 8), window titles, etc.\n\tif (next === \"]\") {\n\t\tlet j = pos + 2;\n\t\twhile (j < str.length) {\n\t\t\tif (str[j] === \"\\x07\") return { code: str.substring(pos, j + 1), length: j + 1 - pos };\n\t\t\tif (str[j] === \"\\x1b\" && str[j + 1] === \"\\\\\") return { code: str.substring(pos, j + 2), length: j + 2 - pos };\n\t\t\tj++;\n\t\t}\n\t\treturn null;\n\t}\n\n\t// APC sequence: ESC _ ... BEL or ESC _ ... ST (ESC \\)\n\t// Used for cursor marker and application-specific commands\n\tif (next === \"_\") {\n\t\tlet j = pos + 2;\n\t\twhile (j < str.length) {\n\t\t\tif (str[j] === \"\\x07\") return { code: str.substring(pos, j + 1), length: j + 1 - pos };\n\t\t\tif (str[j] === \"\\x1b\" && str[j + 1] === \"\\\\\") return { code: str.substring(pos, j + 2), length: j + 2 - pos };\n\t\t\tj++;\n\t\t}\n\t\treturn null;\n\t}\n\n\treturn null;\n}\n\n// ---------------------------------------------------------------------------\n// Native text module wrappers\n// ---------------------------------------------------------------------------\n\n/**\n * Calculate the visible width of a string in terminal columns.\n * Delegates to the native Rust implementation.\n */\nexport function visibleWidth(str: string): number {\n\treturn nativeVisibleWidth(str);\n}\n\n/**\n * Wrap text with ANSI codes preserved.\n * Delegates to the native Rust implementation.\n *\n * @param text - Text to wrap (may contain ANSI codes and newlines)\n * @param width - Maximum visible width per line\n * @returns Array of wrapped lines (NOT padded to width)\n */\nexport function wrapTextWithAnsi(text: string, width: number): string[] {\n\treturn nativeWrapTextWithAnsi(text, width);\n}\n\n/**\n * Map an ellipsis string to the native EllipsisKind enum value.\n */\nfunction ellipsisStringToKind(ellipsis: string): number {\n\tif (ellipsis === \"\\u2026\") return EllipsisKind.Unicode;\n\tif (ellipsis === \"...\" || ellipsis === undefined) return EllipsisKind.Ascii;\n\tif (ellipsis === \"\") return EllipsisKind.None;\n\t// Default: \"...\" maps to Ascii\n\treturn EllipsisKind.Ascii;\n}\n\n/**\n * Truncate text to fit within a maximum visible width, adding ellipsis if needed.\n * Optionally pad with spaces to reach exactly maxWidth.\n * Delegates to the native Rust implementation.\n *\n * @param text - Text to truncate (may contain ANSI codes)\n * @param maxWidth - Maximum visible width\n * @param ellipsis - Ellipsis string to append when truncating (default: \"...\")\n * @param pad - If true, pad result with spaces to exactly maxWidth (default: false)\n * @returns Truncated text, optionally padded to exactly maxWidth\n */\nexport function truncateToWidth(\n\ttext: string,\n\tmaxWidth: number,\n\tellipsis: string = \"...\",\n\tpad: boolean = false,\n): string {\n\treturn nativeTruncateToWidth(text, maxWidth, ellipsisStringToKind(ellipsis), pad);\n}\n\n/**\n * Extract a range of visible columns from a line. Handles ANSI codes and wide chars.\n * @param strict - If true, exclude wide chars at boundary that would extend past the range\n */\nexport function sliceByColumn(line: string, startCol: number, length: number, strict = false): string {\n\treturn sliceWithWidth(line, startCol, length, strict).text;\n}\n\n/** Like sliceByColumn but also returns the actual visible width of the result. */\nexport function sliceWithWidth(\n\tline: string,\n\tstartCol: number,\n\tlength: number,\n\tstrict = false,\n): { text: string; width: number } {\n\treturn nativeSliceWithWidth(line, startCol, length, strict);\n}\n\n/**\n * Extract \"before\" and \"after\" segments from a line in a single pass.\n * Delegates to the native Rust implementation.\n */\nexport function extractSegments(\n\tline: string,\n\tbeforeEnd: number,\n\tafterStart: number,\n\tafterLen: number,\n\tstrictAfter = false,\n): { before: string; beforeWidth: number; after: string; afterWidth: number } {\n\treturn nativeExtractSegments(line, beforeEnd, afterStart, afterLen, strictAfter);\n}\n\n/**\n * Apply background color to a line, padding to full width.\n *\n * @param line - Line of text (may contain ANSI codes)\n * @param width - Total width to pad to\n * @param bgFn - Background color function\n * @returns Line with background applied and padded to width\n */\nexport function applyBackgroundToLine(line: string, width: number, bgFn: (text: string) => string): string {\n\tconst visibleLen = visibleWidth(line);\n\tconst paddingNeeded = Math.max(0, width - visibleLen);\n\tconst padding = \" \".repeat(paddingNeeded);\n\n\tconst withPadding = line + padding;\n\treturn bgFn(withPadding);\n}\n"]}
@@ -9,6 +9,7 @@
9
9
  "build": "tsc -p tsconfig.json"
10
10
  },
11
11
  "dependencies": {
12
+ "@gsd/native": "*",
12
13
  "@types/mime-types": "^2.1.4",
13
14
  "chalk": "^5.5.0",
14
15
  "get-east-asian-width": "^1.3.0",
@@ -1,7 +1,7 @@
1
- import { spawnSync } from "child_process";
2
1
  import { readdirSync, statSync } from "fs";
3
2
  import { homedir } from "os";
4
3
  import { basename, dirname, join } from "path";
4
+ import { fuzzyFind } from "@gsd/native/fd";
5
5
  import { fuzzyFilter } from "./fuzzy.js";
6
6
 
7
7
  const PATH_DELIMITERS = new Set([" ", "\t", '"', "'", "="]);
@@ -84,67 +84,6 @@ function buildCompletionValue(
84
84
  return `${openQuote}${path}${closeQuote}`;
85
85
  }
86
86
 
87
- // Use fd to walk directory tree (fast, respects .gitignore)
88
- function walkDirectoryWithFd(
89
- baseDir: string,
90
- fdPath: string,
91
- query: string,
92
- maxResults: number,
93
- ): Array<{ path: string; isDirectory: boolean }> {
94
- const args = [
95
- "--base-directory",
96
- baseDir,
97
- "--max-results",
98
- String(maxResults),
99
- "--type",
100
- "f",
101
- "--type",
102
- "d",
103
- "--full-path",
104
- "--hidden",
105
- "--exclude",
106
- ".git",
107
- "--exclude",
108
- ".git/*",
109
- "--exclude",
110
- ".git/**",
111
- ];
112
-
113
- // Add query as pattern if provided
114
- if (query) {
115
- args.push(query);
116
- }
117
-
118
- const result = spawnSync(fdPath, args, {
119
- encoding: "utf-8",
120
- stdio: ["pipe", "pipe", "pipe"],
121
- maxBuffer: 10 * 1024 * 1024,
122
- });
123
-
124
- if (result.status !== 0 || !result.stdout) {
125
- return [];
126
- }
127
-
128
- const lines = result.stdout.trim().split("\n").filter(Boolean);
129
- const results: Array<{ path: string; isDirectory: boolean }> = [];
130
-
131
- for (const line of lines) {
132
- const normalizedPath = line.endsWith("/") ? line.slice(0, -1) : line;
133
- if (normalizedPath === ".git" || normalizedPath.startsWith(".git/") || normalizedPath.includes("/.git/")) {
134
- continue;
135
- }
136
-
137
- // fd outputs directories with trailing /
138
- const isDirectory = line.endsWith("/");
139
- results.push({
140
- path: line,
141
- isDirectory,
142
- });
143
- }
144
-
145
- return results;
146
- }
147
-
148
87
  export interface AutocompleteItem {
149
88
  value: string;
150
89
  label: string;
@@ -190,16 +129,13 @@ export interface AutocompleteProvider {
190
129
  export class CombinedAutocompleteProvider implements AutocompleteProvider {
191
130
  private commands: (SlashCommand | AutocompleteItem)[];
192
131
  private basePath: string;
193
- private fdPath: string | null;
194
132
 
195
133
  constructor(
196
134
  commands: (SlashCommand | AutocompleteItem)[] = [],
197
135
  basePath: string = process.cwd(),
198
- fdPath: string | null = null,
199
136
  ) {
200
137
  this.commands = commands;
201
138
  this.basePath = basePath;
202
- this.fdPath = fdPath;
203
139
  }
204
140
 
205
141
  getSuggestions(
@@ -614,59 +550,28 @@ export class CombinedAutocompleteProvider implements AutocompleteProvider {
614
550
  }
615
551
  }
616
552
 
617
- // Score an entry against the query (higher = better match)
618
- // isDirectory adds bonus to prioritize folders
619
- private scoreEntry(filePath: string, query: string, isDirectory: boolean): number {
620
- const fileName = basename(filePath);
621
- const lowerFileName = fileName.toLowerCase();
622
- const lowerQuery = query.toLowerCase();
623
-
624
- let score = 0;
625
-
626
- // Exact filename match (highest)
627
- if (lowerFileName === lowerQuery) score = 100;
628
- // Filename starts with query
629
- else if (lowerFileName.startsWith(lowerQuery)) score = 80;
630
- // Substring match in filename
631
- else if (lowerFileName.includes(lowerQuery)) score = 50;
632
- // Substring match in full path
633
- else if (filePath.toLowerCase().includes(lowerQuery)) score = 30;
634
-
635
- // Directories get a bonus to appear first
636
- if (isDirectory && score > 0) score += 10;
637
-
638
- return score;
639
- }
640
-
641
- // Fuzzy file search using fd (fast, respects .gitignore)
553
+ // Fuzzy file search using the native fd module (fast, respects .gitignore)
642
554
  private getFuzzyFileSuggestions(query: string, options: { isQuotedPrefix: boolean }): AutocompleteItem[] {
643
- if (!this.fdPath) {
644
- // fd not available, return empty results
645
- return [];
646
- }
647
-
648
555
  try {
649
556
  const scopedQuery = this.resolveScopedFuzzyQuery(query);
650
- const fdBaseDir = scopedQuery?.baseDir ?? this.basePath;
651
- const fdQuery = scopedQuery?.query ?? query;
652
- const entries = walkDirectoryWithFd(fdBaseDir, this.fdPath, fdQuery, 100);
653
-
654
- // Score entries
655
- const scoredEntries = entries
656
- .map((entry) => ({
657
- ...entry,
658
- score: fdQuery ? this.scoreEntry(entry.path, fdQuery, entry.isDirectory) : 1,
659
- }))
660
- .filter((entry) => entry.score > 0);
661
-
662
- // Sort by score (descending) and take top 20
663
- scoredEntries.sort((a, b) => b.score - a.score);
664
- const topEntries = scoredEntries.slice(0, 20);
557
+ const searchPath = scopedQuery?.baseDir ?? this.basePath;
558
+ const searchQuery = scopedQuery?.query ?? query;
559
+
560
+ const result = fuzzyFind({
561
+ query: searchQuery,
562
+ path: searchPath,
563
+ hidden: true,
564
+ gitignore: true,
565
+ maxResults: 100,
566
+ });
567
+
568
+ // Take top 20 matches (already sorted by score descending from native module)
569
+ const topMatches = result.matches.slice(0, 20);
665
570
 
666
571
  // Build suggestions
667
572
  const suggestions: AutocompleteItem[] = [];
668
- for (const { path: entryPath, isDirectory } of topEntries) {
669
- // fd already includes trailing / for directories
573
+ for (const { path: entryPath, isDirectory } of topMatches) {
574
+ // Native module includes trailing / for directories
670
575
  const pathWithoutSlash = isDirectory ? entryPath.slice(0, -1) : entryPath;
671
576
  const displayPath = scopedQuery
672
577
  ? this.scopedPathForDisplay(scopedQuery.displayBase, pathWithoutSlash)
@@ -26,6 +26,8 @@ export class Image implements Component {
26
26
  private theme: ImageTheme;
27
27
  private options: ImageOptions;
28
28
  private imageId?: number;
29
+ private dimensionsResolved = false;
30
+ private onDimensionsResolved?: () => void;
29
31
 
30
32
  private cachedLines?: string[];
31
33
  private cachedWidth?: number;
@@ -41,8 +43,28 @@ export class Image implements Component {
41
43
  this.mimeType = mimeType;
42
44
  this.theme = theme;
43
45
  this.options = options;
44
- this.dimensions = dimensions || getImageDimensions(base64Data, mimeType) || { widthPx: 800, heightPx: 600 };
46
+ this.dimensions = dimensions || { widthPx: 800, heightPx: 600 };
47
+ this.dimensionsResolved = !!dimensions;
45
48
  this.imageId = options.imageId;
49
+
50
+ if (!dimensions) {
51
+ getImageDimensions(base64Data).then((dims) => {
52
+ if (dims) {
53
+ this.dimensions = dims;
54
+ this.dimensionsResolved = true;
55
+ this.invalidate();
56
+ this.onDimensionsResolved?.();
57
+ }
58
+ });
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Register a callback invoked when async dimension parsing completes.
64
+ * Useful for triggering a re-render after the Image updates its layout.
65
+ */
66
+ setOnDimensionsResolved(cb: () => void): void {
67
+ this.onDimensionsResolved = cb;
46
68
  }
47
69
 
48
70
  /** Get the Kitty image ID used by this image (if any). */
@@ -62,11 +62,7 @@ export {
62
62
  encodeKitty,
63
63
  getCapabilities,
64
64
  getCellDimensions,
65
- getGifDimensions,
66
65
  getImageDimensions,
67
- getJpegDimensions,
68
- getPngDimensions,
69
- getWebpDimensions,
70
66
  type ImageDimensions,
71
67
  type ImageProtocol,
72
68
  type ImageRenderOptions,
@@ -199,147 +199,21 @@ export function calculateImageRows(
199
199
  return Math.max(1, rows);
200
200
  }
201
201
 
202
- export function getPngDimensions(base64Data: string): ImageDimensions | null {
203
- try {
204
- const buffer = Buffer.from(base64Data, "base64");
205
-
206
- if (buffer.length < 24) {
207
- return null;
208
- }
209
-
210
- if (buffer[0] !== 0x89 || buffer[1] !== 0x50 || buffer[2] !== 0x4e || buffer[3] !== 0x47) {
211
- return null;
212
- }
213
-
214
- const width = buffer.readUInt32BE(16);
215
- const height = buffer.readUInt32BE(20);
216
-
217
- return { widthPx: width, heightPx: height };
218
- } catch {
219
- return null;
220
- }
221
- }
222
-
223
- export function getJpegDimensions(base64Data: string): ImageDimensions | null {
224
- try {
225
- const buffer = Buffer.from(base64Data, "base64");
226
-
227
- if (buffer.length < 2) {
228
- return null;
229
- }
230
-
231
- if (buffer[0] !== 0xff || buffer[1] !== 0xd8) {
232
- return null;
233
- }
234
-
235
- let offset = 2;
236
- while (offset < buffer.length - 9) {
237
- if (buffer[offset] !== 0xff) {
238
- offset++;
239
- continue;
240
- }
241
-
242
- const marker = buffer[offset + 1];
243
-
244
- if (marker >= 0xc0 && marker <= 0xc2) {
245
- const height = buffer.readUInt16BE(offset + 5);
246
- const width = buffer.readUInt16BE(offset + 7);
247
- return { widthPx: width, heightPx: height };
248
- }
249
-
250
- if (offset + 3 >= buffer.length) {
251
- return null;
252
- }
253
- const length = buffer.readUInt16BE(offset + 2);
254
- if (length < 2) {
255
- return null;
256
- }
257
- offset += 2 + length;
258
- }
259
-
260
- return null;
261
- } catch {
262
- return null;
263
- }
264
- }
265
-
266
- export function getGifDimensions(base64Data: string): ImageDimensions | null {
267
- try {
268
- const buffer = Buffer.from(base64Data, "base64");
269
-
270
- if (buffer.length < 10) {
271
- return null;
272
- }
273
-
274
- const sig = buffer.slice(0, 6).toString("ascii");
275
- if (sig !== "GIF87a" && sig !== "GIF89a") {
276
- return null;
277
- }
278
-
279
- const width = buffer.readUInt16LE(6);
280
- const height = buffer.readUInt16LE(8);
281
-
282
- return { widthPx: width, heightPx: height };
283
- } catch {
284
- return null;
285
- }
286
- }
287
-
288
- export function getWebpDimensions(base64Data: string): ImageDimensions | null {
202
+ /**
203
+ * Parse image dimensions using the native Rust image module.
204
+ * Auto-detects format from byte content (PNG, JPEG, GIF, WebP).
205
+ */
206
+ export async function getImageDimensions(base64Data: string): Promise<ImageDimensions | null> {
207
+ const { parseImage: parse } = await import("@gsd/native/image");
289
208
  try {
290
- const buffer = Buffer.from(base64Data, "base64");
291
-
292
- if (buffer.length < 30) {
293
- return null;
294
- }
295
-
296
- const riff = buffer.slice(0, 4).toString("ascii");
297
- const webp = buffer.slice(8, 12).toString("ascii");
298
- if (riff !== "RIFF" || webp !== "WEBP") {
299
- return null;
300
- }
301
-
302
- const chunk = buffer.slice(12, 16).toString("ascii");
303
- if (chunk === "VP8 ") {
304
- if (buffer.length < 30) return null;
305
- const width = buffer.readUInt16LE(26) & 0x3fff;
306
- const height = buffer.readUInt16LE(28) & 0x3fff;
307
- return { widthPx: width, heightPx: height };
308
- } else if (chunk === "VP8L") {
309
- if (buffer.length < 25) return null;
310
- const bits = buffer.readUInt32LE(21);
311
- const width = (bits & 0x3fff) + 1;
312
- const height = ((bits >> 14) & 0x3fff) + 1;
313
- return { widthPx: width, heightPx: height };
314
- } else if (chunk === "VP8X") {
315
- if (buffer.length < 30) return null;
316
- const width = (buffer[24] | (buffer[25] << 8) | (buffer[26] << 16)) + 1;
317
- const height = (buffer[27] | (buffer[28] << 8) | (buffer[29] << 16)) + 1;
318
- return { widthPx: width, heightPx: height };
319
- }
320
-
321
- return null;
209
+ const bytes = new Uint8Array(Buffer.from(base64Data, "base64"));
210
+ const handle = await parse(bytes);
211
+ return { widthPx: handle.width, heightPx: handle.height };
322
212
  } catch {
323
213
  return null;
324
214
  }
325
215
  }
326
216
 
327
- export function getImageDimensions(base64Data: string, mimeType: string): ImageDimensions | null {
328
- if (mimeType === "image/png") {
329
- return getPngDimensions(base64Data);
330
- }
331
- if (mimeType === "image/jpeg") {
332
- return getJpegDimensions(base64Data);
333
- }
334
- if (mimeType === "image/gif") {
335
- return getGifDimensions(base64Data);
336
- }
337
- if (mimeType === "image/webp") {
338
- return getWebpDimensions(base64Data);
339
- }
340
- return null;
341
- }
342
-
343
217
  export function renderImage(
344
218
  base64Data: string,
345
219
  imageDimensions: ImageDimensions,