mepcli 2.0.0-beta.2 → 2.0.0-beta.3

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 (356) hide show
  1. package/dist/ansi.d.ts +36 -0
  2. package/dist/ansi.js +1 -0
  3. package/dist/base.d.ts +60 -0
  4. package/dist/base.js +1 -0
  5. package/dist/{src/core.js → core.d.ts} +175 -345
  6. package/dist/core.js +1 -0
  7. package/dist/data/countries.d.ts +2 -0
  8. package/dist/data/countries.js +1 -0
  9. package/dist/data/licenses.d.ts +2 -0
  10. package/dist/data/licenses.js +1 -0
  11. package/dist/highlight.d.ts +7 -0
  12. package/dist/highlight.js +1 -0
  13. package/dist/index.d.ts +48 -0
  14. package/dist/index.js +1 -0
  15. package/dist/input.d.ts +14 -0
  16. package/dist/input.js +1 -0
  17. package/dist/pipeline.d.ts +90 -0
  18. package/dist/pipeline.js +1 -0
  19. package/dist/prompts/autocomplete.d.ts +22 -0
  20. package/dist/prompts/autocomplete.js +1 -0
  21. package/dist/prompts/box.d.ts +21 -0
  22. package/dist/prompts/box.js +4 -0
  23. package/dist/prompts/breadcrumb-search.d.ts +14 -0
  24. package/dist/prompts/breadcrumb-search.js +2 -0
  25. package/dist/prompts/breadcrumb.d.ts +32 -0
  26. package/dist/prompts/breadcrumb.js +3 -0
  27. package/dist/prompts/byte.d.ts +13 -0
  28. package/dist/prompts/byte.js +5 -0
  29. package/dist/prompts/calculator.d.ts +17 -0
  30. package/dist/prompts/calculator.js +3 -0
  31. package/dist/prompts/calendar.d.ts +33 -0
  32. package/dist/prompts/calendar.js +3 -0
  33. package/dist/prompts/checkbox.d.ts +13 -0
  34. package/dist/prompts/checkbox.js +2 -0
  35. package/dist/prompts/code.d.ts +19 -0
  36. package/dist/prompts/code.js +4 -0
  37. package/dist/prompts/color.d.ts +14 -0
  38. package/dist/prompts/color.js +10 -0
  39. package/dist/prompts/confirm.d.ts +8 -0
  40. package/dist/prompts/confirm.js +1 -0
  41. package/dist/prompts/connection-string.d.ts +18 -0
  42. package/dist/prompts/connection-string.js +1 -0
  43. package/dist/prompts/cron.d.ts +13 -0
  44. package/dist/prompts/cron.js +4 -0
  45. package/dist/prompts/curl-utils.d.ts +25 -0
  46. package/dist/prompts/curl-utils.js +1 -0
  47. package/dist/prompts/curl.d.ts +41 -0
  48. package/dist/prompts/curl.js +12 -0
  49. package/dist/prompts/data-inspector.d.ts +22 -0
  50. package/dist/prompts/data-inspector.js +5 -0
  51. package/dist/prompts/date.d.ts +12 -0
  52. package/dist/prompts/date.js +2 -0
  53. package/dist/prompts/dependency.d.ts +16 -0
  54. package/dist/prompts/dependency.js +3 -0
  55. package/dist/prompts/dial.d.ts +10 -0
  56. package/dist/prompts/dial.js +3 -0
  57. package/dist/prompts/diff.d.ts +10 -0
  58. package/dist/prompts/diff.js +10 -0
  59. package/dist/prompts/draw.d.ts +20 -0
  60. package/dist/prompts/draw.js +6 -0
  61. package/dist/prompts/editor.d.ts +14 -0
  62. package/dist/prompts/editor.js +2 -0
  63. package/dist/prompts/emoji.d.ts +18 -0
  64. package/dist/prompts/emoji.js +5 -0
  65. package/dist/prompts/exec.d.ts +17 -0
  66. package/dist/prompts/exec.js +1 -0
  67. package/dist/prompts/file.d.ts +21 -0
  68. package/dist/prompts/file.js +2 -0
  69. package/dist/prompts/form.d.ts +18 -0
  70. package/dist/prompts/form.js +1 -0
  71. package/dist/prompts/fuzzy-multi-column.d.ts +12 -0
  72. package/dist/prompts/fuzzy-multi-column.js +2 -0
  73. package/dist/prompts/fuzzy.d.ts +12 -0
  74. package/dist/prompts/fuzzy.js +2 -0
  75. package/dist/prompts/gauge.d.ts +21 -0
  76. package/dist/prompts/gauge.js +4 -0
  77. package/dist/prompts/grid.d.ts +14 -0
  78. package/dist/prompts/grid.js +2 -0
  79. package/dist/prompts/heatmap.d.ts +13 -0
  80. package/dist/prompts/heatmap.js +2 -0
  81. package/dist/prompts/ip.d.ts +11 -0
  82. package/dist/prompts/ip.js +3 -0
  83. package/dist/prompts/kanban.d.ts +17 -0
  84. package/dist/prompts/kanban.js +4 -0
  85. package/dist/prompts/keypress.d.ts +7 -0
  86. package/dist/prompts/keypress.js +1 -0
  87. package/dist/prompts/license.d.ts +9 -0
  88. package/dist/prompts/license.js +13 -0
  89. package/dist/prompts/list.d.ts +9 -0
  90. package/dist/prompts/list.js +1 -0
  91. package/dist/prompts/map.d.ts +17 -0
  92. package/dist/prompts/map.js +5 -0
  93. package/dist/prompts/match.d.ts +19 -0
  94. package/dist/prompts/match.js +7 -0
  95. package/dist/prompts/miller.d.ts +15 -0
  96. package/dist/prompts/miller.js +2 -0
  97. package/dist/prompts/multi-column-select.d.ts +10 -0
  98. package/dist/prompts/multi-column-select.js +2 -0
  99. package/dist/prompts/multi-range.d.ts +9 -0
  100. package/dist/prompts/multi-range.js +3 -0
  101. package/dist/prompts/multi-select.d.ts +15 -0
  102. package/dist/prompts/multi-select.js +4 -0
  103. package/dist/prompts/number.d.ts +11 -0
  104. package/dist/prompts/number.js +2 -0
  105. package/dist/prompts/otp.d.ts +10 -0
  106. package/dist/prompts/otp.js +2 -0
  107. package/dist/prompts/pattern.d.ts +22 -0
  108. package/dist/prompts/pattern.js +4 -0
  109. package/dist/prompts/phone.d.ts +41 -0
  110. package/dist/prompts/phone.js +3 -0
  111. package/dist/prompts/quiz-select.d.ts +10 -0
  112. package/dist/prompts/quiz-select.js +7 -0
  113. package/dist/prompts/quiz-text.d.ts +11 -0
  114. package/dist/prompts/quiz-text.js +8 -0
  115. package/dist/prompts/range.d.ts +9 -0
  116. package/dist/prompts/range.js +1 -0
  117. package/dist/prompts/rating.d.ts +8 -0
  118. package/dist/prompts/rating.js +1 -0
  119. package/dist/prompts/regex.d.ts +13 -0
  120. package/dist/prompts/regex.js +5 -0
  121. package/dist/prompts/region.d.ts +11 -0
  122. package/dist/prompts/region.js +5 -0
  123. package/dist/prompts/schedule.d.ts +20 -0
  124. package/dist/prompts/schedule.js +5 -0
  125. package/dist/prompts/scroll.d.ts +13 -0
  126. package/dist/prompts/scroll.js +1 -0
  127. package/dist/prompts/seat.d.ts +17 -0
  128. package/dist/prompts/seat.js +5 -0
  129. package/dist/prompts/select-range.d.ts +8 -0
  130. package/dist/prompts/select-range.js +3 -0
  131. package/dist/prompts/select.d.ts +15 -0
  132. package/dist/prompts/select.js +2 -0
  133. package/dist/prompts/semver.d.ts +6 -0
  134. package/dist/prompts/semver.js +1 -0
  135. package/dist/prompts/shortcut.d.ts +9 -0
  136. package/dist/prompts/shortcut.js +1 -0
  137. package/dist/prompts/slider.d.ts +8 -0
  138. package/dist/prompts/slider.js +1 -0
  139. package/dist/prompts/slot.d.ts +16 -0
  140. package/dist/prompts/slot.js +8 -0
  141. package/dist/prompts/snippet.d.ts +19 -0
  142. package/dist/prompts/snippet.js +4 -0
  143. package/dist/prompts/sort-grid.d.ts +16 -0
  144. package/dist/prompts/sort-grid.js +2 -0
  145. package/dist/prompts/sort.d.ts +14 -0
  146. package/dist/prompts/sort.js +2 -0
  147. package/dist/prompts/spam.d.ts +17 -0
  148. package/dist/prompts/spam.js +2 -0
  149. package/dist/prompts/spreadsheet.d.ts +21 -0
  150. package/dist/prompts/spreadsheet.js +7 -0
  151. package/dist/prompts/table.d.ts +14 -0
  152. package/dist/prompts/table.js +3 -0
  153. package/dist/prompts/text.d.ts +17 -0
  154. package/dist/prompts/text.js +2 -0
  155. package/dist/prompts/time.d.ts +12 -0
  156. package/dist/prompts/time.js +2 -0
  157. package/dist/prompts/toggle.d.ts +8 -0
  158. package/dist/prompts/toggle.js +1 -0
  159. package/dist/prompts/transfer.d.ts +18 -0
  160. package/dist/prompts/transfer.js +5 -0
  161. package/dist/prompts/tree-select.d.ts +31 -0
  162. package/dist/prompts/tree-select.js +3 -0
  163. package/dist/prompts/tree.d.ts +20 -0
  164. package/dist/prompts/tree.js +3 -0
  165. package/dist/prompts/wait.d.ts +18 -0
  166. package/dist/prompts/wait.js +1 -0
  167. package/dist/spinner.d.ts +33 -0
  168. package/dist/spinner.js +3 -0
  169. package/dist/symbols.d.ts +33 -0
  170. package/dist/symbols.js +1 -0
  171. package/dist/tasks.d.ts +57 -0
  172. package/dist/tasks.js +1 -0
  173. package/dist/theme.d.ts +2 -0
  174. package/dist/theme.js +1 -0
  175. package/dist/types.d.ts +503 -0
  176. package/dist/types.js +1 -0
  177. package/dist/utils.d.ts +81 -0
  178. package/dist/utils.js +1 -0
  179. package/package.json +8 -9
  180. package/dist/src/ansi.js +0 -50
  181. package/dist/src/ansi.js.map +0 -1
  182. package/dist/src/base.js +0 -258
  183. package/dist/src/base.js.map +0 -1
  184. package/dist/src/core.js.map +0 -1
  185. package/dist/src/data/countries.js +0 -569
  186. package/dist/src/data/countries.js.map +0 -1
  187. package/dist/src/data/licenses.js +0 -480
  188. package/dist/src/data/licenses.js.map +0 -1
  189. package/dist/src/highlight.js +0 -185
  190. package/dist/src/highlight.js.map +0 -1
  191. package/dist/src/index.js +0 -66
  192. package/dist/src/index.js.map +0 -1
  193. package/dist/src/input.js +0 -158
  194. package/dist/src/input.js.map +0 -1
  195. package/dist/src/pipeline.js +0 -273
  196. package/dist/src/pipeline.js.map +0 -1
  197. package/dist/src/prompts/autocomplete.js +0 -171
  198. package/dist/src/prompts/autocomplete.js.map +0 -1
  199. package/dist/src/prompts/box.js +0 -225
  200. package/dist/src/prompts/box.js.map +0 -1
  201. package/dist/src/prompts/breadcrumb-search.js +0 -260
  202. package/dist/src/prompts/breadcrumb-search.js.map +0 -1
  203. package/dist/src/prompts/breadcrumb.js +0 -307
  204. package/dist/src/prompts/breadcrumb.js.map +0 -1
  205. package/dist/src/prompts/byte.js +0 -176
  206. package/dist/src/prompts/byte.js.map +0 -1
  207. package/dist/src/prompts/calculator.js +0 -243
  208. package/dist/src/prompts/calculator.js.map +0 -1
  209. package/dist/src/prompts/calendar.js +0 -430
  210. package/dist/src/prompts/calendar.js.map +0 -1
  211. package/dist/src/prompts/checkbox.js +0 -159
  212. package/dist/src/prompts/checkbox.js.map +0 -1
  213. package/dist/src/prompts/code.js +0 -271
  214. package/dist/src/prompts/code.js.map +0 -1
  215. package/dist/src/prompts/color.js +0 -165
  216. package/dist/src/prompts/color.js.map +0 -1
  217. package/dist/src/prompts/confirm.js +0 -55
  218. package/dist/src/prompts/confirm.js.map +0 -1
  219. package/dist/src/prompts/connection-string.js +0 -120
  220. package/dist/src/prompts/connection-string.js.map +0 -1
  221. package/dist/src/prompts/cron.js +0 -207
  222. package/dist/src/prompts/cron.js.map +0 -1
  223. package/dist/src/prompts/curl-utils.js +0 -71
  224. package/dist/src/prompts/curl-utils.js.map +0 -1
  225. package/dist/src/prompts/curl.js +0 -431
  226. package/dist/src/prompts/curl.js.map +0 -1
  227. package/dist/src/prompts/data-inspector.js +0 -261
  228. package/dist/src/prompts/data-inspector.js.map +0 -1
  229. package/dist/src/prompts/date.js +0 -185
  230. package/dist/src/prompts/date.js.map +0 -1
  231. package/dist/src/prompts/dependency.js +0 -283
  232. package/dist/src/prompts/dependency.js.map +0 -1
  233. package/dist/src/prompts/dial.js +0 -124
  234. package/dist/src/prompts/dial.js.map +0 -1
  235. package/dist/src/prompts/diff.js +0 -118
  236. package/dist/src/prompts/diff.js.map +0 -1
  237. package/dist/src/prompts/draw.js +0 -191
  238. package/dist/src/prompts/draw.js.map +0 -1
  239. package/dist/src/prompts/editor.js +0 -234
  240. package/dist/src/prompts/editor.js.map +0 -1
  241. package/dist/src/prompts/emoji.js +0 -226
  242. package/dist/src/prompts/emoji.js.map +0 -1
  243. package/dist/src/prompts/exec.js +0 -151
  244. package/dist/src/prompts/exec.js.map +0 -1
  245. package/dist/src/prompts/file.js +0 -217
  246. package/dist/src/prompts/file.js.map +0 -1
  247. package/dist/src/prompts/form.js +0 -241
  248. package/dist/src/prompts/form.js.map +0 -1
  249. package/dist/src/prompts/fuzzy-multi-column.js +0 -161
  250. package/dist/src/prompts/fuzzy-multi-column.js.map +0 -1
  251. package/dist/src/prompts/fuzzy.js +0 -147
  252. package/dist/src/prompts/fuzzy.js.map +0 -1
  253. package/dist/src/prompts/gauge.js +0 -137
  254. package/dist/src/prompts/gauge.js.map +0 -1
  255. package/dist/src/prompts/grid.js +0 -191
  256. package/dist/src/prompts/grid.js.map +0 -1
  257. package/dist/src/prompts/heatmap.js +0 -147
  258. package/dist/src/prompts/heatmap.js.map +0 -1
  259. package/dist/src/prompts/ip.js +0 -138
  260. package/dist/src/prompts/ip.js.map +0 -1
  261. package/dist/src/prompts/kanban.js +0 -233
  262. package/dist/src/prompts/kanban.js.map +0 -1
  263. package/dist/src/prompts/keypress.js +0 -54
  264. package/dist/src/prompts/keypress.js.map +0 -1
  265. package/dist/src/prompts/license.js +0 -144
  266. package/dist/src/prompts/license.js.map +0 -1
  267. package/dist/src/prompts/list.js +0 -124
  268. package/dist/src/prompts/list.js.map +0 -1
  269. package/dist/src/prompts/map.js +0 -262
  270. package/dist/src/prompts/map.js.map +0 -1
  271. package/dist/src/prompts/match.js +0 -271
  272. package/dist/src/prompts/match.js.map +0 -1
  273. package/dist/src/prompts/miller.js +0 -228
  274. package/dist/src/prompts/miller.js.map +0 -1
  275. package/dist/src/prompts/multi-column-select.js +0 -176
  276. package/dist/src/prompts/multi-column-select.js.map +0 -1
  277. package/dist/src/prompts/multi-range.js +0 -189
  278. package/dist/src/prompts/multi-range.js.map +0 -1
  279. package/dist/src/prompts/multi-select.js +0 -183
  280. package/dist/src/prompts/multi-select.js.map +0 -1
  281. package/dist/src/prompts/number.js +0 -166
  282. package/dist/src/prompts/number.js.map +0 -1
  283. package/dist/src/prompts/otp.js +0 -107
  284. package/dist/src/prompts/otp.js.map +0 -1
  285. package/dist/src/prompts/pattern.js +0 -252
  286. package/dist/src/prompts/pattern.js.map +0 -1
  287. package/dist/src/prompts/phone.js +0 -398
  288. package/dist/src/prompts/phone.js.map +0 -1
  289. package/dist/src/prompts/quiz-select.js +0 -114
  290. package/dist/src/prompts/quiz-select.js.map +0 -1
  291. package/dist/src/prompts/quiz-text.js +0 -98
  292. package/dist/src/prompts/quiz-text.js.map +0 -1
  293. package/dist/src/prompts/range.js +0 -164
  294. package/dist/src/prompts/range.js.map +0 -1
  295. package/dist/src/prompts/rating.js +0 -83
  296. package/dist/src/prompts/rating.js.map +0 -1
  297. package/dist/src/prompts/regex.js +0 -145
  298. package/dist/src/prompts/regex.js.map +0 -1
  299. package/dist/src/prompts/region.js +0 -170
  300. package/dist/src/prompts/region.js.map +0 -1
  301. package/dist/src/prompts/schedule.js +0 -270
  302. package/dist/src/prompts/schedule.js.map +0 -1
  303. package/dist/src/prompts/scroll.js +0 -155
  304. package/dist/src/prompts/scroll.js.map +0 -1
  305. package/dist/src/prompts/seat.js +0 -164
  306. package/dist/src/prompts/seat.js.map +0 -1
  307. package/dist/src/prompts/select-range.js +0 -148
  308. package/dist/src/prompts/select-range.js.map +0 -1
  309. package/dist/src/prompts/select.js +0 -163
  310. package/dist/src/prompts/select.js.map +0 -1
  311. package/dist/src/prompts/semver.js +0 -43
  312. package/dist/src/prompts/semver.js.map +0 -1
  313. package/dist/src/prompts/shortcut.js +0 -133
  314. package/dist/src/prompts/shortcut.js.map +0 -1
  315. package/dist/src/prompts/slider.js +0 -69
  316. package/dist/src/prompts/slider.js.map +0 -1
  317. package/dist/src/prompts/slot.js +0 -117
  318. package/dist/src/prompts/slot.js.map +0 -1
  319. package/dist/src/prompts/snippet.js +0 -228
  320. package/dist/src/prompts/snippet.js.map +0 -1
  321. package/dist/src/prompts/sort-grid.js +0 -151
  322. package/dist/src/prompts/sort-grid.js.map +0 -1
  323. package/dist/src/prompts/sort.js +0 -166
  324. package/dist/src/prompts/sort.js.map +0 -1
  325. package/dist/src/prompts/spam.js +0 -80
  326. package/dist/src/prompts/spam.js.map +0 -1
  327. package/dist/src/prompts/spreadsheet.js +0 -240
  328. package/dist/src/prompts/spreadsheet.js.map +0 -1
  329. package/dist/src/prompts/table.js +0 -120
  330. package/dist/src/prompts/table.js.map +0 -1
  331. package/dist/src/prompts/text.js +0 -317
  332. package/dist/src/prompts/text.js.map +0 -1
  333. package/dist/src/prompts/time.js +0 -211
  334. package/dist/src/prompts/time.js.map +0 -1
  335. package/dist/src/prompts/toggle.js +0 -53
  336. package/dist/src/prompts/toggle.js.map +0 -1
  337. package/dist/src/prompts/transfer.js +0 -207
  338. package/dist/src/prompts/transfer.js.map +0 -1
  339. package/dist/src/prompts/tree-select.js +0 -270
  340. package/dist/src/prompts/tree-select.js.map +0 -1
  341. package/dist/src/prompts/tree.js +0 -233
  342. package/dist/src/prompts/tree.js.map +0 -1
  343. package/dist/src/prompts/wait.js +0 -79
  344. package/dist/src/prompts/wait.js.map +0 -1
  345. package/dist/src/spinner.js +0 -105
  346. package/dist/src/spinner.js.map +0 -1
  347. package/dist/src/symbols.js +0 -66
  348. package/dist/src/symbols.js.map +0 -1
  349. package/dist/src/tasks.js +0 -231
  350. package/dist/src/tasks.js.map +0 -1
  351. package/dist/src/theme.js +0 -29
  352. package/dist/src/theme.js.map +0 -1
  353. package/dist/src/types.js +0 -8
  354. package/dist/src/types.js.map +0 -1
  355. package/dist/src/utils.js +0 -480
  356. package/dist/src/utils.js.map +0 -1
