mepcli 1.3.2 → 2.0.0-beta.1

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 (291) hide show
  1. package/README.md +11 -2
  2. package/dist/{ansi.js → src/ansi.js} +17 -9
  3. package/dist/src/ansi.js.map +1 -0
  4. package/dist/{base.js → src/base.js} +82 -70
  5. package/dist/src/base.js.map +1 -0
  6. package/dist/{core.js → src/core.js} +266 -320
  7. package/dist/src/core.js.map +1 -0
  8. package/dist/src/data/countries.js +569 -0
  9. package/dist/src/data/countries.js.map +1 -0
  10. package/dist/src/data/licenses.js +480 -0
  11. package/dist/src/data/licenses.js.map +1 -0
  12. package/dist/{highlight.js → src/highlight.js} +77 -69
  13. package/dist/src/highlight.js.map +1 -0
  14. package/dist/src/index.js +66 -0
  15. package/dist/src/index.js.map +1 -0
  16. package/dist/{input.js → src/input.js} +47 -41
  17. package/dist/src/input.js.map +1 -0
  18. package/dist/src/pipeline.js +273 -0
  19. package/dist/src/pipeline.js.map +1 -0
  20. package/dist/{prompts → src/prompts}/autocomplete.js +58 -57
  21. package/dist/src/prompts/autocomplete.js.map +1 -0
  22. package/dist/{prompts → src/prompts}/box.js +86 -53
  23. package/dist/src/prompts/box.js.map +1 -0
  24. package/dist/{prompts → src/prompts}/breadcrumb-search.js +110 -98
  25. package/dist/src/prompts/breadcrumb-search.js.map +1 -0
  26. package/dist/{prompts → src/prompts}/breadcrumb.js +126 -121
  27. package/dist/src/prompts/breadcrumb.js.map +1 -0
  28. package/dist/{prompts → src/prompts}/byte.js +69 -52
  29. package/dist/src/prompts/byte.js.map +1 -0
  30. package/dist/{prompts → src/prompts}/calculator.js +79 -56
  31. package/dist/src/prompts/calculator.js.map +1 -0
  32. package/dist/{prompts → src/prompts}/calendar.js +167 -127
  33. package/dist/src/prompts/calendar.js.map +1 -0
  34. package/dist/{prompts → src/prompts}/checkbox.js +53 -49
  35. package/dist/src/prompts/checkbox.js.map +1 -0
  36. package/dist/{prompts → src/prompts}/code.js +88 -76
  37. package/dist/src/prompts/code.js.map +1 -0
  38. package/dist/{prompts → src/prompts}/color.js +68 -50
  39. package/dist/src/prompts/color.js.map +1 -0
  40. package/dist/{prompts → src/prompts}/confirm.js +22 -15
  41. package/dist/src/prompts/confirm.js.map +1 -0
  42. package/dist/{prompts → src/prompts}/connection-string.js +59 -36
  43. package/dist/src/prompts/connection-string.js.map +1 -0
  44. package/dist/{prompts → src/prompts}/cron.js +90 -59
  45. package/dist/src/prompts/cron.js.map +1 -0
  46. package/dist/src/prompts/curl-utils.js +71 -0
  47. package/dist/src/prompts/curl-utils.js.map +1 -0
  48. package/dist/{prompts → src/prompts}/curl.js +153 -132
  49. package/dist/src/prompts/curl.js.map +1 -0
  50. package/dist/{prompts → src/prompts}/data-inspector.js +96 -91
  51. package/dist/src/prompts/data-inspector.js.map +1 -0
  52. package/dist/{prompts → src/prompts}/date.js +64 -57
  53. package/dist/src/prompts/date.js.map +1 -0
  54. package/dist/{prompts → src/prompts}/dependency.js +84 -80
  55. package/dist/src/prompts/dependency.js.map +1 -0
  56. package/dist/{prompts → src/prompts}/dial.js +49 -35
  57. package/dist/src/prompts/dial.js.map +1 -0
  58. package/dist/src/prompts/diff.js +118 -0
  59. package/dist/src/prompts/diff.js.map +1 -0
  60. package/dist/{prompts → src/prompts}/draw.js +83 -80
  61. package/dist/src/prompts/draw.js.map +1 -0
  62. package/dist/src/prompts/editor.js +234 -0
  63. package/dist/src/prompts/editor.js.map +1 -0
  64. package/dist/{prompts → src/prompts}/emoji.js +80 -82
  65. package/dist/src/prompts/emoji.js.map +1 -0
  66. package/dist/{prompts → src/prompts}/exec.js +60 -46
  67. package/dist/src/prompts/exec.js.map +1 -0
  68. package/dist/src/prompts/file.js +217 -0
  69. package/dist/src/prompts/file.js.map +1 -0
  70. package/dist/{prompts → src/prompts}/form.js +63 -54
  71. package/dist/src/prompts/form.js.map +1 -0
  72. package/dist/{prompts → src/prompts}/fuzzy-multi-column.js +65 -53
  73. package/dist/src/prompts/fuzzy-multi-column.js.map +1 -0
  74. package/dist/{prompts → src/prompts}/fuzzy.js +66 -55
  75. package/dist/src/prompts/fuzzy.js.map +1 -0
  76. package/dist/src/prompts/gauge.js +137 -0
  77. package/dist/src/prompts/gauge.js.map +1 -0
  78. package/dist/{prompts → src/prompts}/grid.js +70 -57
  79. package/dist/src/prompts/grid.js.map +1 -0
  80. package/dist/{prompts → src/prompts}/heatmap.js +70 -64
  81. package/dist/src/prompts/heatmap.js.map +1 -0
  82. package/dist/{prompts → src/prompts}/ip.js +56 -36
  83. package/dist/src/prompts/ip.js.map +1 -0
  84. package/dist/{prompts → src/prompts}/kanban.js +63 -58
  85. package/dist/src/prompts/kanban.js.map +1 -0
  86. package/dist/src/prompts/keypress.js +54 -0
  87. package/dist/src/prompts/keypress.js.map +1 -0
  88. package/dist/src/prompts/license.js +144 -0
  89. package/dist/src/prompts/license.js.map +1 -0
  90. package/dist/{prompts → src/prompts}/list.js +46 -31
  91. package/dist/src/prompts/list.js.map +1 -0
  92. package/dist/{prompts → src/prompts}/map.js +93 -77
  93. package/dist/src/prompts/map.js.map +1 -0
  94. package/dist/{prompts → src/prompts}/match.js +91 -95
  95. package/dist/src/prompts/match.js.map +1 -0
  96. package/dist/{prompts → src/prompts}/miller.js +74 -67
  97. package/dist/src/prompts/miller.js.map +1 -0
  98. package/dist/{prompts → src/prompts}/multi-column-select.js +54 -44
  99. package/dist/src/prompts/multi-column-select.js.map +1 -0
  100. package/dist/{prompts → src/prompts}/multi-range.js +70 -52
  101. package/dist/src/prompts/multi-range.js.map +1 -0
  102. package/dist/{prompts → src/prompts}/multi-select.js +67 -58
  103. package/dist/src/prompts/multi-select.js.map +1 -0
  104. package/dist/{prompts → src/prompts}/number.js +51 -39
  105. package/dist/src/prompts/number.js.map +1 -0
  106. package/dist/{prompts → src/prompts}/otp.js +43 -27
  107. package/dist/src/prompts/otp.js.map +1 -0
  108. package/dist/{prompts → src/prompts}/pattern.js +74 -71
  109. package/dist/src/prompts/pattern.js.map +1 -0
  110. package/dist/{prompts → src/prompts}/phone.js +107 -118
  111. package/dist/src/prompts/phone.js.map +1 -0
  112. package/dist/src/prompts/quiz-select.js +114 -0
  113. package/dist/src/prompts/quiz-select.js.map +1 -0
  114. package/dist/src/prompts/quiz-text.js +98 -0
  115. package/dist/src/prompts/quiz-text.js.map +1 -0
  116. package/dist/{prompts → src/prompts}/range.js +85 -61
  117. package/dist/src/prompts/range.js.map +1 -0
  118. package/dist/{prompts → src/prompts}/rating.js +29 -24
  119. package/dist/src/prompts/rating.js.map +1 -0
  120. package/dist/{prompts → src/prompts}/regex.js +50 -36
  121. package/dist/src/prompts/regex.js.map +1 -0
  122. package/dist/{prompts → src/prompts}/region.js +62 -56
  123. package/dist/src/prompts/region.js.map +1 -0
  124. package/dist/{prompts → src/prompts}/schedule.js +82 -75
  125. package/dist/src/prompts/schedule.js.map +1 -0
  126. package/dist/{prompts → src/prompts}/scroll.js +61 -58
  127. package/dist/src/prompts/scroll.js.map +1 -0
  128. package/dist/src/prompts/seat.js +164 -0
  129. package/dist/src/prompts/seat.js.map +1 -0
  130. package/dist/{prompts → src/prompts}/select-range.js +58 -46
  131. package/dist/src/prompts/select-range.js.map +1 -0
  132. package/dist/{prompts → src/prompts}/select.js +65 -66
  133. package/dist/src/prompts/select.js.map +1 -0
  134. package/dist/{prompts → src/prompts}/semver.js +24 -13
  135. package/dist/src/prompts/semver.js.map +1 -0
  136. package/dist/src/prompts/shortcut.js +133 -0
  137. package/dist/src/prompts/shortcut.js.map +1 -0
  138. package/dist/{prompts → src/prompts}/slider.js +28 -23
  139. package/dist/src/prompts/slider.js.map +1 -0
  140. package/dist/src/prompts/slot.js +117 -0
  141. package/dist/src/prompts/slot.js.map +1 -0
  142. package/dist/{prompts → src/prompts}/snippet.js +82 -61
  143. package/dist/src/prompts/snippet.js.map +1 -0
  144. package/dist/{prompts → src/prompts}/sort-grid.js +64 -59
  145. package/dist/src/prompts/sort-grid.js.map +1 -0
  146. package/dist/{prompts → src/prompts}/sort.js +59 -49
  147. package/dist/src/prompts/sort.js.map +1 -0
  148. package/dist/src/prompts/spam.js +80 -0
  149. package/dist/src/prompts/spam.js.map +1 -0
  150. package/dist/{prompts → src/prompts}/spreadsheet.js +71 -70
  151. package/dist/src/prompts/spreadsheet.js.map +1 -0
  152. package/dist/{prompts → src/prompts}/table.js +52 -38
  153. package/dist/src/prompts/table.js.map +1 -0
  154. package/dist/{prompts → src/prompts}/text.js +74 -70
  155. package/dist/src/prompts/text.js.map +1 -0
  156. package/dist/{prompts → src/prompts}/time.js +105 -96
  157. package/dist/src/prompts/time.js.map +1 -0
  158. package/dist/src/prompts/toggle.js +53 -0
  159. package/dist/src/prompts/toggle.js.map +1 -0
  160. package/dist/{prompts → src/prompts}/transfer.js +71 -67
  161. package/dist/src/prompts/transfer.js.map +1 -0
  162. package/dist/{prompts → src/prompts}/tree-select.js +83 -86
  163. package/dist/src/prompts/tree-select.js.map +1 -0
  164. package/dist/{prompts → src/prompts}/tree.js +69 -67
  165. package/dist/src/prompts/tree.js.map +1 -0
  166. package/dist/src/prompts/wait.js +79 -0
  167. package/dist/src/prompts/wait.js.map +1 -0
  168. package/dist/src/spinner.js +105 -0
  169. package/dist/src/spinner.js.map +1 -0
  170. package/dist/{symbols.js → src/symbols.js} +32 -7
  171. package/dist/src/symbols.js.map +1 -0
  172. package/dist/{tasks.js → src/tasks.js} +104 -79
  173. package/dist/src/tasks.js.map +1 -0
  174. package/dist/src/theme.js +29 -0
  175. package/dist/src/theme.js.map +1 -0
  176. package/dist/src/types.js +8 -0
  177. package/dist/src/types.js.map +1 -0
  178. package/dist/{utils.js → src/utils.js} +196 -152
  179. package/dist/src/utils.js.map +1 -0
  180. package/package.json +16 -13
  181. package/dist/ansi.d.ts +0 -36
  182. package/dist/base.d.ts +0 -60
  183. package/dist/core.d.ts +0 -1072
  184. package/dist/data/countries.d.ts +0 -2
  185. package/dist/data/countries.js +0 -105
  186. package/dist/data/licenses.d.ts +0 -2
  187. package/dist/data/licenses.js +0 -109
  188. package/dist/highlight.d.ts +0 -7
  189. package/dist/index.d.ts +0 -48
  190. package/dist/index.js +0 -64
  191. package/dist/input.d.ts +0 -14
  192. package/dist/pipeline.d.ts +0 -39
  193. package/dist/pipeline.js +0 -54
  194. package/dist/prompts/autocomplete.d.ts +0 -22
  195. package/dist/prompts/box.d.ts +0 -21
  196. package/dist/prompts/breadcrumb-search.d.ts +0 -14
  197. package/dist/prompts/breadcrumb.d.ts +0 -32
  198. package/dist/prompts/byte.d.ts +0 -13
  199. package/dist/prompts/calculator.d.ts +0 -17
  200. package/dist/prompts/calendar.d.ts +0 -33
  201. package/dist/prompts/checkbox.d.ts +0 -13
  202. package/dist/prompts/code.d.ts +0 -19
  203. package/dist/prompts/color.d.ts +0 -14
  204. package/dist/prompts/confirm.d.ts +0 -8
  205. package/dist/prompts/connection-string.d.ts +0 -18
  206. package/dist/prompts/cron.d.ts +0 -13
  207. package/dist/prompts/curl-utils.d.ts +0 -25
  208. package/dist/prompts/curl-utils.js +0 -41
  209. package/dist/prompts/curl.d.ts +0 -41
  210. package/dist/prompts/data-inspector.d.ts +0 -22
  211. package/dist/prompts/date.d.ts +0 -12
  212. package/dist/prompts/dependency.d.ts +0 -16
  213. package/dist/prompts/dial.d.ts +0 -10
  214. package/dist/prompts/diff.d.ts +0 -10
  215. package/dist/prompts/diff.js +0 -101
  216. package/dist/prompts/draw.d.ts +0 -20
  217. package/dist/prompts/editor.d.ts +0 -14
  218. package/dist/prompts/editor.js +0 -203
  219. package/dist/prompts/emoji.d.ts +0 -18
  220. package/dist/prompts/exec.d.ts +0 -17
  221. package/dist/prompts/file.d.ts +0 -21
  222. package/dist/prompts/file.js +0 -210
  223. package/dist/prompts/form.d.ts +0 -18
  224. package/dist/prompts/fuzzy-multi-column.d.ts +0 -12
  225. package/dist/prompts/fuzzy.d.ts +0 -12
  226. package/dist/prompts/gauge.d.ts +0 -21
  227. package/dist/prompts/gauge.js +0 -130
  228. package/dist/prompts/grid.d.ts +0 -14
  229. package/dist/prompts/heatmap.d.ts +0 -13
  230. package/dist/prompts/ip.d.ts +0 -11
  231. package/dist/prompts/kanban.d.ts +0 -17
  232. package/dist/prompts/keypress.d.ts +0 -7
  233. package/dist/prompts/keypress.js +0 -55
  234. package/dist/prompts/license.d.ts +0 -9
  235. package/dist/prompts/license.js +0 -105
  236. package/dist/prompts/list.d.ts +0 -9
  237. package/dist/prompts/map.d.ts +0 -17
  238. package/dist/prompts/match.d.ts +0 -19
  239. package/dist/prompts/miller.d.ts +0 -15
  240. package/dist/prompts/multi-column-select.d.ts +0 -10
  241. package/dist/prompts/multi-range.d.ts +0 -9
  242. package/dist/prompts/multi-select.d.ts +0 -15
  243. package/dist/prompts/number.d.ts +0 -11
  244. package/dist/prompts/otp.d.ts +0 -10
  245. package/dist/prompts/pattern.d.ts +0 -22
  246. package/dist/prompts/phone.d.ts +0 -41
  247. package/dist/prompts/quiz-select.d.ts +0 -10
  248. package/dist/prompts/quiz-select.js +0 -104
  249. package/dist/prompts/quiz-text.d.ts +0 -11
  250. package/dist/prompts/quiz-text.js +0 -82
  251. package/dist/prompts/range.d.ts +0 -9
  252. package/dist/prompts/rating.d.ts +0 -8
  253. package/dist/prompts/regex.d.ts +0 -13
  254. package/dist/prompts/region.d.ts +0 -11
  255. package/dist/prompts/schedule.d.ts +0 -20
  256. package/dist/prompts/scroll.d.ts +0 -13
  257. package/dist/prompts/seat.d.ts +0 -17
  258. package/dist/prompts/seat.js +0 -165
  259. package/dist/prompts/select-range.d.ts +0 -8
  260. package/dist/prompts/select.d.ts +0 -15
  261. package/dist/prompts/semver.d.ts +0 -6
  262. package/dist/prompts/shortcut.d.ts +0 -9
  263. package/dist/prompts/shortcut.js +0 -135
  264. package/dist/prompts/slider.d.ts +0 -8
  265. package/dist/prompts/slot.d.ts +0 -16
  266. package/dist/prompts/slot.js +0 -107
  267. package/dist/prompts/snippet.d.ts +0 -19
  268. package/dist/prompts/sort-grid.d.ts +0 -16
  269. package/dist/prompts/sort.d.ts +0 -14
  270. package/dist/prompts/spam.d.ts +0 -17
  271. package/dist/prompts/spam.js +0 -62
  272. package/dist/prompts/spreadsheet.d.ts +0 -21
  273. package/dist/prompts/table.d.ts +0 -14
  274. package/dist/prompts/text.d.ts +0 -17
  275. package/dist/prompts/time.d.ts +0 -12
  276. package/dist/prompts/toggle.d.ts +0 -8
  277. package/dist/prompts/toggle.js +0 -47
  278. package/dist/prompts/transfer.d.ts +0 -18
  279. package/dist/prompts/tree-select.d.ts +0 -31
  280. package/dist/prompts/tree.d.ts +0 -20
  281. package/dist/prompts/wait.d.ts +0 -18
  282. package/dist/prompts/wait.js +0 -62
  283. package/dist/spinner.d.ts +0 -33
  284. package/dist/spinner.js +0 -89
  285. package/dist/symbols.d.ts +0 -33
  286. package/dist/tasks.d.ts +0 -57
  287. package/dist/theme.d.ts +0 -2
  288. package/dist/theme.js +0 -20
  289. package/dist/types.d.ts +0 -503
  290. package/dist/types.js +0 -5
  291. package/dist/utils.d.ts +0 -81
