mepcli 2.0.0-beta.2 → 2.0.0-beta.4

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 (358) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +20 -0
  3. package/dist/ansi.d.ts +36 -0
  4. package/dist/ansi.js +1 -0
  5. package/dist/base.d.ts +61 -0
  6. package/dist/base.js +1 -0
  7. package/dist/{src/core.js → core.d.ts} +181 -345
  8. package/dist/core.js +1 -0
  9. package/dist/data/countries.d.ts +2 -0
  10. package/dist/data/countries.js +1 -0
  11. package/dist/data/licenses.d.ts +2 -0
  12. package/dist/data/licenses.js +1 -0
  13. package/dist/highlight.d.ts +7 -0
  14. package/dist/highlight.js +1 -0
  15. package/dist/index.d.ts +52 -0
  16. package/dist/index.js +1 -0
  17. package/dist/input.d.ts +14 -0
  18. package/dist/input.js +1 -0
  19. package/dist/pipeline.d.ts +90 -0
  20. package/dist/pipeline.js +1 -0
  21. package/dist/prompts/autocomplete.d.ts +22 -0
  22. package/dist/prompts/autocomplete.js +1 -0
  23. package/dist/prompts/box.d.ts +21 -0
  24. package/dist/prompts/box.js +4 -0
  25. package/dist/prompts/breadcrumb-search.d.ts +14 -0
  26. package/dist/prompts/breadcrumb-search.js +2 -0
  27. package/dist/prompts/breadcrumb.d.ts +32 -0
  28. package/dist/prompts/breadcrumb.js +3 -0
  29. package/dist/prompts/byte.d.ts +13 -0
  30. package/dist/prompts/byte.js +5 -0
  31. package/dist/prompts/calculator.d.ts +17 -0
  32. package/dist/prompts/calculator.js +3 -0
  33. package/dist/prompts/calendar.d.ts +33 -0
  34. package/dist/prompts/calendar.js +3 -0
  35. package/dist/prompts/checkbox.d.ts +13 -0
  36. package/dist/prompts/checkbox.js +2 -0
  37. package/dist/prompts/code.d.ts +19 -0
  38. package/dist/prompts/code.js +4 -0
  39. package/dist/prompts/color.d.ts +14 -0
  40. package/dist/prompts/color.js +10 -0
  41. package/dist/prompts/confirm.d.ts +8 -0
  42. package/dist/prompts/confirm.js +1 -0
  43. package/dist/prompts/connection-string.d.ts +18 -0
  44. package/dist/prompts/connection-string.js +1 -0
  45. package/dist/prompts/cron.d.ts +13 -0
  46. package/dist/prompts/cron.js +4 -0
  47. package/dist/prompts/curl-utils.d.ts +25 -0
  48. package/dist/prompts/curl-utils.js +1 -0
  49. package/dist/prompts/curl.d.ts +41 -0
  50. package/dist/prompts/curl.js +12 -0
  51. package/dist/prompts/data-inspector.d.ts +22 -0
  52. package/dist/prompts/data-inspector.js +5 -0
  53. package/dist/prompts/date.d.ts +12 -0
  54. package/dist/prompts/date.js +2 -0
  55. package/dist/prompts/dependency.d.ts +16 -0
  56. package/dist/prompts/dependency.js +3 -0
  57. package/dist/prompts/dial.d.ts +10 -0
  58. package/dist/prompts/dial.js +3 -0
  59. package/dist/prompts/diff.d.ts +10 -0
  60. package/dist/prompts/diff.js +10 -0
  61. package/dist/prompts/draw.d.ts +20 -0
  62. package/dist/prompts/draw.js +6 -0
  63. package/dist/prompts/editor.d.ts +14 -0
  64. package/dist/prompts/editor.js +2 -0
  65. package/dist/prompts/emoji.d.ts +18 -0
  66. package/dist/prompts/emoji.js +5 -0
  67. package/dist/prompts/exec.d.ts +17 -0
  68. package/dist/prompts/exec.js +1 -0
  69. package/dist/prompts/file.d.ts +21 -0
  70. package/dist/prompts/file.js +2 -0
  71. package/dist/prompts/form.d.ts +18 -0
  72. package/dist/prompts/form.js +1 -0
  73. package/dist/prompts/fuzzy-multi-column.d.ts +12 -0
  74. package/dist/prompts/fuzzy-multi-column.js +2 -0
  75. package/dist/prompts/fuzzy.d.ts +12 -0
  76. package/dist/prompts/fuzzy.js +2 -0
  77. package/dist/prompts/gauge.d.ts +21 -0
  78. package/dist/prompts/gauge.js +4 -0
  79. package/dist/prompts/grid.d.ts +14 -0
  80. package/dist/prompts/grid.js +2 -0
  81. package/dist/prompts/heatmap.d.ts +13 -0
  82. package/dist/prompts/heatmap.js +2 -0
  83. package/dist/prompts/ip.d.ts +11 -0
  84. package/dist/prompts/ip.js +3 -0
  85. package/dist/prompts/kanban.d.ts +17 -0
  86. package/dist/prompts/kanban.js +4 -0
  87. package/dist/prompts/keypress.d.ts +7 -0
  88. package/dist/prompts/keypress.js +1 -0
  89. package/dist/prompts/license.d.ts +9 -0
  90. package/dist/prompts/license.js +13 -0
  91. package/dist/prompts/list.d.ts +9 -0
  92. package/dist/prompts/list.js +1 -0
  93. package/dist/prompts/map.d.ts +17 -0
  94. package/dist/prompts/map.js +5 -0
  95. package/dist/prompts/match.d.ts +19 -0
  96. package/dist/prompts/match.js +7 -0
  97. package/dist/prompts/miller.d.ts +15 -0
  98. package/dist/prompts/miller.js +2 -0
  99. package/dist/prompts/multi-column-select.d.ts +10 -0
  100. package/dist/prompts/multi-column-select.js +2 -0
  101. package/dist/prompts/multi-range.d.ts +9 -0
  102. package/dist/prompts/multi-range.js +3 -0
  103. package/dist/prompts/multi-select.d.ts +15 -0
  104. package/dist/prompts/multi-select.js +4 -0
  105. package/dist/prompts/number.d.ts +11 -0
  106. package/dist/prompts/number.js +2 -0
  107. package/dist/prompts/otp.d.ts +10 -0
  108. package/dist/prompts/otp.js +2 -0
  109. package/dist/prompts/pattern.d.ts +22 -0
  110. package/dist/prompts/pattern.js +4 -0
  111. package/dist/prompts/phone.d.ts +41 -0
  112. package/dist/prompts/phone.js +3 -0
  113. package/dist/prompts/quiz-select.d.ts +10 -0
  114. package/dist/prompts/quiz-select.js +7 -0
  115. package/dist/prompts/quiz-text.d.ts +11 -0
  116. package/dist/prompts/quiz-text.js +8 -0
  117. package/dist/prompts/range.d.ts +9 -0
  118. package/dist/prompts/range.js +1 -0
  119. package/dist/prompts/rating.d.ts +8 -0
  120. package/dist/prompts/rating.js +1 -0
  121. package/dist/prompts/regex.d.ts +13 -0
  122. package/dist/prompts/regex.js +5 -0
  123. package/dist/prompts/region.d.ts +11 -0
  124. package/dist/prompts/region.js +5 -0
  125. package/dist/prompts/schedule.d.ts +20 -0
  126. package/dist/prompts/schedule.js +5 -0
  127. package/dist/prompts/scroll.d.ts +13 -0
  128. package/dist/prompts/scroll.js +1 -0
  129. package/dist/prompts/seat.d.ts +17 -0
  130. package/dist/prompts/seat.js +5 -0
  131. package/dist/prompts/select-range.d.ts +8 -0
  132. package/dist/prompts/select-range.js +3 -0
  133. package/dist/prompts/select.d.ts +15 -0
  134. package/dist/prompts/select.js +2 -0
  135. package/dist/prompts/semver.d.ts +6 -0
  136. package/dist/prompts/semver.js +1 -0
  137. package/dist/prompts/shortcut.d.ts +9 -0
  138. package/dist/prompts/shortcut.js +1 -0
  139. package/dist/prompts/slider.d.ts +8 -0
  140. package/dist/prompts/slider.js +1 -0
  141. package/dist/prompts/slot.d.ts +16 -0
  142. package/dist/prompts/slot.js +8 -0
  143. package/dist/prompts/snippet.d.ts +19 -0
  144. package/dist/prompts/snippet.js +4 -0
  145. package/dist/prompts/sort-grid.d.ts +16 -0
  146. package/dist/prompts/sort-grid.js +2 -0
  147. package/dist/prompts/sort.d.ts +14 -0
  148. package/dist/prompts/sort.js +2 -0
  149. package/dist/prompts/spam.d.ts +17 -0
  150. package/dist/prompts/spam.js +2 -0
  151. package/dist/prompts/spreadsheet.d.ts +21 -0
  152. package/dist/prompts/spreadsheet.js +7 -0
  153. package/dist/prompts/table.d.ts +14 -0
  154. package/dist/prompts/table.js +3 -0
  155. package/dist/prompts/text.d.ts +17 -0
  156. package/dist/prompts/text.js +2 -0
  157. package/dist/prompts/time.d.ts +12 -0
  158. package/dist/prompts/time.js +2 -0
  159. package/dist/prompts/toggle.d.ts +8 -0
  160. package/dist/prompts/toggle.js +1 -0
  161. package/dist/prompts/transfer.d.ts +18 -0
  162. package/dist/prompts/transfer.js +5 -0
  163. package/dist/prompts/tree-select.d.ts +31 -0
  164. package/dist/prompts/tree-select.js +3 -0
  165. package/dist/prompts/tree.d.ts +20 -0
  166. package/dist/prompts/tree.js +3 -0
  167. package/dist/prompts/wait.d.ts +18 -0
  168. package/dist/prompts/wait.js +1 -0
  169. package/dist/spinner.d.ts +33 -0
  170. package/dist/spinner.js +3 -0
  171. package/dist/symbols.d.ts +33 -0
  172. package/dist/symbols.js +1 -0
  173. package/dist/tasks.d.ts +57 -0
  174. package/dist/tasks.js +1 -0
  175. package/dist/theme.d.ts +2 -0
  176. package/dist/theme.js +1 -0
  177. package/dist/types.d.ts +519 -0
  178. package/dist/types.js +1 -0
  179. package/dist/utils.d.ts +82 -0
  180. package/dist/utils.js +1 -0
  181. package/package.json +10 -10
  182. package/dist/src/ansi.js +0 -50
  183. package/dist/src/ansi.js.map +0 -1
  184. package/dist/src/base.js +0 -258
  185. package/dist/src/base.js.map +0 -1
  186. package/dist/src/core.js.map +0 -1
  187. package/dist/src/data/countries.js +0 -569
  188. package/dist/src/data/countries.js.map +0 -1
  189. package/dist/src/data/licenses.js +0 -480
  190. package/dist/src/data/licenses.js.map +0 -1
  191. package/dist/src/highlight.js +0 -185
  192. package/dist/src/highlight.js.map +0 -1
  193. package/dist/src/index.js +0 -66
  194. package/dist/src/index.js.map +0 -1
  195. package/dist/src/input.js +0 -158
  196. package/dist/src/input.js.map +0 -1
  197. package/dist/src/pipeline.js +0 -273
  198. package/dist/src/pipeline.js.map +0 -1
  199. package/dist/src/prompts/autocomplete.js +0 -171
  200. package/dist/src/prompts/autocomplete.js.map +0 -1
  201. package/dist/src/prompts/box.js +0 -225
  202. package/dist/src/prompts/box.js.map +0 -1
  203. package/dist/src/prompts/breadcrumb-search.js +0 -260
  204. package/dist/src/prompts/breadcrumb-search.js.map +0 -1
  205. package/dist/src/prompts/breadcrumb.js +0 -307
  206. package/dist/src/prompts/breadcrumb.js.map +0 -1
  207. package/dist/src/prompts/byte.js +0 -176
  208. package/dist/src/prompts/byte.js.map +0 -1
  209. package/dist/src/prompts/calculator.js +0 -243
  210. package/dist/src/prompts/calculator.js.map +0 -1
  211. package/dist/src/prompts/calendar.js +0 -430
  212. package/dist/src/prompts/calendar.js.map +0 -1
  213. package/dist/src/prompts/checkbox.js +0 -159
  214. package/dist/src/prompts/checkbox.js.map +0 -1
  215. package/dist/src/prompts/code.js +0 -271
  216. package/dist/src/prompts/code.js.map +0 -1
  217. package/dist/src/prompts/color.js +0 -165
  218. package/dist/src/prompts/color.js.map +0 -1
  219. package/dist/src/prompts/confirm.js +0 -55
  220. package/dist/src/prompts/confirm.js.map +0 -1
  221. package/dist/src/prompts/connection-string.js +0 -120
  222. package/dist/src/prompts/connection-string.js.map +0 -1
  223. package/dist/src/prompts/cron.js +0 -207
  224. package/dist/src/prompts/cron.js.map +0 -1
  225. package/dist/src/prompts/curl-utils.js +0 -71
  226. package/dist/src/prompts/curl-utils.js.map +0 -1
  227. package/dist/src/prompts/curl.js +0 -431
  228. package/dist/src/prompts/curl.js.map +0 -1
  229. package/dist/src/prompts/data-inspector.js +0 -261
  230. package/dist/src/prompts/data-inspector.js.map +0 -1
  231. package/dist/src/prompts/date.js +0 -185
  232. package/dist/src/prompts/date.js.map +0 -1
  233. package/dist/src/prompts/dependency.js +0 -283
  234. package/dist/src/prompts/dependency.js.map +0 -1
  235. package/dist/src/prompts/dial.js +0 -124
  236. package/dist/src/prompts/dial.js.map +0 -1
  237. package/dist/src/prompts/diff.js +0 -118
  238. package/dist/src/prompts/diff.js.map +0 -1
  239. package/dist/src/prompts/draw.js +0 -191
  240. package/dist/src/prompts/draw.js.map +0 -1
  241. package/dist/src/prompts/editor.js +0 -234
  242. package/dist/src/prompts/editor.js.map +0 -1
  243. package/dist/src/prompts/emoji.js +0 -226
  244. package/dist/src/prompts/emoji.js.map +0 -1
  245. package/dist/src/prompts/exec.js +0 -151
  246. package/dist/src/prompts/exec.js.map +0 -1
  247. package/dist/src/prompts/file.js +0 -217
  248. package/dist/src/prompts/file.js.map +0 -1
  249. package/dist/src/prompts/form.js +0 -241
  250. package/dist/src/prompts/form.js.map +0 -1
  251. package/dist/src/prompts/fuzzy-multi-column.js +0 -161
  252. package/dist/src/prompts/fuzzy-multi-column.js.map +0 -1
  253. package/dist/src/prompts/fuzzy.js +0 -147
  254. package/dist/src/prompts/fuzzy.js.map +0 -1
  255. package/dist/src/prompts/gauge.js +0 -137
  256. package/dist/src/prompts/gauge.js.map +0 -1
  257. package/dist/src/prompts/grid.js +0 -191
  258. package/dist/src/prompts/grid.js.map +0 -1
  259. package/dist/src/prompts/heatmap.js +0 -147
  260. package/dist/src/prompts/heatmap.js.map +0 -1
  261. package/dist/src/prompts/ip.js +0 -138
  262. package/dist/src/prompts/ip.js.map +0 -1
  263. package/dist/src/prompts/kanban.js +0 -233
  264. package/dist/src/prompts/kanban.js.map +0 -1
  265. package/dist/src/prompts/keypress.js +0 -54
  266. package/dist/src/prompts/keypress.js.map +0 -1
  267. package/dist/src/prompts/license.js +0 -144
  268. package/dist/src/prompts/license.js.map +0 -1
  269. package/dist/src/prompts/list.js +0 -124
  270. package/dist/src/prompts/list.js.map +0 -1
  271. package/dist/src/prompts/map.js +0 -262
  272. package/dist/src/prompts/map.js.map +0 -1
  273. package/dist/src/prompts/match.js +0 -271
  274. package/dist/src/prompts/match.js.map +0 -1
  275. package/dist/src/prompts/miller.js +0 -228
  276. package/dist/src/prompts/miller.js.map +0 -1
  277. package/dist/src/prompts/multi-column-select.js +0 -176
  278. package/dist/src/prompts/multi-column-select.js.map +0 -1
  279. package/dist/src/prompts/multi-range.js +0 -189
  280. package/dist/src/prompts/multi-range.js.map +0 -1
  281. package/dist/src/prompts/multi-select.js +0 -183
  282. package/dist/src/prompts/multi-select.js.map +0 -1
  283. package/dist/src/prompts/number.js +0 -166
  284. package/dist/src/prompts/number.js.map +0 -1
  285. package/dist/src/prompts/otp.js +0 -107
  286. package/dist/src/prompts/otp.js.map +0 -1
  287. package/dist/src/prompts/pattern.js +0 -252
  288. package/dist/src/prompts/pattern.js.map +0 -1
  289. package/dist/src/prompts/phone.js +0 -398
  290. package/dist/src/prompts/phone.js.map +0 -1
  291. package/dist/src/prompts/quiz-select.js +0 -114
  292. package/dist/src/prompts/quiz-select.js.map +0 -1
  293. package/dist/src/prompts/quiz-text.js +0 -98
  294. package/dist/src/prompts/quiz-text.js.map +0 -1
  295. package/dist/src/prompts/range.js +0 -164
  296. package/dist/src/prompts/range.js.map +0 -1
  297. package/dist/src/prompts/rating.js +0 -83
  298. package/dist/src/prompts/rating.js.map +0 -1
  299. package/dist/src/prompts/regex.js +0 -145
  300. package/dist/src/prompts/regex.js.map +0 -1
  301. package/dist/src/prompts/region.js +0 -170
  302. package/dist/src/prompts/region.js.map +0 -1
  303. package/dist/src/prompts/schedule.js +0 -270
  304. package/dist/src/prompts/schedule.js.map +0 -1
  305. package/dist/src/prompts/scroll.js +0 -155
  306. package/dist/src/prompts/scroll.js.map +0 -1
  307. package/dist/src/prompts/seat.js +0 -164
  308. package/dist/src/prompts/seat.js.map +0 -1
  309. package/dist/src/prompts/select-range.js +0 -148
  310. package/dist/src/prompts/select-range.js.map +0 -1
  311. package/dist/src/prompts/select.js +0 -163
  312. package/dist/src/prompts/select.js.map +0 -1
  313. package/dist/src/prompts/semver.js +0 -43
  314. package/dist/src/prompts/semver.js.map +0 -1
  315. package/dist/src/prompts/shortcut.js +0 -133
  316. package/dist/src/prompts/shortcut.js.map +0 -1
  317. package/dist/src/prompts/slider.js +0 -69
  318. package/dist/src/prompts/slider.js.map +0 -1
  319. package/dist/src/prompts/slot.js +0 -117
  320. package/dist/src/prompts/slot.js.map +0 -1
  321. package/dist/src/prompts/snippet.js +0 -228
  322. package/dist/src/prompts/snippet.js.map +0 -1
  323. package/dist/src/prompts/sort-grid.js +0 -151
  324. package/dist/src/prompts/sort-grid.js.map +0 -1
  325. package/dist/src/prompts/sort.js +0 -166
  326. package/dist/src/prompts/sort.js.map +0 -1
  327. package/dist/src/prompts/spam.js +0 -80
  328. package/dist/src/prompts/spam.js.map +0 -1
  329. package/dist/src/prompts/spreadsheet.js +0 -240
  330. package/dist/src/prompts/spreadsheet.js.map +0 -1
  331. package/dist/src/prompts/table.js +0 -120
  332. package/dist/src/prompts/table.js.map +0 -1
  333. package/dist/src/prompts/text.js +0 -317
  334. package/dist/src/prompts/text.js.map +0 -1
  335. package/dist/src/prompts/time.js +0 -211
  336. package/dist/src/prompts/time.js.map +0 -1
  337. package/dist/src/prompts/toggle.js +0 -53
  338. package/dist/src/prompts/toggle.js.map +0 -1
  339. package/dist/src/prompts/transfer.js +0 -207
  340. package/dist/src/prompts/transfer.js.map +0 -1
  341. package/dist/src/prompts/tree-select.js +0 -270
  342. package/dist/src/prompts/tree-select.js.map +0 -1
  343. package/dist/src/prompts/tree.js +0 -233
  344. package/dist/src/prompts/tree.js.map +0 -1
  345. package/dist/src/prompts/wait.js +0 -79
  346. package/dist/src/prompts/wait.js.map +0 -1
  347. package/dist/src/spinner.js +0 -105
  348. package/dist/src/spinner.js.map +0 -1
  349. package/dist/src/symbols.js +0 -66
  350. package/dist/src/symbols.js.map +0 -1
  351. package/dist/src/tasks.js +0 -231
  352. package/dist/src/tasks.js.map +0 -1
  353. package/dist/src/theme.js +0 -29
  354. package/dist/src/theme.js.map +0 -1
  355. package/dist/src/types.js +0 -8
  356. package/dist/src/types.js.map +0 -1
  357. package/dist/src/utils.js +0 -480
  358. package/dist/src/utils.js.map +0 -1