@@ -1,233 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "TreePrompt", {
6
- enumerable: true,
7
- get: function() {
8
- return TreePrompt;
9
- }
10
- });
11
- const _ansi = require("../ansi");
12
- const _base = require("../base");
13
- const _theme = require("../theme");
14
- const _symbols = require("../symbols");
15
- function _define_property(obj, key, value) {
16
- if (key in obj) {
17
- Object.defineProperty(obj, key, {
18
- value: value,
19
- enumerable: true,
20
- configurable: true,
21
- writable: true
22
- });
23
- } else {
24
- obj[key] = value;
25
- }
26
- return obj;
27
- }
28
- let TreePrompt = class TreePrompt extends _base.Prompt {
29
- expandPathTo(value) {
30
- const find = (nodes)=>{
31
- for (const node of nodes){
32
- if (node.value === value) return true;
33
- if (node.children) {
34
- if (find(node.children)) {
35
- this.expandedNodes.add(node);
36
- return true;
37
- }
38
- }
39
- }
40
- return false;
41
- };
42
- find(this.options.data);
43
- }
44
- initializeExpanded(nodes) {
45
- for (const node of nodes){
46
- if (node.expanded) {
47
- this.expandedNodes.add(node);
48
- }
49
- if (node.children) {
50
- this.initializeExpanded(node.children);
51
- }
52
- }
53
- }
54
- recalculateFlatList() {
55
- this.flatList = [];
56
- this.traverse(this.options.data, 0, null);
57
- if (this.cursor >= this.flatList.length) {
58
- this.cursor = Math.max(0, this.flatList.length - 1);
59
- }
60
- }
61
- traverse(nodes, depth, parent) {
62
- for (const node of nodes){
63
- this.flatList.push({
64
- node,
65
- depth,
66
- parent
67
- });
68
- if (node.children && node.children.length > 0 && this.expandedNodes.has(node)) {
69
- this.traverse(node.children, depth + 1, node);
70
- }
71
- }
72
- }
73
- toggleRecursive(node, expand) {
74
- if (expand) this.expandedNodes.add(node);
75
- else this.expandedNodes.delete(node);
76
- if (node.children) {
77
- node.children.forEach((child)=>this.toggleRecursive(child, expand));
78
- }
79
- }
80
- render(_firstRender) {
81
- let output = `${_theme.theme.success}?${_ansi.ANSI.RESET} ${_ansi.ANSI.BOLD}${_theme.theme.title}${this.options.message}${_ansi.ANSI.RESET}\n`;
82
- if (this.flatList.length === 0) {
83
- output += ` ${_theme.theme.muted}No data${_ansi.ANSI.RESET}`;
84
- this.renderFrame(output);
85
- return;
86
- }
87
- if (this.cursor < this.scrollTop) {
88
- this.scrollTop = this.cursor;
89
- } else if (this.cursor >= this.scrollTop + this.pageSize) {
90
- this.scrollTop = this.cursor - this.pageSize + 1;
91
- }
92
- const visible = this.flatList.slice(this.scrollTop, this.scrollTop + this.pageSize);
93
- visible.forEach((item, index)=>{
94
- const actualIndex = this.scrollTop + index;
95
- const isSelected = actualIndex === this.cursor;
96
- const indentSize = this.options.indent || 2;
97
- const indentation = ' '.repeat(item.depth * indentSize);
98
- let linePrefix = '';
99
- if (isSelected) {
100
- linePrefix = `${_theme.theme.main}${_symbols.symbols.pointer} `;
101
- } else {
102
- linePrefix = ' ';
103
- }
104
- let icon = ' ';
105
- const hasChildren = item.node.children && item.node.children.length > 0;
106
- if (hasChildren) {
107
- if (this.expandedNodes.has(item.node)) {
108
- icon = `${this.ICON_OPEN} `;
109
- } else {
110
- icon = `${this.ICON_CLOSED} `;
111
- }
112
- }
113
- let title = item.node.title;
114
- if (item.node.disabled) {
115
- title = `${_theme.theme.muted}${title} (disabled)${_ansi.ANSI.RESET}`;
116
- }
117
- let line = `${indentation}${icon}${title}`;
118
- if (isSelected) {
119
- line = `${_theme.theme.main}${line}${_ansi.ANSI.RESET}`;
120
- }
121
- output += linePrefix + line;
122
- if (index < visible.length - 1) output += '\n';
123
- });
124
- output += `\n${_theme.theme.muted}(Arrows: Nav, e: Expand All, c: Collapse All)${_ansi.ANSI.RESET}`;
125
- this.renderFrame(output);
126
- }
127
- handleInput(char, _key) {
128
- if (this.flatList.length === 0) return;
129
- if (this.isUp(char)) {
130
- this.cursor = (this.cursor - 1 + this.flatList.length) % this.flatList.length;
131
- this.render(false);
132
- return;
133
- }
134
- if (this.isDown(char)) {
135
- this.cursor = (this.cursor + 1) % this.flatList.length;
136
- this.render(false);
137
- return;
138
- }
139
- const currentItem = this.flatList[this.cursor];
140
- const node = currentItem.node;
141
- const hasChildren = node.children && node.children.length > 0;
142
- // Recursive Expand (e)
143
- if (char === 'e' && hasChildren) {
144
- this.toggleRecursive(node, true);
145
- this.recalculateFlatList();
146
- this.render(false);
147
- return;
148
- }
149
- // Recursive Collapse (c)
150
- if (char === 'c' && hasChildren) {
151
- this.toggleRecursive(node, false);
152
- this.recalculateFlatList();
153
- this.render(false);
154
- return;
155
- }
156
- if (this.isRight(char)) {
157
- if (hasChildren) {
158
- if (!this.expandedNodes.has(node)) {
159
- this.expandedNodes.add(node);
160
- this.recalculateFlatList();
161
- } else {
162
- if (this.cursor + 1 < this.flatList.length) {
163
- this.cursor++;
164
- }
165
- }
166
- this.render(false);
167
- return;
168
- }
169
- }
170
- if (this.isLeft(char)) {
171
- if (hasChildren && this.expandedNodes.has(node)) {
172
- this.expandedNodes.delete(node);
173
- this.recalculateFlatList();
174
- this.render(false);
175
- return;
176
- } else {
177
- if (currentItem.parent) {
178
- const parentIndex = this.flatList.findIndex((x)=>x.node === currentItem.parent);
179
- if (parentIndex !== -1) {
180
- this.cursor = parentIndex;
181
- this.render(false);
182
- return;
183
- }
184
- }
185
- }
186
- }
187
- if (char === ' ') {
188
- if (hasChildren) {
189
- if (this.expandedNodes.has(node)) {
190
- this.expandedNodes.delete(node);
191
- } else {
192
- this.expandedNodes.add(node);
193
- }
194
- this.recalculateFlatList();
195
- this.render(false);
196
- }
197
- return;
198
- }
199
- if (char === '\r' || char === '\n') {
200
- if (!node.disabled) {
201
- this.submit(node.value);
202
- }
203
- }
204
- }
205
- handleMouse(event) {
206
- if (event.action === 'scroll') {
207
- if (event.scroll === 'up') {
208
- this.cursor = (this.cursor - 1 + this.flatList.length) % this.flatList.length;
209
- this.render(false);
210
- } else if (event.scroll === 'down') {
211
- this.cursor = (this.cursor + 1) % this.flatList.length;
212
- this.render(false);
213
- }
214
- }
215
- }
216
- constructor(options){
217
- super(options), _define_property(this, "cursor", 0), _define_property(this, "expandedNodes", new Set()), _define_property(this, "flatList", []), _define_property(this, "scrollTop", 0), _define_property(this, "pageSize", 15), // Icons
218
- _define_property(this, "ICON_CLOSED", _symbols.symbols.pointer === '>' ? '+' : '▸'), _define_property(this, "ICON_OPEN", _symbols.symbols.pointer === '>' ? '-' : '▾');
219
- this.initializeExpanded(this.options.data);
220
- if (this.options.initial !== undefined) {
221
- this.expandPathTo(this.options.initial);
222
- }
223
- this.recalculateFlatList();
224
- if (this.options.initial !== undefined) {
225
- const index = this.flatList.findIndex((item)=>item.node.value === this.options.initial);
226
- if (index !== -1) {
227
- this.cursor = index;
228
- }
229
- }
230
- }
231
- };
232
-
233
- //# sourceMappingURL=tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/prompts/tree.ts"],"sourcesContent":["import { ANSI } from '../ansi';\nimport { Prompt } from '../base';\nimport { theme } from '../theme';\nimport { symbols } from '../symbols';\nimport { TreeOptions, TreeNode, MouseEvent } from '../types';\n\ninterface FlatNode<V> {\n node: TreeNode<V>;\n depth: number;\n parent: TreeNode<V> | null;\n}\n\nexport class TreePrompt<V> extends Prompt<V, TreeOptions<V>> {\n private cursor: number = 0;\n private expandedNodes: Set<TreeNode<V>> = new Set();\n private flatList: FlatNode<V>[] = [];\n private scrollTop: number = 0;\n private readonly pageSize: number = 15;\n\n // Icons\n private readonly ICON_CLOSED = symbols.pointer === '>' ? '+' : '▸';\n private readonly ICON_OPEN = symbols.pointer === '>' ? '-' : '▾';\n\n constructor(options: TreeOptions<V>) {\n super(options);\n this.initializeExpanded(this.options.data);\n if (this.options.initial !== undefined) {\n this.expandPathTo(this.options.initial);\n }\n this.recalculateFlatList();\n\n if (this.options.initial !== undefined) {\n const index = this.flatList.findIndex(item => item.node.value === this.options.initial);\n if (index !== -1) {\n this.cursor = index;\n }\n }\n }\n\n private expandPathTo(value: V) {\n const find = (nodes: TreeNode<V>[]): boolean => {\n for (const node of nodes) {\n if (node.value === value) return true;\n if (node.children) {\n if (find(node.children)) {\n this.expandedNodes.add(node);\n return true;\n }\n }\n }\n return false;\n };\n find(this.options.data);\n }\n\n private initializeExpanded(nodes: TreeNode<V>[]) {\n for (const node of nodes) {\n if (node.expanded) {\n this.expandedNodes.add(node);\n }\n if (node.children) {\n this.initializeExpanded(node.children);\n }\n }\n }\n\n private recalculateFlatList() {\n this.flatList = [];\n this.traverse(this.options.data, 0, null);\n if (this.cursor >= this.flatList.length) {\n this.cursor = Math.max(0, this.flatList.length - 1);\n }\n }\n\n private traverse(nodes: TreeNode<V>[], depth: number, parent: TreeNode<V> | null) {\n for (const node of nodes) {\n this.flatList.push({\n node,\n depth,\n parent\n });\n\n if (node.children && node.children.length > 0 && this.expandedNodes.has(node)) {\n this.traverse(node.children, depth + 1, node);\n }\n }\n }\n\n private toggleRecursive(node: TreeNode<V>, expand: boolean) {\n if (expand) this.expandedNodes.add(node);\n else this.expandedNodes.delete(node);\n\n if (node.children) {\n node.children.forEach(child => this.toggleRecursive(child, expand));\n }\n }\n\n protected render(_firstRender: boolean) {\n let output = `${theme.success}?${ANSI.RESET} ${ANSI.BOLD}${theme.title}${this.options.message}${ANSI.RESET}\\n`;\n\n if (this.flatList.length === 0) {\n output += ` ${theme.muted}No data${ANSI.RESET}`;\n this.renderFrame(output);\n return;\n }\n\n if (this.cursor < this.scrollTop) {\n this.scrollTop = this.cursor;\n } else if (this.cursor >= this.scrollTop + this.pageSize) {\n this.scrollTop = this.cursor - this.pageSize + 1;\n }\n\n const visible = this.flatList.slice(this.scrollTop, this.scrollTop + this.pageSize);\n\n visible.forEach((item, index) => {\n const actualIndex = this.scrollTop + index;\n const isSelected = actualIndex === this.cursor;\n\n const indentSize = this.options.indent || 2;\n const indentation = ' '.repeat(item.depth * indentSize);\n\n let linePrefix = '';\n if (isSelected) {\n linePrefix = `${theme.main}${symbols.pointer} `;\n } else {\n linePrefix = ' ';\n }\n\n let icon = ' ';\n const hasChildren = item.node.children && item.node.children.length > 0;\n\n if (hasChildren) {\n if (this.expandedNodes.has(item.node)) {\n icon = `${this.ICON_OPEN} `;\n } else {\n icon = `${this.ICON_CLOSED} `;\n }\n }\n\n let title = item.node.title;\n if (item.node.disabled) {\n title = `${theme.muted}${title} (disabled)${ANSI.RESET}`;\n }\n\n let line = `${indentation}${icon}${title}`;\n if (isSelected) {\n line = `${theme.main}${line}${ANSI.RESET}`;\n }\n\n output += linePrefix + line;\n if (index < visible.length - 1) output += '\\n';\n });\n\n output += `\\n${theme.muted}(Arrows: Nav, e: Expand All, c: Collapse All)${ANSI.RESET}`;\n\n this.renderFrame(output);\n }\n\n protected handleInput(char: string, _key: Buffer) {\n if (this.flatList.length === 0) return;\n\n if (this.isUp(char)) {\n this.cursor = (this.cursor - 1 + this.flatList.length) % this.flatList.length;\n this.render(false);\n return;\n }\n if (this.isDown(char)) {\n this.cursor = (this.cursor + 1) % this.flatList.length;\n this.render(false);\n return;\n }\n\n const currentItem = this.flatList[this.cursor];\n const node = currentItem.node;\n const hasChildren = node.children && node.children.length > 0;\n\n // Recursive Expand (e)\n if (char === 'e' && hasChildren) {\n this.toggleRecursive(node, true);\n this.recalculateFlatList();\n this.render(false);\n return;\n }\n\n // Recursive Collapse (c)\n if (char === 'c' && hasChildren) {\n this.toggleRecursive(node, false);\n this.recalculateFlatList();\n this.render(false);\n return;\n }\n\n if (this.isRight(char)) {\n if (hasChildren) {\n if (!this.expandedNodes.has(node)) {\n this.expandedNodes.add(node);\n this.recalculateFlatList();\n } else {\n if (this.cursor + 1 < this.flatList.length) {\n this.cursor++;\n }\n }\n this.render(false);\n return;\n }\n }\n\n if (this.isLeft(char)) {\n if (hasChildren && this.expandedNodes.has(node)) {\n this.expandedNodes.delete(node);\n this.recalculateFlatList();\n this.render(false);\n return;\n } else {\n if (currentItem.parent) {\n const parentIndex = this.flatList.findIndex(x => x.node === currentItem.parent);\n if (parentIndex !== -1) {\n this.cursor = parentIndex;\n this.render(false);\n return;\n }\n }\n }\n }\n\n if (char === ' ') {\n if (hasChildren) {\n if (this.expandedNodes.has(node)) {\n this.expandedNodes.delete(node);\n } else {\n this.expandedNodes.add(node);\n }\n this.recalculateFlatList();\n this.render(false);\n }\n return;\n }\n\n if (char === '\\r' || char === '\\n') {\n if (!node.disabled) {\n this.submit(node.value);\n }\n }\n }\n\n protected handleMouse(event: MouseEvent) {\n if (event.action === 'scroll') {\n if (event.scroll === 'up') {\n this.cursor = (this.cursor - 1 + this.flatList.length) % this.flatList.length;\n this.render(false);\n } else if (event.scroll === 'down') {\n this.cursor = (this.cursor + 1) % this.flatList.length;\n this.render(false);\n }\n }\n }\n}\n"],"names":["TreePrompt","Prompt","expandPathTo","value","find","nodes","node","children","expandedNodes","add","options","data","initializeExpanded","expanded","recalculateFlatList","flatList","traverse","cursor","length","Math","max","depth","parent","push","has","toggleRecursive","expand","delete","forEach","child","render","_firstRender","output","theme","success","ANSI","RESET","BOLD","title","message","muted","renderFrame","scrollTop","pageSize","visible","slice","item","index","actualIndex","isSelected","indentSize","indent","indentation","repeat","linePrefix","main","symbols","pointer","icon","hasChildren","ICON_OPEN","ICON_CLOSED","disabled","line","handleInput","char","_key","isUp","isDown","currentItem","isRight","isLeft","parentIndex","findIndex","x","submit","handleMouse","event","action","scroll","Set","initial","undefined"],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- // src/prompts/wait.ts
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "WaitPrompt", {
7
- enumerable: true,
8
- get: function() {
9
- return WaitPrompt;
10
- }
11
- });
12
- const _ansi = require("../ansi");
13
- const _base = require("../base");
14
- const _theme = require("../theme");
15
- function _define_property(obj, key, value) {
16
- if (key in obj) {
17
- Object.defineProperty(obj, key, {
18
- value: value,
19
- enumerable: true,
20
- configurable: true,
21
- writable: true
22
- });
23
- } else {
24
- obj[key] = value;
25
- }
26
- return obj;
27
- }
28
- let WaitPrompt = class WaitPrompt extends _base.Prompt {
29
- run() {
30
- // Start the countdown immediately upon running
31
- this.timer = setInterval(()=>{
32
- this.remaining--;
33
- if (this.remaining <= 0) {
34
- this.isDone = true;
35
- this.stopTimer();
36
- if (this.options.autoSubmit) {
37
- this.submit();
38
- } else {
39
- this.render(false);
40
- }
41
- } else {
42
- this.render(false);
43
- }
44
- }, 1000);
45
- return super.run();
46
- }
47
- stopTimer() {
48
- if (this.timer) {
49
- clearInterval(this.timer);
50
- this.timer = undefined;
51
- }
52
- }
53
- cleanup() {
54
- this.stopTimer();
55
- super.cleanup();
56
- }
57
- render(_firstRender) {
58
- let output = `${_theme.theme.title}${this.options.message}${_ansi.ANSI.RESET} `;
59
- if (this.isDone) {
60
- output += `${_theme.theme.success}Done! Press Enter to continue.${_ansi.ANSI.RESET}`;
61
- } else {
62
- // Fun countdown visualization
63
- output += `${_theme.theme.muted}Please wait... ${this.remaining}s${_ansi.ANSI.RESET}`;
64
- }
65
- this.renderFrame(output);
66
- }
67
- handleInput(char) {
68
- if (this.isDone && (char === '\r' || char === '\n')) {
69
- this.submit();
70
- }
71
- // Else: Ignore all input while waiting
72
- }
73
- constructor(options){
74
- super(options), _define_property(this, "remaining", void 0), _define_property(this, "timer", void 0), _define_property(this, "isDone", false);
75
- this.remaining = options.seconds;
76
- }
77
- };
78
-
79
- //# sourceMappingURL=wait.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/prompts/wait.ts"],"sourcesContent":["// src/prompts/wait.ts\nimport { ANSI } from '../ansi';\nimport { Prompt } from '../base';\nimport { theme } from '../theme';\nimport { BaseOptions } from '../types';\n\ninterface WaitOptions extends BaseOptions {\n seconds: number;\n autoSubmit?: boolean; // If true, resolves automatically when time is up\n}\n\nexport class WaitPrompt extends Prompt<void, WaitOptions> {\n private remaining: number;\n private timer?: NodeJS.Timeout;\n private isDone: boolean = false;\n\n constructor(options: WaitOptions) {\n super(options);\n this.remaining = options.seconds;\n }\n\n public run(): Promise<void> {\n // Start the countdown immediately upon running\n this.timer = setInterval(() => {\n this.remaining--;\n if (this.remaining <= 0) {\n this.isDone = true;\n this.stopTimer();\n\n if (this.options.autoSubmit) {\n this.submit();\n } else {\n this.render(false);\n }\n } else {\n this.render(false);\n }\n }, 1000);\n\n return super.run();\n }\n\n private stopTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = undefined;\n }\n }\n\n protected cleanup() {\n this.stopTimer();\n super.cleanup();\n }\n\n protected render(_firstRender: boolean) {\n let output = `${theme.title}${this.options.message}${ANSI.RESET} `;\n\n if (this.isDone) {\n output += `${theme.success}Done! Press Enter to continue.${ANSI.RESET}`;\n } else {\n // Fun countdown visualization\n output += `${theme.muted}Please wait... ${this.remaining}s${ANSI.RESET}`;\n }\n\n this.renderFrame(output);\n }\n\n protected handleInput(char: string) {\n if (this.isDone && (char === '\\r' || char === '\\n')) {\n this.submit();\n }\n // Else: Ignore all input while waiting\n }\n}"],"names":["WaitPrompt","Prompt","run","timer","setInterval","remaining","isDone","stopTimer","options","autoSubmit","submit","render","clearInterval","undefined","cleanup","_firstRender","output","theme","title","message","ANSI","RESET","success","muted","renderFrame","handleInput","char","seconds"],"mappings":"AAAA,sBAAsB;;;;;+BAWTA;;;eAAAA;;;sBAVQ;sBACE;uBACD;;;;;;;;;;;;;;AAQf,IAAA,AAAMA,aAAN,MAAMA,mBAAmBC,YAAM;IAU3BC,MAAqB;QACxB,+CAA+C;QAC/C,IAAI,CAACC,KAAK,GAAGC,YAAY;YACrB,IAAI,CAACC,SAAS;YACd,IAAI,IAAI,CAACA,SAAS,IAAI,GAAG;gBACrB,IAAI,CAACC,MAAM,GAAG;gBACd,IAAI,CAACC,SAAS;gBAEd,IAAI,IAAI,CAACC,OAAO,CAACC,UAAU,EAAE;oBACzB,IAAI,CAACC,MAAM;gBACf,OAAO;oBACH,IAAI,CAACC,MAAM,CAAC;gBAChB;YACJ,OAAO;gBACH,IAAI,CAACA,MAAM,CAAC;YAChB;QACJ,GAAG;QAEH,OAAO,KAAK,CAACT;IACjB;IAEQK,YAAY;QAChB,IAAI,IAAI,CAACJ,KAAK,EAAE;YACZS,cAAc,IAAI,CAACT,KAAK;YACxB,IAAI,CAACA,KAAK,GAAGU;QACjB;IACJ;IAEUC,UAAU;QAChB,IAAI,CAACP,SAAS;QACd,KAAK,CAACO;IACV;IAEUH,OAAOI,YAAqB,EAAE;QACpC,IAAIC,SAAS,GAAGC,YAAK,CAACC,KAAK,GAAG,IAAI,CAACV,OAAO,CAACW,OAAO,GAAGC,UAAI,CAACC,KAAK,CAAC,CAAC,CAAC;QAElE,IAAI,IAAI,CAACf,MAAM,EAAE;YACbU,UAAU,GAAGC,YAAK,CAACK,OAAO,CAAC,8BAA8B,EAAEF,UAAI,CAACC,KAAK,EAAE;QAC3E,OAAO;YACH,8BAA8B;YAC9BL,UAAU,GAAGC,YAAK,CAACM,KAAK,CAAC,eAAe,EAAE,IAAI,CAAClB,SAAS,CAAC,CAAC,EAAEe,UAAI,CAACC,KAAK,EAAE;QAC5E;QAEA,IAAI,CAACG,WAAW,CAACR;IACrB;IAEUS,YAAYC,IAAY,EAAE;QAChC,IAAI,IAAI,CAACpB,MAAM,IAAKoB,CAAAA,SAAS,QAAQA,SAAS,IAAG,GAAI;YACjD,IAAI,CAAChB,MAAM;QACf;IACA,uCAAuC;IAC3C;IAxDA,YAAYF,OAAoB,CAAE;QAC9B,KAAK,CAACA,UALV,uBAAQH,aAAR,KAAA,IACA,uBAAQF,SAAR,KAAA,IACA,uBAAQG,UAAkB;QAItB,IAAI,CAACD,SAAS,GAAGG,QAAQmB,OAAO;IACpC;AAsDJ"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Spinner", {
6
- enumerable: true,
7
- get: function() {
8
- return Spinner;
9
- }
10
- });
11
- const _ansi = require("./ansi");
12
- const _symbols = require("./symbols");
13
- const _theme = require("./theme");
14
- function _define_property(obj, key, value) {
15
- if (key in obj) {
16
- Object.defineProperty(obj, key, {
17
- value: value,
18
- enumerable: true,
19
- configurable: true,
20
- writable: true
21
- });
22
- } else {
23
- obj[key] = value;
24
- }
25
- return obj;
26
- }
27
- let Spinner = class Spinner {
28
- /**
29
- * Starts the spinner animation.
30
- */ start() {
31
- if (this.isSpinning) return this;
32
- this.isSpinning = true;
33
- process.stdout.write(_ansi.ANSI.HIDE_CURSOR);
34
- // Render immediately
35
- this.render();
36
- // Start loop
37
- this.timer = setInterval(()=>{
38
- this.render();
39
- }, 80);
40
- // Register signal handler to restore cursor on Ctrl+C
41
- process.on('SIGINT', this.handleSignal);
42
- return this;
43
- }
44
- /**
45
- * Stops the spinner animation.
46
- */ stop() {
47
- if (this.timer) {
48
- clearInterval(this.timer);
49
- this.timer = undefined;
50
- }
51
- if (this.isSpinning) {
52
- this.isSpinning = false;
53
- process.stdout.write(_ansi.ANSI.SHOW_CURSOR);
54
- process.removeListener('SIGINT', this.handleSignal);
55
- }
56
- return this;
57
- }
58
- /**
59
- * Updates the spinner text.
60
- */ update(text) {
61
- this.text = text;
62
- return this;
63
- }
64
- /**
65
- * Stops the spinner and shows a success message.
66
- */ success(message) {
67
- this.stop();
68
- const text = message ?? this.text;
69
- process.stdout.write(`${_ansi.ANSI.ERASE_LINE}${_ansi.ANSI.CURSOR_LEFT}${_theme.theme.success}${_symbols.symbols.tick}${_ansi.ANSI.RESET} ${text}\n`);
70
- return this;
71
- }
72
- /**
73
- * Stops the spinner and shows an error message.
74
- */ error(message) {
75
- this.stop();
76
- const text = message ?? this.text;
77
- process.stdout.write(`${_ansi.ANSI.ERASE_LINE}${_ansi.ANSI.CURSOR_LEFT}${_theme.theme.error}${_symbols.symbols.cross}${_ansi.ANSI.RESET} ${text}\n`);
78
- return this;
79
- }
80
- /**
81
- * Stops the spinner and clears the line.
82
- */ clear() {
83
- this.stop();
84
- process.stdout.write(`${_ansi.ANSI.ERASE_LINE}${_ansi.ANSI.CURSOR_LEFT}`);
85
- return this;
86
- }
87
- render() {
88
- const frame = _symbols.symbols.spinner[this.frameIndex];
89
- process.stdout.write(`${_ansi.ANSI.ERASE_LINE}${_ansi.ANSI.CURSOR_LEFT}${_theme.theme.main}${frame}${_ansi.ANSI.RESET} ${this.text}`);
90
- this.frameIndex = (this.frameIndex + 1) % _symbols.symbols.spinner.length;
91
- }
92
- constructor(text){
93
- _define_property(this, "text", void 0);
94
- _define_property(this, "timer", void 0);
95
- _define_property(this, "frameIndex", 0);
96
- _define_property(this, "isSpinning", false);
97
- _define_property(this, "handleSignal", ()=>{
98
- this.stop();
99
- process.exit(0);
100
- });
101
- this.text = text;
102
- }
103
- };
104
-
105
- //# sourceMappingURL=spinner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/spinner.ts"],"sourcesContent":["import { ANSI } from './ansi';\nimport { symbols } from './symbols';\nimport { theme } from './theme';\n\nexport class Spinner {\n private text: string;\n private timer?: NodeJS.Timeout;\n private frameIndex: number = 0;\n private isSpinning: boolean = false;\n\n constructor(text: string) {\n this.text = text;\n }\n\n /**\n * Starts the spinner animation.\n */\n public start(): this {\n if (this.isSpinning) return this;\n\n this.isSpinning = true;\n process.stdout.write(ANSI.HIDE_CURSOR);\n\n // Render immediately\n this.render();\n\n // Start loop\n this.timer = setInterval(() => {\n this.render();\n }, 80);\n\n // Register signal handler to restore cursor on Ctrl+C\n process.on('SIGINT', this.handleSignal);\n\n return this;\n }\n\n /**\n * Stops the spinner animation.\n */\n public stop(): this {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = undefined;\n }\n\n if (this.isSpinning) {\n this.isSpinning = false;\n process.stdout.write(ANSI.SHOW_CURSOR);\n process.removeListener('SIGINT', this.handleSignal);\n }\n\n return this;\n }\n\n /**\n * Updates the spinner text.\n */\n public update(text: string): this {\n this.text = text;\n return this;\n }\n\n /**\n * Stops the spinner and shows a success message.\n */\n public success(message?: string): this {\n this.stop();\n const text = message ?? this.text;\n process.stdout.write(`${ANSI.ERASE_LINE}${ANSI.CURSOR_LEFT}${theme.success}${symbols.tick}${ANSI.RESET} ${text}\\n`);\n return this;\n }\n\n /**\n * Stops the spinner and shows an error message.\n */\n public error(message?: string): this {\n this.stop();\n const text = message ?? this.text;\n process.stdout.write(`${ANSI.ERASE_LINE}${ANSI.CURSOR_LEFT}${theme.error}${symbols.cross}${ANSI.RESET} ${text}\\n`);\n return this;\n }\n\n /**\n * Stops the spinner and clears the line.\n */\n public clear(): this {\n this.stop();\n process.stdout.write(`${ANSI.ERASE_LINE}${ANSI.CURSOR_LEFT}`);\n return this;\n }\n\n private render(): void {\n const frame = symbols.spinner[this.frameIndex];\n process.stdout.write(`${ANSI.ERASE_LINE}${ANSI.CURSOR_LEFT}${theme.main}${frame}${ANSI.RESET} ${this.text}`);\n this.frameIndex = (this.frameIndex + 1) % symbols.spinner.length;\n }\n\n private handleSignal = () => {\n this.stop();\n process.exit(0);\n };\n}\n"],"names":["Spinner","start","isSpinning","process","stdout","write","ANSI","HIDE_CURSOR","render","timer","setInterval","on","handleSignal","stop","clearInterval","undefined","SHOW_CURSOR","removeListener","update","text","success","message","ERASE_LINE","CURSOR_LEFT","theme","symbols","tick","RESET","error","cross","clear","frame","spinner","frameIndex","main","length","exit"],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "symbols", {
6
- enumerable: true,
7
- get: function() {
8
- return symbols;
9
- }
10
- });
11
- const _utils = require("./utils");
12
- const UnicodeSymbols = {
13
- tick: '✔',
14
- cross: '✖',
15
- pointer: '❯',
16
- line: '─',
17
- checked: '◉',
18
- unchecked: '◯',
19
- spinner: [
20
- '⠋',
21
- '⠙',
22
- '⠹',
23
- '⠸',
24
- '⠼',
25
- '⠴',
26
- '⠦',
27
- '⠧',
28
- '⠇',
29
- '⠏'
30
- ],
31
- star: '★',
32
- starEmpty: '☆',
33
- topLeft: '┌',
34
- topRight: '┐',
35
- bottomLeft: '└',
36
- bottomRight: '┘',
37
- horizontal: '─',
38
- vertical: '│'
39
- };
40
- const AsciiSymbols = {
41
- tick: '+',
42
- cross: 'x',
43
- pointer: '>',
44
- line: '-',
45
- checked: '[x]',
46
- unchecked: '[ ]',
47
- spinner: [
48
- '|',
49
- '/',
50
- '-',
51
- '\\'
52
- ],
53
- star: '*',
54
- starEmpty: ' ',
55
- topLeft: '+',
56
- topRight: '+',
57
- bottomLeft: '+',
58
- bottomRight: '+',
59
- horizontal: '-',
60
- vertical: '|'
61
- };
62
- const capabilities = (0, _utils.detectCapabilities)();
63
- const useUnicode = capabilities.hasUnicode && process.env.MEP_NO_UNICODE !== '1';
64
- const symbols = useUnicode ? UnicodeSymbols : AsciiSymbols;
65
-
66
- //# sourceMappingURL=symbols.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/symbols.ts"],"sourcesContent":["import { detectCapabilities } from './utils';\n\nexport interface SymbolDefinition {\n /** Used for success messages or valid states */\n tick: string;\n /** Used for error messages or invalid states */\n cross: string;\n /** Used to point to the current selection */\n pointer: string;\n /** Used for separators or sliders */\n line: string;\n /** Used for checked state in checkboxes/radio */\n checked: string;\n /** Used for unchecked state in checkboxes/radio */\n unchecked: string;\n /** Animation frames for the spinner */\n spinner: string[];\n /** Star symbol for rating */\n star: string;\n /** Empty star symbol for rating */\n starEmpty: string;\n /** Box drawing top-left corner */\n topLeft: string;\n /** Box drawing top-right corner */\n topRight: string;\n /** Box drawing bottom-left corner */\n bottomLeft: string;\n /** Box drawing bottom-right corner */\n bottomRight: string;\n /** Box drawing horizontal line */\n horizontal: string;\n /** Box drawing vertical line */\n vertical: string;\n}\n\nconst UnicodeSymbols: SymbolDefinition = {\n tick: '✔',\n cross: '✖',\n pointer: '❯',\n line: '─',\n checked: '◉',\n unchecked: '◯',\n spinner: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],\n star: '★',\n starEmpty: '☆',\n topLeft: '┌',\n topRight: '┐',\n bottomLeft: '└',\n bottomRight: '┘',\n horizontal: '─',\n vertical: '│'\n};\n\nconst AsciiSymbols: SymbolDefinition = {\n tick: '+',\n cross: 'x',\n pointer: '>',\n line: '-',\n checked: '[x]',\n unchecked: '[ ]',\n spinner: ['|', '/', '-', '\\\\'],\n star: '*',\n starEmpty: ' ',\n topLeft: '+',\n topRight: '+',\n bottomLeft: '+',\n bottomRight: '+',\n horizontal: '-',\n vertical: '|'\n};\n\nconst capabilities = detectCapabilities();\nconst useUnicode = capabilities.hasUnicode && process.env.MEP_NO_UNICODE !== '1';\n\nexport const symbols: SymbolDefinition = useUnicode ? UnicodeSymbols : AsciiSymbols;\n"],"names":["symbols","UnicodeSymbols","tick","cross","pointer","line","checked","unchecked","spinner","star","starEmpty","topLeft","topRight","bottomLeft","bottomRight","horizontal","vertical","AsciiSymbols","capabilities","detectCapabilities","useUnicode","hasUnicode","process","env","MEP_NO_UNICODE"],"mappings":";;;;+BA0EaA;;;eAAAA;;;uBA1EsB;AAmCnC,MAAMC,iBAAmC;IACrCC,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,WAAW;IACXC,SAAS;QAAC;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;QAAK;KAAI;IAC3DC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,UAAU;IACVC,YAAY;IACZC,aAAa;IACbC,YAAY;IACZC,UAAU;AACd;AAEA,MAAMC,eAAiC;IACnCf,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,WAAW;IACXC,SAAS;QAAC;QAAK;QAAK;QAAK;KAAK;IAC9BC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,UAAU;IACVC,YAAY;IACZC,aAAa;IACbC,YAAY;IACZC,UAAU;AACd;AAEA,MAAME,eAAeC,IAAAA,yBAAkB;AACvC,MAAMC,aAAaF,aAAaG,UAAU,IAAIC,QAAQC,GAAG,CAACC,cAAc,KAAK;AAEtE,MAAMxB,UAA4BoB,aAAanB,iBAAiBgB"}