@@ -1,14 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { ColorOptions, MouseEvent } from '../types';
3
- export declare class ColorPrompt extends Prompt<string, ColorOptions> {
4
- private rgb;
5
- private activeChannel;
6
- private inputBuffer;
7
- constructor(options: ColorOptions);
8
- private parseHex;
9
- private rgbToHex;
10
- private getBgColorCode;
11
- protected render(_firstRender: boolean): void;
12
- protected handleInput(char: string, _key: Buffer): void;
13
- protected handleMouse(event: MouseEvent): void;
14
- }
@@ -1,8 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { ConfirmOptions, MouseEvent } from '../types';
3
- export declare class ConfirmPrompt extends Prompt<boolean, ConfirmOptions> {
4
- constructor(options: ConfirmOptions);
5
- protected render(_firstRender: boolean): void;
6
- protected handleInput(char: string): void;
7
- protected handleMouse(event: MouseEvent): void;
8
- }
@@ -1,18 +0,0 @@
1
- export interface ConnectionStringOptions {
2
- message: string;
3
- protocols?: string[];
4
- defaults?: Record<string, number>;
5
- }
6
- export interface ConnectionStringResult {
7
- raw: string;
8
- parts: {
9
- protocol: string;
10
- host?: string;
11
- port?: number;
12
- user?: string;
13
- password?: string;
14
- database?: string;
15
- filePath?: string;
16
- };
17
- }
18
- export declare function connectionString(options: ConnectionStringOptions): Promise<ConnectionStringResult>;
@@ -1,13 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { CronOptions, MouseEvent } from '../types';
3
- export declare class CronPrompt extends Prompt<string, CronOptions> {
4
- private fields;
5
- private activeField;
6
- private buffer;
7
- constructor(options: CronOptions);
8
- private get currentConfig();
9
- protected render(_firstRender: boolean): void;
10
- private validateCurrentField;
11
- protected handleInput(char: string): void;
12
- protected handleMouse(event: MouseEvent): void;
13
- }
@@ -1,25 +0,0 @@
1
- export type ShellType = 'bash' | 'powershell' | 'cmd';
2
- export interface ShellStrategy {
3
- binary: string;
4
- wrapper: string;
5
- continuation: string;
6
- escape(value: string): string;
7
- }
8
- export declare class BashStrategy implements ShellStrategy {
9
- readonly binary = "curl";
10
- readonly wrapper = "'";
11
- readonly continuation = " \\";
12
- escape(value: string): string;
13
- }
14
- export declare class PowerShellStrategy implements ShellStrategy {
15
- readonly binary = "curl.exe";
16
- readonly wrapper = "'";
17
- readonly continuation = " `";
18
- escape(value: string): string;
19
- }
20
- export declare class CmdStrategy implements ShellStrategy {
21
- readonly binary = "curl";
22
- readonly wrapper = "\"";
23
- readonly continuation = " ^";
24
- escape(value: string): string;
25
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CmdStrategy = exports.PowerShellStrategy = exports.BashStrategy = void 0;
4
- class BashStrategy {
5
- constructor() {
6
- this.binary = 'curl';
7
- this.wrapper = "'";
8
- this.continuation = ' \\';
9
- }
10
- escape(value) {
11
- // e.g. "It's me" -> 'It'\''s me'
12
- return `'${value.replace(/'/g, "'\\''")}'`;
13
- }
14
- }
15
- exports.BashStrategy = BashStrategy;
16
- class PowerShellStrategy {
17
- constructor() {
18
- this.binary = 'curl.exe';
19
- this.wrapper = "'";
20
- this.continuation = ' `';
21
- }
22
- escape(value) {
23
- // e.g. "It's me" -> 'It''s me'
24
- return `'${value.replace(/'/g, "''")}'`;
25
- }
26
- }
27
- exports.PowerShellStrategy = PowerShellStrategy;
28
- class CmdStrategy {
29
- constructor() {
30
- this.binary = 'curl';
31
- this.wrapper = '"';
32
- this.continuation = ' ^';
33
- }
34
- escape(value) {
35
- // e.g. {"key": "value"} -> "{\"key\": \"value\"}"
36
- // e.g. value with " -> "value with \""
37
- const flattened = value.replace(/[\r\n]+/g, ' ');
38
- return `"${flattened.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
39
- }
40
- }
41
- exports.CmdStrategy = CmdStrategy;
@@ -1,41 +0,0 @@
1
- import { Prompt } from '../base';
2
- export interface CurlOptions {
3
- message: string;
4
- defaultMethod?: string;
5
- defaultUrl?: string;
6
- defaultHeaders?: Record<string, string>;
7
- defaultBody?: string;
8
- }
9
- export interface CurlResult {
10
- method: string;
11
- url: string;
12
- headers: Record<string, string>;
13
- body?: string;
14
- command: string;
15
- }
16
- export declare class CurlPrompt extends Prompt<CurlResult, CurlOptions> {
17
- private section;
18
- private methodIndex;
19
- private urlSegments;
20
- private urlCursor;
21
- private headers;
22
- private body;
23
- private lastLinesUp;
24
- private shell;
25
- private strategies;
26
- constructor(options: CurlOptions);
27
- private get currentMethod();
28
- private get hasBody();
29
- private get url();
30
- private cycleShell;
31
- private generateCommand;
32
- protected render(firstRender: boolean): void;
33
- protected cleanup(): void;
34
- protected handleInput(char: string, _buffer: Buffer): void;
35
- private handleUrlInput;
36
- private cycleSection;
37
- private clear;
38
- private editHeaders;
39
- private editBody;
40
- private submitResult;
41
- }
@@ -1,22 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { DataInspectorOptions, MouseEvent } from '../types';
3
- export declare class DataInspectorPrompt extends Prompt<any, DataInspectorOptions> {
4
- private cursor;
5
- private flatList;
6
- private expandedPaths;
7
- private scrollTop;
8
- private readonly pageSize;
9
- private editMode;
10
- private editBuffer;
11
- private rootData;
12
- constructor(options: DataInspectorOptions);
13
- private getType;
14
- private recalculateFlatList;
15
- private traverse;
16
- private getValueColor;
17
- private formatValue;
18
- protected render(_firstRender: boolean): void;
19
- protected handleInput(char: string, key: Buffer): void;
20
- private handleEditInput;
21
- protected handleMouse(event: MouseEvent): void;
22
- }
@@ -1,12 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { DateOptions, MouseEvent } from '../types';
3
- export declare class DatePrompt extends Prompt<Date, DateOptions> {
4
- private selectedField;
5
- private errorMsg;
6
- private inputBuffer;
7
- constructor(options: DateOptions);
8
- protected render(_firstRender: boolean): void;
9
- protected handleInput(char: string): void;
10
- protected handleMouse(event: MouseEvent): void;
11
- private adjustDate;
12
- }
@@ -1,16 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { DependencyOptions, MouseEvent } from '../types';
3
- export declare class DependencyPrompt<V> extends Prompt<V[], DependencyOptions<V>> {
4
- private selectedIndex;
5
- private checkedState;
6
- private errorMsg;
7
- private warningMsg;
8
- private scrollTop;
9
- private readonly pageSize;
10
- constructor(options: DependencyOptions<V>);
11
- private resolveDependencies;
12
- protected render(_firstRender: boolean): void;
13
- protected handleMouse(event: MouseEvent): void;
14
- protected handleInput(char: string): void;
15
- private validateDependencies;
16
- }
@@ -1,10 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { DialOptions, MouseEvent } from '../types';
3
- export declare class DialPrompt extends Prompt<number, DialOptions> {
4
- private currentValue;
5
- constructor(options: DialOptions);
6
- protected render(_firstRender: boolean): void;
7
- protected handleInput(char: string, _key: Buffer): void;
8
- protected handleMouse(event: MouseEvent): void;
9
- private updateValue;
10
- }
@@ -1,10 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { DiffOptions } from '../types';
3
- export declare class DiffPrompt extends Prompt<string, DiffOptions> {
4
- private activeAction;
5
- private actions;
6
- constructor(options: DiffOptions);
7
- protected render(_firstRender: boolean): void;
8
- protected handleInput(char: string, _key: Buffer): void;
9
- private handleSubmit;
10
- }
@@ -1,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DiffPrompt = void 0;
4
- const base_1 = require("../base");
5
- const theme_1 = require("../theme");
6
- const ansi_1 = require("../ansi");
7
- const editor_1 = require("./editor");
8
- class DiffPrompt extends base_1.Prompt {
9
- constructor(options) {
10
- super(options);
11
- this.activeAction = 0; // 0: Original, 1: Modified, 2: Edit
12
- this.actions = ['Use Original', 'Use Modified', 'Edit'];
13
- }
14
- render(_firstRender) {
15
- let output = `${theme_1.theme.title}${this.options.message}${ansi_1.ANSI.RESET}\n`;
16
- // Render Diff
17
- const originalLines = this.options.original ? this.options.original.split('\n') : [];
18
- const modifiedLines = this.options.modified ? this.options.modified.split('\n') : [];
19
- const width = Math.max(40, (this.stdout.columns || 80) - 4);
20
- const borderTop = `${ansi_1.ANSI.FG_GRAY}┌${'─'.repeat(width)}┐${ansi_1.ANSI.RESET}`;
21
- const borderMid = `${ansi_1.ANSI.FG_GRAY}├${'─'.repeat(width)}┤${ansi_1.ANSI.RESET}`;
22
- const borderBot = `${ansi_1.ANSI.FG_GRAY}└${'─'.repeat(width)}┘${ansi_1.ANSI.RESET}`;
23
- output += borderTop + '\n';
24
- // Original (Red)
25
- if (originalLines.length === 0) {
26
- output += `${ansi_1.ANSI.FG_GRAY}│ ${ansi_1.ANSI.DIM}(empty)${ansi_1.ANSI.RESET}\n`;
27
- }
28
- else {
29
- originalLines.forEach(line => {
30
- const truncated = this.truncate(line, width - 4);
31
- output += `${ansi_1.ANSI.FG_GRAY}│ ${ansi_1.ANSI.FG_RED}- ${truncated}${ansi_1.ANSI.RESET}\n`;
32
- });
33
- }
34
- output += borderMid + '\n';
35
- // Modified (Green)
36
- if (modifiedLines.length === 0) {
37
- output += `${ansi_1.ANSI.FG_GRAY}│ ${ansi_1.ANSI.DIM}(empty)${ansi_1.ANSI.RESET}\n`;
38
- }
39
- else {
40
- modifiedLines.forEach(line => {
41
- const truncated = this.truncate(line, width - 4);
42
- output += `${ansi_1.ANSI.FG_GRAY}│ ${ansi_1.ANSI.FG_GREEN}+ ${truncated}${ansi_1.ANSI.RESET}\n`;
43
- });
44
- }
45
- output += borderBot + '\n';
46
- // Render Actions
47
- output += '\n';
48
- this.actions.forEach((action, index) => {
49
- if (index === this.activeAction) {
50
- output += `${ansi_1.ANSI.REVERSE} ${action} ${ansi_1.ANSI.RESET} `;
51
- }
52
- else {
53
- output += `[ ${action} ] `;
54
- }
55
- });
56
- this.renderFrame(output);
57
- }
58
- handleInput(char, _key) {
59
- if (this.isLeft(char)) {
60
- this.activeAction = (this.activeAction - 1 + this.actions.length) % this.actions.length;
61
- this.render(false);
62
- }
63
- else if (this.isRight(char)) {
64
- this.activeAction = (this.activeAction + 1) % this.actions.length;
65
- this.render(false);
66
- }
67
- else if (char === '\r' || char === '\n') {
68
- this.handleSubmit();
69
- }
70
- }
71
- handleSubmit() {
72
- if (this.activeAction === 0) {
73
- this.submit(this.options.original);
74
- }
75
- else if (this.activeAction === 1) {
76
- this.submit(this.options.modified);
77
- }
78
- else {
79
- // Edit
80
- this.cleanup(); // Stop listening to input for this prompt
81
- // Prepare initial content for editor
82
- const initial = `<<<<<<< ORIGINAL
83
- ${this.options.original}
84
- =======
85
- ${this.options.modified}
86
- >>>>>>> MODIFIED`;
87
- // We delegate to EditorPrompt
88
- new editor_1.EditorPrompt({
89
- message: 'Resolve conflict (Edit)',
90
- initial: initial,
91
- extension: '.txt',
92
- waitUserInput: false // Launch immediately
93
- }).run().then(result => {
94
- this.submit(result);
95
- }).catch(_err => {
96
- this.submit(initial);
97
- });
98
- }
99
- }
100
- }
101
- exports.DiffPrompt = DiffPrompt;
@@ -1,20 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { DrawOptions, MouseEvent } from '../types';
3
- export declare class DrawPrompt extends Prompt<string | boolean[][], DrawOptions> {
4
- private grid;
5
- private cursorX;
6
- private cursorY;
7
- private gridWidth;
8
- private gridHeight;
9
- private lastMouse;
10
- constructor(options: DrawOptions);
11
- private getBrailleChar;
12
- private getPixel;
13
- private setPixel;
14
- protected render(_firstRender: boolean): void;
15
- protected handleInput(char: string, _key: Buffer): void;
16
- protected handleMouse(event: MouseEvent): void;
17
- private clearGrid;
18
- private invertGrid;
19
- private handleSubmit;
20
- }
@@ -1,14 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { EditorOptions } from '../types';
3
- export declare class EditorPrompt extends Prompt<string, EditorOptions> {
4
- private errorMsg;
5
- private status;
6
- private tempFilePath;
7
- constructor(options: EditorOptions);
8
- protected cleanup(): void;
9
- protected render(firstRender: boolean): void;
10
- protected handleInput(char: string): void;
11
- private resolveEditor;
12
- private spawnEditor;
13
- private restoreMep;
14
- }
@@ -1,203 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.EditorPrompt = void 0;
37
- const fs = __importStar(require("fs"));
38
- const os = __importStar(require("os"));
39
- const path = __importStar(require("path"));
40
- const child_process_1 = require("child_process");
41
- const base_1 = require("../base");
42
- const theme_1 = require("../theme");
43
- const symbols_1 = require("../symbols");
44
- const ansi_1 = require("../ansi");
45
- class EditorPrompt extends base_1.Prompt {
46
- constructor(options) {
47
- super(options);
48
- this.errorMsg = '';
49
- this.status = 'pending';
50
- this.tempFilePath = null;
51
- // Default waitUserInput to true if not specified
52
- if (this.options.waitUserInput === undefined) {
53
- this.options.waitUserInput = true;
54
- }
55
- }
56
- cleanup() {
57
- if (this.tempFilePath) {
58
- try {
59
- if (fs.existsSync(this.tempFilePath)) {
60
- fs.unlinkSync(this.tempFilePath);
61
- }
62
- }
63
- catch (_error) {
64
- // Ignore cleanup errors
65
- }
66
- }
67
- super.cleanup();
68
- }
69
- render(firstRender) {
70
- if (this.status === 'editing') {
71
- return; // Don't render while editor is open (stdio inherited)
72
- }
73
- const icon = this.status === 'done' ? theme_1.theme.success + symbols_1.symbols.tick : theme_1.theme.main + '?';
74
- const message = `${theme_1.theme.title}${this.options.message}${ansi_1.ANSI.RESET}`;
75
- const hint = this.options.waitUserInput
76
- ? ` ${theme_1.theme.muted}[Press <Enter> to launch editor]${ansi_1.ANSI.RESET}`
77
- : ` ${theme_1.theme.muted}[Launching editor...]${ansi_1.ANSI.RESET}`;
78
- let output = `${icon} ${ansi_1.ANSI.BOLD}${message}${ansi_1.ANSI.RESET}${hint}`;
79
- if (this.errorMsg) {
80
- output += `\n${theme_1.theme.error}>> ${this.errorMsg}${ansi_1.ANSI.RESET}`;
81
- }
82
- this.renderFrame(output);
83
- // Auto-launch handling
84
- if (firstRender && this.options.waitUserInput === false) {
85
- // We need to delay slightly to ensure the render frame is flushed
86
- // and raw mode setup is complete from .run()
87
- setTimeout(() => {
88
- this.spawnEditor();
89
- }, 50);
90
- }
91
- }
92
- handleInput(char) {
93
- if (this.status !== 'pending')
94
- return;
95
- // Enter
96
- if (char === '\r' || char === '\n') {
97
- this.spawnEditor();
98
- }
99
- }
100
- resolveEditor() {
101
- // 1. Env vars
102
- const envEditor = process.env.VISUAL || process.env.EDITOR;
103
- if (envEditor) {
104
- const parts = envEditor.split(' ');
105
- return { cmd: parts[0], args: parts.slice(1) };
106
- }
107
- // 2. OS specific
108
- if (process.platform === 'win32') {
109
- // Priority: notepad -> code -> wordpad
110
- return { cmd: 'notepad', args: [] };
111
- }
112
- else {
113
- // Unix/Linux/Mac
114
- // Priority: vim -> nano -> vi
115
- // We'll stick to 'vim' as the default safe bet if we can't detect.
116
- // A more robust solution would check paths, but for now we assume 'vim'.
117
- return { cmd: 'vim', args: [] };
118
- }
119
- }
120
- spawnEditor() {
121
- this.status = 'editing';
122
- // 1. Prepare Temp File
123
- const ext = this.options.extension || '.txt';
124
- // Ensure extension has dot
125
- const safeExt = ext.startsWith('.') ? ext : '.' + ext;
126
- const filename = `mep-editor-${Date.now()}-${Math.floor(Math.random() * 1000)}${safeExt}`;
127
- this.tempFilePath = path.join(os.tmpdir(), filename);
128
- const initialContent = this.options.initial || '';
129
- try {
130
- fs.writeFileSync(this.tempFilePath, initialContent, 'utf8');
131
- }
132
- catch (e) {
133
- this.errorMsg = `Failed to create temp file: ${e.message}`;
134
- this.status = 'pending';
135
- this.render(false);
136
- return;
137
- }
138
- // 2. Resolve Editor
139
- const { cmd, args } = this.resolveEditor();
140
- const editorArgs = [...args, this.tempFilePath];
141
- // 3. Pause Mep
142
- // Temporarily disable mouse tracking if it was enabled
143
- const shouldEnableMouse = this.options.mouse !== false && this.capabilities.hasMouse;
144
- if (shouldEnableMouse) {
145
- this.print(ansi_1.ANSI.DISABLE_MOUSE);
146
- }
147
- // Pause stdin and raw mode to allow child process to take over TTY
148
- this.stdin.setRawMode(false);
149
- this.stdin.pause();
150
- // 4. Spawn
151
- const child = (0, child_process_1.spawn)(cmd, editorArgs, {
152
- stdio: 'inherit',
153
- shell: true
154
- });
155
- child.on('error', (err) => {
156
- this.restoreMep();
157
- this.status = 'pending';
158
- this.errorMsg = `Could not launch editor '${cmd}': ${err.message}`;
159
- this.render(false);
160
- });
161
- child.on('exit', (code) => {
162
- // 5. Read Result
163
- let content = initialContent;
164
- try {
165
- if (this.tempFilePath && fs.existsSync(this.tempFilePath)) {
166
- content = fs.readFileSync(this.tempFilePath, 'utf8');
167
- fs.unlinkSync(this.tempFilePath); // Cleanup
168
- this.tempFilePath = null; // Mark as cleaned
169
- }
170
- }
171
- catch (_e) {
172
- // Ignore read/delete errors
173
- }
174
- this.restoreMep();
175
- if (code !== 0) {
176
- this.status = 'pending';
177
- this.errorMsg = `Editor exited with code ${code}`;
178
- this.render(false);
179
- return;
180
- }
181
- // Success
182
- this.status = 'done';
183
- if (content.endsWith('\n')) {
184
- content = content.slice(0, -1);
185
- }
186
- if (content.endsWith('\r')) {
187
- content = content.slice(0, -1);
188
- }
189
- this.submit(content);
190
- });
191
- }
192
- restoreMep() {
193
- this.stdin.resume();
194
- this.stdin.setRawMode(true);
195
- // Re-enable mouse if it was enabled
196
- const shouldEnableMouse = this.options.mouse !== false && this.capabilities.hasMouse;
197
- if (shouldEnableMouse) {
198
- this.print(ansi_1.ANSI.SET_ANY_EVENT_MOUSE + ansi_1.ANSI.SET_SGR_EXT_MODE_MOUSE);
199
- }
200
- this.print(ansi_1.ANSI.HIDE_CURSOR); // Ensure cursor is hidden again for Mep
201
- }
202
- }
203
- exports.EditorPrompt = EditorPrompt;
@@ -1,18 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { EmojiOptions, MouseEvent } from '../types';
3
- export declare class EmojiPrompt extends Prompt<string, EmojiOptions> {
4
- private search;
5
- private cursor;
6
- private filtered;
7
- private sortedEmojis;
8
- private cols;
9
- private scrollTop;
10
- private pageSize;
11
- constructor(options: EmojiOptions);
12
- private calculateLayout;
13
- private updateFilter;
14
- protected render(_firstRender: boolean): void;
15
- protected handleInput(char: string): void;
16
- protected handleMouse(event: MouseEvent): void;
17
- private adjustScroll;
18
- }
@@ -1,17 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { ExecOptions } from '../types';
3
- export declare class ExecPrompt extends Prompt<void, ExecOptions> {
4
- private child?;
5
- private status;
6
- private timer?;
7
- private stdoutBuffer;
8
- private stderrBuffer;
9
- private lastLogLine;
10
- constructor(options: ExecOptions);
11
- run(): Promise<void>;
12
- private updateLastLogLine;
13
- private killChild;
14
- protected cleanup(): void;
15
- protected render(_firstRender: boolean): void;
16
- protected handleInput(_char: string, _key: Buffer): void;
17
- }
@@ -1,21 +0,0 @@
1
- import { Prompt } from '../base';
2
- import { FileOptions } from '../types';
3
- /**
4
- * Implementation of FilePrompt with autocomplete.
5
- */
6
- export declare class FilePrompt extends Prompt<string, FileOptions> {
7
- private input;
8
- private cursor;
9
- private suggestions;
10
- private selectedSuggestion;
11
- private errorMsg;
12
- private lastLinesUp;
13
- constructor(options: FileOptions);
14
- /**
15
- * Updates the suggestions list based on the current input path.
16
- */
17
- private updateSuggestions;
18
- protected render(firstRender: boolean): void;
19
- protected cleanup(): void;
20
- protected handleInput(char: string): void;
21
- }