package/dist/src/tasks.js DELETED
@@ -1,231 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "TaskRunner", {
6
- enumerable: true,
7
- get: function() {
8
- return TaskRunner;
9
- }
10
- });
11
- const _ansi = require("./ansi");
12
- const _symbols = require("./symbols");
13
- const _utils = require("./utils");
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 TaskRunner = class TaskRunner {
28
- /**
29
- * Registers a new task.
30
- */ add(id, config) {
31
- this.tasks.set(id, {
32
- id,
33
- ...config,
34
- status: 'pending',
35
- current: 0
36
- });
37
- return this;
38
- }
39
- /**
40
- * Updates an existing task.
41
- */ update(id, updates) {
42
- const task = this.tasks.get(id);
43
- if (task) {
44
- Object.assign(task, updates);
45
- }
46
- }
47
- /**
48
- * Starts a task (sets status to loading).
49
- */ start(id, message) {
50
- this.update(id, {
51
- status: 'loading',
52
- message
53
- });
54
- }
55
- /**
56
- * Mark task as success.
57
- */ success(id, message) {
58
- this.update(id, {
59
- status: 'success',
60
- message
61
- });
62
- }
63
- /**
64
- * Mark task as error.
65
- */ error(id, message) {
66
- this.update(id, {
67
- status: 'error',
68
- message
69
- });
70
- }
71
- /**
72
- * Mark task as warning.
73
- */ warning(id, message) {
74
- this.update(id, {
75
- status: 'warning',
76
- message
77
- });
78
- }
79
- /**
80
- * Starts the rendering loop.
81
- */ run() {
82
- if (this.isRunning) return;
83
- this.isRunning = true;
84
- this.stdout.write(_ansi.ANSI.HIDE_CURSOR);
85
- this.hijackConsole();
86
- // Handle Ctrl+C gracefully to restore cursor
87
- process.on('SIGINT', this.handleSigInt);
88
- // Initial render
89
- this.render();
90
- this.timer = setInterval(()=>{
91
- this.frameIndex++;
92
- this.render();
93
- }, 80);
94
- }
95
- /**
96
- * Stops the rendering loop and finalizes output.
97
- */ stop() {
98
- if (!this.isRunning) return;
99
- if (this.timer) {
100
- clearInterval(this.timer);
101
- this.timer = undefined;
102
- }
103
- // Final render to ensure static state (ticks/crosses instead of spinner)
104
- this.render();
105
- this.isRunning = false;
106
- this.restoreConsole();
107
- this.stdout.write(_ansi.ANSI.SHOW_CURSOR + '\n');
108
- if (this.logBuffer.length > 0) {
109
- this.stdout.write(this.logBuffer.join('\n') + '\n');
110
- this.logBuffer = [];
111
- }
112
- process.removeListener('SIGINT', this.handleSigInt);
113
- }
114
- hijackConsole() {
115
- this.originalConsole = {
116
- log: console.log,
117
- warn: console.warn,
118
- error: console.error
119
- };
120
- const logger = (_type)=>(...args)=>{
121
- // Use util.format for proper string interpolation
122
- // eslint-disable-next-line @typescript-eslint/no-require-imports
123
- const util = require('util');
124
- const msg = util.format(...args);
125
- this.logBuffer.push(msg);
126
- };
127
- console.log = logger('log');
128
- console.warn = logger('warn');
129
- console.error = logger('error');
130
- }
131
- restoreConsole() {
132
- if (this.originalConsole) {
133
- console.log = this.originalConsole.log;
134
- console.warn = this.originalConsole.warn;
135
- console.error = this.originalConsole.error;
136
- this.originalConsole = null;
137
- }
138
- }
139
- /**
140
- * The core rendering logic using Linear Scan Diffing.
141
- */ render() {
142
- const lines = this.buildLines();
143
- // 1. First Render
144
- if (this.lastOutputLines.length === 0) {
145
- this.stdout.write(lines.join('\n'));
146
- this.lastOutputLines = lines;
147
- this.lastOutputHeight = lines.length;
148
- return;
149
- }
150
- let output = '';
151
- // 2. Return Cursor to Top
152
- if (this.lastOutputHeight > 1) {
153
- output += `\x1b[${this.lastOutputHeight - 1}A`; // Move up N-1 lines
154
- }
155
- output += '\r'; // Move to start of line
156
- for(let i = 0; i < lines.length; i++){
157
- const newLine = lines[i];
158
- // Write line
159
- output += _ansi.ANSI.ERASE_LINE + newLine;
160
- if (i < lines.length - 1) {
161
- output += '\n';
162
- }
163
- }
164
- // Clear garbage if shrunk
165
- if (lines.length < this.lastOutputLines.length) {
166
- output += _ansi.ANSI.ERASE_DOWN;
167
- }
168
- this.stdout.write(output);
169
- this.lastOutputLines = lines;
170
- this.lastOutputHeight = lines.length;
171
- }
172
- buildLines() {
173
- const lines = [];
174
- for (const task of this.tasks.values()){
175
- const icon = this.getIcon(task);
176
- const title = task.title;
177
- let line = `${icon} ${title}`;
178
- if (task.type === 'progress' && task.total) {
179
- const bar = (0, _utils.generateProgressBar)(task.current, task.total);
180
- line += ` ${_ansi.ANSI.FG_GRAY}${bar}${_ansi.ANSI.RESET}`;
181
- }
182
- if (task.message) {
183
- line += ` ${_ansi.ANSI.DIM}- ${task.message}${_ansi.ANSI.RESET}`;
184
- }
185
- lines.push(line);
186
- }
187
- return lines;
188
- }
189
- getIcon(task) {
190
- switch(task.status){
191
- case 'pending':
192
- return `${_ansi.ANSI.FG_GRAY}${_symbols.symbols.unchecked}${_ansi.ANSI.RESET}`;
193
- case 'loading':
194
- {
195
- const frame = _symbols.symbols.spinner[this.frameIndex % _symbols.symbols.spinner.length];
196
- return `${_ansi.ANSI.FG_CYAN}${frame}${_ansi.ANSI.RESET}`;
197
- }
198
- case 'success':
199
- return `${_ansi.ANSI.FG_GREEN}${_symbols.symbols.tick}${_ansi.ANSI.RESET}`;
200
- case 'error':
201
- return `${_ansi.ANSI.FG_RED}${_symbols.symbols.cross}${_ansi.ANSI.RESET}`;
202
- case 'warning':
203
- return `${_ansi.ANSI.FG_YELLOW}!${_ansi.ANSI.RESET}`;
204
- default:
205
- return ' ';
206
- }
207
- }
208
- constructor(options = {}){
209
- _define_property(this, "tasks", new Map());
210
- _define_property(this, "options", void 0);
211
- _define_property(this, "timer", void 0);
212
- _define_property(this, "frameIndex", 0);
213
- _define_property(this, "isRunning", false);
214
- _define_property(this, "lastOutputLines", []);
215
- _define_property(this, "lastOutputHeight", 0);
216
- // Explicitly using stdout
217
- _define_property(this, "stdout", process.stdout);
218
- // Console Hijacking
219
- _define_property(this, "originalConsole", null);
220
- _define_property(this, "logBuffer", []);
221
- _define_property(this, "handleSigInt", ()=>{
222
- this.restoreConsole();
223
- this.stdout.write(_ansi.ANSI.SHOW_CURSOR + '\n');
224
- process.exit(0);
225
- });
226
- this.options = options;
227
- this.handleSigInt = this.handleSigInt.bind(this);
228
- }
229
- };
230
-
231
- //# sourceMappingURL=tasks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/tasks.ts"],"sourcesContent":["import { ANSI } from './ansi';\nimport { symbols } from './symbols';\nimport { TaskConfig, TaskGroupOptions, TaskState } from './types';\nimport { generateProgressBar } from './utils';\n\nexport class TaskRunner {\n private tasks: Map<string, TaskState> = new Map();\n private options: TaskGroupOptions;\n private timer?: NodeJS.Timeout;\n private frameIndex: number = 0;\n private isRunning: boolean = false;\n private lastOutputLines: string[] = [];\n private lastOutputHeight: number = 0;\n\n // Explicitly using stdout\n private stdout: NodeJS.WriteStream = process.stdout;\n\n // Console Hijacking\n private originalConsole: { log: any, warn: any, error: any } | null = null;\n private logBuffer: string[] = [];\n\n constructor(options: TaskGroupOptions = {}) {\n this.options = options;\n this.handleSigInt = this.handleSigInt.bind(this);\n }\n\n /**\n * Registers a new task.\n */\n public add(id: string, config: Omit<TaskConfig, 'id'>): TaskRunner {\n this.tasks.set(id, {\n id,\n ...config,\n status: 'pending',\n current: 0,\n });\n return this;\n }\n\n /**\n * Updates an existing task.\n */\n public update(id: string, updates: Partial<Omit<TaskState, 'id' | 'type' | 'title'>> & { title?: string }): void {\n const task = this.tasks.get(id);\n if (task) {\n Object.assign(task, updates);\n }\n }\n\n /**\n * Starts a task (sets status to loading).\n */\n public start(id: string, message?: string): void {\n this.update(id, { status: 'loading', message });\n }\n\n /**\n * Mark task as success.\n */\n public success(id: string, message?: string): void {\n this.update(id, { status: 'success', message });\n }\n\n /**\n * Mark task as error.\n */\n public error(id: string, message?: string): void {\n this.update(id, { status: 'error', message });\n }\n\n /**\n * Mark task as warning.\n */\n public warning(id: string, message?: string): void {\n this.update(id, { status: 'warning', message });\n }\n\n /**\n * Starts the rendering loop.\n */\n public run(): void {\n if (this.isRunning) return;\n this.isRunning = true;\n\n this.stdout.write(ANSI.HIDE_CURSOR);\n this.hijackConsole();\n\n // Handle Ctrl+C gracefully to restore cursor\n process.on('SIGINT', this.handleSigInt);\n\n // Initial render\n this.render();\n\n this.timer = setInterval(() => {\n this.frameIndex++;\n this.render();\n }, 80);\n }\n\n /**\n * Stops the rendering loop and finalizes output.\n */\n public stop(): void {\n if (!this.isRunning) return;\n\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = undefined;\n }\n\n // Final render to ensure static state (ticks/crosses instead of spinner)\n this.render();\n\n this.isRunning = false;\n this.restoreConsole();\n this.stdout.write(ANSI.SHOW_CURSOR + '\\n');\n\n if (this.logBuffer.length > 0) {\n this.stdout.write(this.logBuffer.join('\\n') + '\\n');\n this.logBuffer = [];\n }\n\n process.removeListener('SIGINT', this.handleSigInt);\n }\n\n private handleSigInt = () => {\n this.restoreConsole();\n this.stdout.write(ANSI.SHOW_CURSOR + '\\n');\n process.exit(0);\n };\n\n private hijackConsole() {\n this.originalConsole = {\n log: console.log,\n warn: console.warn,\n error: console.error\n };\n\n const logger = (_type: string) => (...args: any[]) => {\n // Use util.format for proper string interpolation\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const util = require('util');\n const msg = util.format(...args);\n this.logBuffer.push(msg);\n };\n\n console.log = logger('log');\n console.warn = logger('warn');\n console.error = logger('error');\n }\n\n private restoreConsole() {\n if (this.originalConsole) {\n console.log = this.originalConsole.log;\n console.warn = this.originalConsole.warn;\n console.error = this.originalConsole.error;\n this.originalConsole = null;\n }\n }\n\n /**\n * The core rendering logic using Linear Scan Diffing.\n */\n private render(): void {\n const lines = this.buildLines();\n\n // 1. First Render\n if (this.lastOutputLines.length === 0) {\n this.stdout.write(lines.join('\\n'));\n this.lastOutputLines = lines;\n this.lastOutputHeight = lines.length;\n return;\n }\n\n let output = '';\n\n // 2. Return Cursor to Top\n if (this.lastOutputHeight > 1) {\n output += `\\x1b[${this.lastOutputHeight - 1}A`; // Move up N-1 lines\n }\n output += '\\r'; // Move to start of line\n\n for (let i = 0; i < lines.length; i++) {\n const newLine = lines[i];\n // Write line\n output += ANSI.ERASE_LINE + newLine;\n if (i < lines.length - 1) {\n output += '\\n';\n }\n }\n\n // Clear garbage if shrunk\n if (lines.length < this.lastOutputLines.length) {\n output += ANSI.ERASE_DOWN;\n }\n\n this.stdout.write(output);\n this.lastOutputLines = lines;\n this.lastOutputHeight = lines.length;\n }\n\n private buildLines(): string[] {\n const lines: string[] = [];\n\n for (const task of this.tasks.values()) {\n const icon = this.getIcon(task);\n const title = task.title;\n\n let line = `${icon} ${title}`;\n\n if (task.type === 'progress' && task.total) {\n const bar = generateProgressBar(task.current, task.total);\n line += ` ${ANSI.FG_GRAY}${bar}${ANSI.RESET}`;\n }\n\n if (task.message) {\n line += ` ${ANSI.DIM}- ${task.message}${ANSI.RESET}`;\n }\n\n lines.push(line);\n }\n\n return lines;\n }\n\n private getIcon(task: TaskState): string {\n switch (task.status) {\n case 'pending':\n return `${ANSI.FG_GRAY}${symbols.unchecked}${ANSI.RESET}`;\n case 'loading': {\n const frame = symbols.spinner[this.frameIndex % symbols.spinner.length];\n return `${ANSI.FG_CYAN}${frame}${ANSI.RESET}`;\n }\n case 'success':\n return `${ANSI.FG_GREEN}${symbols.tick}${ANSI.RESET}`;\n case 'error':\n return `${ANSI.FG_RED}${symbols.cross}${ANSI.RESET}`;\n case 'warning':\n return `${ANSI.FG_YELLOW}!${ANSI.RESET}`;\n default:\n return ' ';\n }\n }\n}\n"],"names":["TaskRunner","add","id","config","tasks","set","status","current","update","updates","task","get","Object","assign","start","message","success","error","warning","run","isRunning","stdout","write","ANSI","HIDE_CURSOR","hijackConsole","process","on","handleSigInt","render","timer","setInterval","frameIndex","stop","clearInterval","undefined","restoreConsole","SHOW_CURSOR","logBuffer","length","join","removeListener","originalConsole","log","console","warn","logger","_type","args","util","require","msg","format","push","lines","buildLines","lastOutputLines","lastOutputHeight","output","i","newLine","ERASE_LINE","ERASE_DOWN","values","icon","getIcon","title","line","type","total","bar","generateProgressBar","FG_GRAY","RESET","DIM","symbols","unchecked","frame","spinner","FG_CYAN","FG_GREEN","tick","FG_RED","cross","FG_YELLOW","options","Map","exit","bind"],"mappings":"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"}
package/dist/src/theme.js DELETED
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "theme", {
6
- enumerable: true,
7
- get: function() {
8
- return theme;
9
- }
10
- });
11
- const _ansi = require("./ansi");
12
- const theme = {
13
- main: _ansi.ANSI.FG_CYAN,
14
- success: _ansi.ANSI.FG_GREEN,
15
- error: _ansi.ANSI.FG_RED,
16
- muted: _ansi.ANSI.FG_GRAY,
17
- title: _ansi.ANSI.RESET,
18
- // Add specific syntax colors
19
- syntax: {
20
- key: _ansi.ANSI.FG_CYAN,
21
- string: _ansi.ANSI.FG_GREEN,
22
- number: _ansi.ANSI.FG_YELLOW,
23
- boolean: _ansi.ANSI.FG_MAGENTA,
24
- null: _ansi.ANSI.FG_RED,
25
- punctuation: _ansi.ANSI.FG_WHITE
26
- }
27
- };
28
-
29
- //# sourceMappingURL=theme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/theme.ts"],"sourcesContent":["import { ANSI } from './ansi';\nimport { ThemeConfig } from './types';\n\nexport const theme: ThemeConfig = {\n main: ANSI.FG_CYAN,\n success: ANSI.FG_GREEN,\n error: ANSI.FG_RED,\n muted: ANSI.FG_GRAY,\n title: ANSI.RESET,\n // Add specific syntax colors\n syntax: {\n key: ANSI.FG_CYAN,\n string: ANSI.FG_GREEN,\n number: ANSI.FG_YELLOW,\n boolean: ANSI.FG_MAGENTA,\n null: ANSI.FG_RED,\n punctuation: ANSI.FG_WHITE,\n }\n};"],"names":["theme","main","ANSI","FG_CYAN","success","FG_GREEN","error","FG_RED","muted","FG_GRAY","title","RESET","syntax","key","string","number","FG_YELLOW","boolean","FG_MAGENTA","null","punctuation","FG_WHITE"],"mappings":";;;;+BAGaA;;;eAAAA;;;sBAHQ;AAGd,MAAMA,QAAqB;IAC9BC,MAAMC,UAAI,CAACC,OAAO;IAClBC,SAASF,UAAI,CAACG,QAAQ;IACtBC,OAAOJ,UAAI,CAACK,MAAM;IAClBC,OAAON,UAAI,CAACO,OAAO;IACnBC,OAAOR,UAAI,CAACS,KAAK;IACjB,6BAA6B;IAC7BC,QAAQ;QACJC,KAAKX,UAAI,CAACC,OAAO;QACjBW,QAAQZ,UAAI,CAACG,QAAQ;QACrBU,QAAQb,UAAI,CAACc,SAAS;QACtBC,SAASf,UAAI,CAACgB,UAAU;QACxBC,MAAMjB,UAAI,CAACK,MAAM;QACjBa,aAAalB,UAAI,CAACmB,QAAQ;IAC9B;AACJ"}
package/dist/src/types.js DELETED
@@ -1,8 +0,0 @@
1
- /**
2
- * Type definitions for Mep CLI interactions.
3
- */ "use strict";
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
-
8
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/types.ts"],"sourcesContent":["/**\n * Type definitions for Mep CLI interactions.\n */\n\nexport interface ThemeConfig {\n main: string; // Primary branding color (e.g., cursor, selected item, values)\n success: string; // Success messages, checkmarks\n error: string; // Error messages, cross marks\n muted: string; // Placeholders, help text, unselected items\n title: string; // Questions/Titles\n syntax: {\n key: string; // JSON Key color\n string: string; // JSON String value color\n number: string; // JSON Number value color\n boolean: string; // JSON Boolean value color\n null: string; // JSON Null value color\n punctuation: string; // JSON Punctuation color\n };\n}\n\nexport interface BaseOptions {\n message: string;\n mouse?: boolean;\n}\n\nexport interface MouseEvent {\n name: 'mouse';\n x: number;\n y: number;\n button: number;\n action: 'press' | 'release' | 'move' | 'scroll';\n scroll?: 'up' | 'down';\n shift?: boolean;\n ctrl?: boolean;\n meta?: boolean;\n}\n\nexport interface TextOptions extends BaseOptions {\n placeholder?: string;\n initial?: string;\n validate?: (value: string) => string | boolean | Promise<string | boolean>;\n isPassword?: boolean;\n multiline?: boolean;\n mask?: string;\n suggest?: (input: string) => string | Promise<string>;\n}\n\nexport interface Separator {\n separator: true;\n text?: string;\n}\n\nexport interface SelectChoice<V> {\n title: string;\n value: V;\n description?: string; // Optional hint\n}\n\nexport interface SelectOptions<V> extends BaseOptions {\n choices: (SelectChoice<V> | Separator)[];\n}\n\nexport interface TransferOptions<V> extends BaseOptions {\n source: (string | SelectChoice<V>)[];\n target?: (string | SelectChoice<V>)[];\n}\n\nexport interface CronOptions extends BaseOptions {\n initial?: string;\n placeholder?: string;\n}\n\n// --- Checkbox Types ---\nexport interface CheckboxChoice<V> extends SelectChoice<V> {\n selected?: boolean; // Default checked state\n}\n\nexport interface CheckboxOptions<V> extends BaseOptions {\n choices: CheckboxChoice<V>[];\n min?: number; // Minimum selections required (optional)\n max?: number; // Maximum selections allowed (optional)\n}\n\nexport interface ConfirmOptions extends BaseOptions {\n initial?: boolean;\n}\n\nexport interface NumberOptions extends BaseOptions {\n initial?: number;\n min?: number;\n max?: number;\n step?: number;\n placeholder?: string;\n}\n\nexport interface ToggleOptions extends BaseOptions {\n initial?: boolean;\n activeText?: string;\n inactiveText?: string;\n}\n\nexport interface ListOptions extends BaseOptions {\n placeholder?: string;\n initial?: string[];\n validate?: (value: string[]) => string | boolean | Promise<string | boolean>;\n}\n\nexport interface SliderOptions extends BaseOptions {\n min: number;\n max: number;\n initial?: number;\n step?: number;\n unit?: string;\n}\n\nexport interface RangeOptions extends BaseOptions {\n min: number;\n max: number;\n initial?: [number, number];\n step?: number;\n unit?: string;\n}\n\nexport interface SelectRangeOptions<V> extends Omit<SelectOptions<V>, 'initial'> {\n initial?: [number, number]; // Start and End indices\n}\n\nexport interface RatingOptions extends BaseOptions {\n min?: number;\n max?: number;\n initial?: number;\n}\n\nexport interface DateOptions extends BaseOptions {\n initial?: Date;\n min?: Date;\n max?: Date;\n}\n\nexport interface FileOptions extends BaseOptions {\n basePath?: string;\n extensions?: string[];\n onlyDirectories?: boolean;\n}\n\nexport interface MultiSelectOptions<V> extends CheckboxOptions<V> {\n // Inherits choices, min, max\n}\n\nexport interface AutocompleteOptions<V> extends BaseOptions {\n suggest: (input: string) => Promise<SelectChoice<V>[]>;\n limit?: number; // defaults to 10\n fallback?: string; // Message when no results\n initial?: string; // Initial query\n}\n\nexport interface SortOptions extends BaseOptions {\n items: string[];\n}\n\nexport interface EditorOptions extends BaseOptions {\n initial?: string;\n extension?: string;\n waitUserInput?: boolean;\n}\n\nexport interface TableRow<V> {\n value: V;\n row: string[];\n}\n\nexport interface TableOptions<V> extends BaseOptions {\n columns: string[];\n data: TableRow<V>[];\n rows?: number; // display rows\n}\n\nexport interface TreeNode<V> {\n title: string;\n value: V;\n children?: TreeNode<V>[];\n expanded?: boolean;\n disabled?: boolean;\n selected?: boolean | 'indeterminate';\n}\n\nexport interface TreeOptions<V> extends BaseOptions {\n data: TreeNode<V>[];\n initial?: V;\n indent?: number;\n}\n\nexport interface KeypressOptions extends BaseOptions {\n keys?: string[];\n showInvisible?: boolean;\n}\n\nexport interface FormField {\n name: string;\n message: string;\n initial?: string;\n validate?: (value: string) => string | boolean | Promise<string | boolean>;\n}\n\nexport interface FormOptions extends BaseOptions {\n fields: FormField[];\n}\n\nexport interface SnippetOptions extends BaseOptions {\n template: string;\n values?: Record<string, string>;\n fields?: Record<string, {\n message?: string;\n validate?: (value: string) => string | boolean;\n }>;\n}\n\nexport interface SpamOptions extends BaseOptions {\n threshold: number;\n spamKey?: string;\n decay?: boolean;\n}\n\nexport interface WaitOptions extends BaseOptions {\n seconds: number;\n autoSubmit?: boolean;\n}\n\nexport interface CodeOptions extends BaseOptions {\n template: string;\n language?: 'json' | 'env' | 'toml' | 'csv' | 'sh' | 'bash' | 'zsh' | 'properties' | 'props' | 'conf';\n /**\n * Enable syntax highlighting (Experimental).\n * @default true\n */\n highlight?: boolean;\n /**\n * Initial values for variables in the template.\n */\n values?: Record<string, string>;\n}\n\nexport interface TreeSelectNode<V> {\n title: string;\n value: V;\n children?: TreeSelectNode<V>[];\n expanded?: boolean;\n disabled?: boolean;\n selected?: boolean | 'indeterminate';\n}\n\nexport interface TreeSelectOptions<V> extends BaseOptions {\n data: TreeSelectNode<V>[];\n initial?: V[];\n indent?: number;\n}\n\nexport interface ColorOptions extends BaseOptions {\n initial?: string; // Hex support (e.g. \"#3B82F6\")\n format?: 'hex' | 'rgb' | 'hsl';\n}\n\nexport interface GridOptions extends BaseOptions {\n rows: string[];\n columns: string[];\n initial?: boolean[][]; // Initial selected state\n}\n\nexport interface SortGridOptions extends BaseOptions {\n data: string[][];\n}\n\nexport interface CalendarOptions extends BaseOptions {\n mode?: 'single' | 'range';\n multiple?: boolean; // Allow picking multiple dates or multiple ranges\n initial?: Date | [Date, Date]; // Single date or Range tuple\n min?: Date;\n max?: Date;\n weekStart?: 0 | 1; // 0 = Sunday, 1 = Monday\n}\n\n// --- New Prompts ---\nexport interface MapOptions extends BaseOptions {\n initial?: Record<string, string>;\n suggestions?: string[];\n}\n\nexport interface SemVerOptions extends BaseOptions {\n currentVersion: string;\n}\n\nexport interface IPOptions extends BaseOptions {\n initial?: string;\n}\n\nexport interface OTPOptions extends BaseOptions {\n length?: number;\n mask?: string;\n secure?: boolean;\n placeholder?: string;\n}\n\nexport interface QuizSelectOptions<V> extends SelectOptions<V> {\n correctValue: V;\n explanation?: string;\n}\n\nexport interface QuizTextOptions extends TextOptions {\n verify?: (value: string) => boolean | Promise<boolean>;\n correctAnswer: string;\n explanation?: string;\n}\n\n// --- Kanban Types ---\nexport interface KanbanItem {\n id: string;\n title: string;\n [key: string]: any;\n}\n\nexport interface KanbanColumn<V extends KanbanItem> {\n id: string;\n title: string;\n items: V[];\n}\n\nexport interface KanbanOptions<V extends KanbanItem> extends BaseOptions {\n columns: KanbanColumn<V>[];\n}\n\n// --- Time Scroller Types ---\nexport interface TimeOptions extends BaseOptions {\n format?: '12h' | '24h';\n step?: number;\n initial?: Date | string;\n}\n\n// --- Heatmap Types ---\nexport interface HeatmapLegend {\n value: number;\n char: string;\n color: (str: string) => string;\n}\n\nexport interface HeatmapOptions extends BaseOptions {\n rows: string[];\n columns: string[];\n legend: HeatmapLegend[];\n initial?: number[][];\n}\n\nexport interface ByteOptions extends BaseOptions {\n initial?: number; // Field initial in bytes\n min?: number; // Min bytes\n max?: number; // Max bytes\n}\n\n// --- Slot Machine Types ---\nexport interface SlotOptions extends BaseOptions {\n choices: string[];\n rows?: number; // Default: 3\n initial?: number; // Default: 0\n}\n\n// --- Rhythm Gauge Types ---\nexport interface GaugeOptions extends BaseOptions {\n theme?: Partial<ThemeConfig>;\n width?: number; // Default: 40\n /** Safe zone width as a percentage (0-1) or absolute character count (>1). Default: 0.2 (20%) */\n safeZone?: number;\n}\n\n// --- Calculator Types ---\nexport interface CalculatorOptions extends BaseOptions {\n initial?: string;\n variables?: Record<string, number>;\n precision?: number;\n placeholder?: string;\n}\n\n// --- Emoji Types ---\nexport interface EmojiItem {\n char: string;\n name: string;\n description?: string;\n}\n\nexport interface EmojiOptions extends BaseOptions {\n emojis: EmojiItem[];\n recent?: string[]; // Array of emoji names\n cols?: number;\n}\n\n// --- Match Types ---\nexport interface MatchItem {\n id: string;\n label: string;\n value?: any;\n}\n\nexport interface MatchOptions extends BaseOptions {\n source: (string | MatchItem)[];\n target: (string | MatchItem)[];\n constraints?: {\n required?: boolean; // Must link all source items?\n oneToMany?: boolean; // Can a target receive multiple sources?\n };\n}\n\n// --- Diff Types ---\nexport interface DiffOptions extends BaseOptions {\n original: string;\n modified: string;\n context?: number;\n mode?: 'inline' | 'split';\n}\n\n// --- Dial Types ---\nexport interface DialOptions extends BaseOptions {\n min: number;\n max: number;\n step?: number;\n radius?: number;\n pointerSymbol?: string;\n initial?: number;\n}\n\n// --- Draw Types ---\nexport interface DrawOptions extends BaseOptions {\n width: number; // Width in characters\n height: number; // Height in characters\n exportType?: 'matrix' | 'text';\n initial?: boolean[][];\n}\n\n// --- Multi-Column Select Types ---\nexport interface MultiColumnSelectOptions<V> extends SelectOptions<V> {\n cols?: number | 'auto';\n}\n\n// --- Fuzzy Match Types ---\nexport interface FuzzySelectOptions<V> extends SelectOptions<V> {\n // Inherits choices\n}\n\n// --- Miller Columns Types ---\nexport interface MillerOptions<V> extends BaseOptions {\n data: TreeNode<V>[];\n initial?: V[]; // Path of values to pre-select\n separator?: string;\n}\n\n// --- Pattern Lock Types ---\nexport interface PatternOptions extends BaseOptions {\n rows?: number; // Default 3\n cols?: number; // Default 3\n nodeChar?: string; // Default ●\n lineChar?: string; // Default based on symbols\n}\n\n// --- Region/Map Selector Types ---\nexport interface MapRegion {\n id: string;\n label: string;\n x: number;\n y: number;\n description?: string;\n}\n\nexport interface RegionOptions extends BaseOptions {\n mapArt: string;\n regions: MapRegion[];\n initial?: string; // Initial selected region ID\n}\n\n// --- Spreadsheet Types ---\nexport interface SpreadsheetColumn {\n name: string;\n key: string;\n width?: number; // Fixed width, or auto if undefined\n editable?: boolean;\n}\n\nexport interface SpreadsheetOptions extends BaseOptions {\n columns: SpreadsheetColumn[];\n data: Record<string, any>[];\n rows?: number; // Viewport height\n keyBindings?: {\n save?: string[];\n cancel?: string[];\n };\n}\n\n// --- Scroll Prompt Types ---\nexport interface ScrollOptions extends BaseOptions {\n content: string;\n height?: number; // Default: 10-15\n requireScrollToBottom?: boolean;\n}\n\n// --- Breadcrumb Types ---\nexport interface BreadcrumbOptions extends BaseOptions {\n root?: string;\n separator?: string;\n showHidden?: boolean;\n}\n\n// --- Schedule Types ---\nexport interface ScheduleTask {\n name: string;\n start: Date;\n end: Date;\n metadata?: any;\n}\n\nexport interface ScheduleOptions extends BaseOptions {\n data: ScheduleTask[];\n}\n\n// --- Data Inspector Types ---\nexport interface DataInspectorOptions extends BaseOptions {\n data: any;\n maxDepth?: number;\n}\n\n// --- Exec Types ---\nexport interface ExecOptions extends BaseOptions {\n command: string;\n timeout?: number; // ms, default 0 (infinite)\n cwd?: string;\n streamOutput?: boolean; // default false\n}\n\n// --- Shortcut Types ---\nexport interface ShortcutResult {\n name: string;\n ctrl: boolean;\n shift: boolean;\n meta: boolean;\n sequence: string;\n}\n\nexport interface ShortcutOptions extends BaseOptions {\n initial?: ShortcutResult;\n}\n\n// --- Seat Types ---\nexport interface SeatOptions extends BaseOptions {\n layout: string[];\n rows?: string[];\n cols?: string[];\n initial?: string[];\n multiple?: boolean;\n}\n\n// --- Dependency Types ---\nexport interface DependencyItem<V> extends CheckboxChoice<V> {\n dependsOn?: V[]; // Values this item depends on\n triggers?: V[]; // Values this item triggers ON\n conflictsWith?: V[]; // Values this item forces OFF\n}\n\nexport interface DependencyOptions<V> extends BaseOptions {\n choices: DependencyItem<V>[];\n min?: number;\n max?: number;\n autoResolve?: boolean; // Default true: automatically check dependencies\n}\n\n// --- License Types ---\nexport interface License {\n id: string; // SPDX\n name: string;\n description: string;\n permissions: string[];\n conditions: string[];\n limitations: string[];\n}\n\nexport interface LicenseOptions extends BaseOptions {\n defaultLicense?: string;\n}\n\n// --- Regex Types ---\nexport interface RegexOptions extends BaseOptions {\n tests: string[];\n flags?: string;\n}\n\n// --- Box Model Types ---\nexport interface BoxOptions extends BaseOptions {\n initial?: number | { top: number; right: number; bottom: number; left: number };\n min?: number;\n max?: number;\n step?: number;\n}\n\n// --- Phone Types ---\nexport interface PhoneOptions extends BaseOptions {\n defaultCountry?: string; // ISO Code (e.g., 'VN')\n placeholder?: string; // Custom placeholder if no default mask\n strict?: boolean; // Enforce strict mask length\n validate?: (value: string) => string | boolean | Promise<string | boolean>;\n}\n\n// --- TaskRunner Types ---\n\nexport type TaskStatus = 'pending' | 'loading' | 'success' | 'error' | 'warning';\n\nexport interface TaskConfig {\n id: string;\n title: string;\n type?: 'spinner' | 'progress'; // Defaults to spinner\n total?: number; // Only used for progress bar\n}\n\n// Internal state of each Task\nexport interface TaskState extends TaskConfig {\n status: TaskStatus;\n current: number; // Progress value\n message?: string; // Secondary message (e.g. \"Downloading 5MB/s...\")\n}\n\nexport interface TaskGroupOptions {\n concurrency?: number; // (Optional) Limit concurrent tasks (for Pipeline)\n renderer?: 'default' | 'minimal'; // Minimal for CI environments\n}\n"],"names":[],"mappings":"AAAA;;CAEC"}