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,63 +1,88 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CronPrompt = void 0;
4
- const ansi_1 = require("../ansi");
5
- const base_1 = require("../base");
6
- const theme_1 = require("../theme");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "CronPrompt", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return CronPrompt;
9
+ }
10
+ });
11
+ const _ansi = require("../ansi");
12
+ const _base = require("../base");
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
+ }
7
27
  const FIELDS = [
8
- { label: 'Minute', min: 0, max: 59 },
9
- { label: 'Hour', min: 0, max: 23 },
10
- { label: 'Day', min: 1, max: 31 },
11
- { label: 'Month', min: 1, max: 12 },
12
- { label: 'Weekday', min: 0, max: 6 }
13
- ];
14
- class CronPrompt extends base_1.Prompt {
15
- constructor(options) {
16
- super(options);
17
- this.fields = ['*', '*', '*', '*', '*'];
18
- this.activeField = 0;
19
- this.buffer = '';
20
- if (options.initial) {
21
- const parts = options.initial.split(' ');
22
- if (parts.length === 5) {
23
- this.fields = parts;
24
- }
25
- }
28
+ {
29
+ label: 'Minute',
30
+ min: 0,
31
+ max: 59
32
+ },
33
+ {
34
+ label: 'Hour',
35
+ min: 0,
36
+ max: 23
37
+ },
38
+ {
39
+ label: 'Day',
40
+ min: 1,
41
+ max: 31
42
+ },
43
+ {
44
+ label: 'Month',
45
+ min: 1,
46
+ max: 12
47
+ },
48
+ {
49
+ label: 'Weekday',
50
+ min: 0,
51
+ max: 6
26
52
  }
53
+ ];
54
+ let CronPrompt = class CronPrompt extends _base.Prompt {
27
55
  get currentConfig() {
28
56
  return FIELDS[this.activeField];
29
57
  }
30
58
  render(_firstRender) {
31
- let output = `${theme_1.theme.success}?${ansi_1.ANSI.RESET} ${ansi_1.ANSI.BOLD}${theme_1.theme.title}${this.options.message}${ansi_1.ANSI.RESET}\n`;
59
+ let output = `${_theme.theme.success}?${_ansi.ANSI.RESET} ${_ansi.ANSI.BOLD}${_theme.theme.title}${this.options.message}${_ansi.ANSI.RESET}\n`;
32
60
  // Render fields
33
61
  let fieldsStr = '';
34
- this.fields.forEach((val, index) => {
62
+ this.fields.forEach((val, index)=>{
35
63
  const isSelected = index === this.activeField;
36
64
  const displayVal = val.padStart(2, ' ');
37
65
  if (isSelected) {
38
- fieldsStr += `${theme_1.theme.main}${ansi_1.ANSI.UNDERLINE}${displayVal}${ansi_1.ANSI.RESET} `;
39
- }
40
- else {
41
- fieldsStr += `${ansi_1.ANSI.DIM}${displayVal}${ansi_1.ANSI.RESET} `;
66
+ fieldsStr += `${_theme.theme.main}${_ansi.ANSI.UNDERLINE}${displayVal}${_ansi.ANSI.RESET} `;
67
+ } else {
68
+ fieldsStr += `${_ansi.ANSI.DIM}${displayVal}${_ansi.ANSI.RESET} `;
42
69
  }
43
70
  });
44
71
  output += ` ${fieldsStr}\n`;
45
72
  // Render Label and Hints
46
73
  const config = this.currentConfig;
47
- output += ` ${theme_1.theme.muted}${config.label} (${config.min}-${config.max})${ansi_1.ANSI.RESET}\n`;
48
- output += ` ${ansi_1.ANSI.DIM}(Arrows: Adjust | Space: Toggle * | 0-9: Type | Tab: Next)${ansi_1.ANSI.RESET}`;
74
+ output += ` ${_theme.theme.muted}${config.label} (${config.min}-${config.max})${_ansi.ANSI.RESET}\n`;
75
+ output += ` ${_ansi.ANSI.DIM}(Arrows: Adjust | Space: Toggle * | 0-9: Type | Tab: Next)${_ansi.ANSI.RESET}`;
49
76
  this.renderFrame(output);
50
77
  }
51
78
  validateCurrentField() {
52
79
  const config = this.currentConfig;
53
80
  const val = this.fields[this.activeField];
54
- if (val === '*')
55
- return;
81
+ if (val === '*') return;
56
82
  let num = parseInt(val);
57
83
  if (isNaN(num)) {
58
84
  this.fields[this.activeField] = config.min.toString();
59
- }
60
- else {
85
+ } else {
61
86
  num = Math.max(config.min, Math.min(num, config.max));
62
87
  this.fields[this.activeField] = num.toString();
63
88
  }
@@ -89,11 +114,9 @@ class CronPrompt extends base_1.Prompt {
89
114
  if (this.isUp(char)) {
90
115
  if (currentVal === '*') {
91
116
  this.fields[this.activeField] = config.min.toString();
92
- }
93
- else if (!isNaN(numVal)) {
117
+ } else if (!isNaN(numVal)) {
94
118
  numVal++;
95
- if (numVal > config.max)
96
- numVal = config.min;
119
+ if (numVal > config.max) numVal = config.min;
97
120
  this.fields[this.activeField] = numVal.toString();
98
121
  }
99
122
  this.buffer = '';
@@ -103,11 +126,9 @@ class CronPrompt extends base_1.Prompt {
103
126
  if (this.isDown(char)) {
104
127
  if (currentVal === '*') {
105
128
  this.fields[this.activeField] = config.max.toString();
106
- }
107
- else if (!isNaN(numVal)) {
129
+ } else if (!isNaN(numVal)) {
108
130
  numVal--;
109
- if (numVal < config.min)
110
- numVal = config.max;
131
+ if (numVal < config.min) numVal = config.max;
111
132
  this.fields[this.activeField] = numVal.toString();
112
133
  }
113
134
  this.buffer = '';
@@ -127,11 +148,10 @@ class CronPrompt extends base_1.Prompt {
127
148
  // Check if valid
128
149
  if (!isNaN(nextNum) && nextNum <= config.max) {
129
150
  this.buffer = nextBuffer;
130
- if (nextNum >= 0) { // Should be positive
151
+ if (nextNum >= 0) {
131
152
  this.fields[this.activeField] = nextNum.toString();
132
153
  }
133
- }
134
- else {
154
+ } else {
135
155
  const freshNum = parseInt(char);
136
156
  if (!isNaN(freshNum) && freshNum <= config.max) {
137
157
  this.buffer = char;
@@ -146,25 +166,20 @@ class CronPrompt extends base_1.Prompt {
146
166
  const config = this.currentConfig;
147
167
  const currentVal = this.fields[this.activeField];
148
168
  let numVal = parseInt(currentVal);
149
- if (event.scroll === 'up') { // Increase
169
+ if (event.scroll === 'up') {
150
170
  if (currentVal === '*') {
151
171
  this.fields[this.activeField] = config.min.toString();
152
- }
153
- else if (!isNaN(numVal)) {
172
+ } else if (!isNaN(numVal)) {
154
173
  numVal++;
155
- if (numVal > config.max)
156
- numVal = config.min;
174
+ if (numVal > config.max) numVal = config.min;
157
175
  this.fields[this.activeField] = numVal.toString();
158
176
  }
159
- }
160
- else { // Decrease
177
+ } else {
161
178
  if (currentVal === '*') {
162
179
  this.fields[this.activeField] = config.max.toString();
163
- }
164
- else if (!isNaN(numVal)) {
180
+ } else if (!isNaN(numVal)) {
165
181
  numVal--;
166
- if (numVal < config.min)
167
- numVal = config.max;
182
+ if (numVal < config.min) numVal = config.max;
168
183
  this.fields[this.activeField] = numVal.toString();
169
184
  }
170
185
  }
@@ -172,5 +187,21 @@ class CronPrompt extends base_1.Prompt {
172
187
  this.render(false);
173
188
  }
174
189
  }
175
- }
176
- exports.CronPrompt = CronPrompt;
190
+ constructor(options){
191
+ super(options), _define_property(this, "fields", [
192
+ '*',
193
+ '*',
194
+ '*',
195
+ '*',
196
+ '*'
197
+ ]), _define_property(this, "activeField", 0), _define_property(this, "buffer", '');
198
+ if (options.initial) {
199
+ const parts = options.initial.split(' ');
200
+ if (parts.length === 5) {
201
+ this.fields = parts;
202
+ }
203
+ }
204
+ }
205
+ };
206
+
207
+ //# sourceMappingURL=cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prompts/cron.ts"],"sourcesContent":["import { ANSI } from '../ansi';\nimport { Prompt } from '../base';\nimport { theme } from '../theme';\nimport { CronOptions, MouseEvent } from '../types';\n\ninterface FieldConfig {\n label: string;\n min: number;\n max: number;\n}\n\nconst FIELDS: FieldConfig[] = [\n { label: 'Minute', min: 0, max: 59 },\n { label: 'Hour', min: 0, max: 23 },\n { label: 'Day', min: 1, max: 31 },\n { label: 'Month', min: 1, max: 12 },\n { label: 'Weekday', min: 0, max: 6 }\n];\n\nexport class CronPrompt extends Prompt<string, CronOptions> {\n private fields: string[] = ['*', '*', '*', '*', '*'];\n private activeField: number = 0;\n private buffer: string = '';\n\n constructor(options: CronOptions) {\n super(options);\n if (options.initial) {\n const parts = options.initial.split(' ');\n if (parts.length === 5) {\n this.fields = parts;\n }\n }\n }\n\n private get currentConfig() {\n return FIELDS[this.activeField];\n }\n\n protected render(_firstRender: boolean): void {\n let output = `${theme.success}?${ANSI.RESET} ${ANSI.BOLD}${theme.title}${this.options.message}${ANSI.RESET}\\n`;\n\n // Render fields\n let fieldsStr = '';\n this.fields.forEach((val, index) => {\n const isSelected = index === this.activeField;\n const displayVal = val.padStart(2, ' ');\n\n if (isSelected) {\n fieldsStr += `${theme.main}${ANSI.UNDERLINE}${displayVal}${ANSI.RESET} `;\n } else {\n fieldsStr += `${ANSI.DIM}${displayVal}${ANSI.RESET} `;\n }\n });\n\n output += ` ${fieldsStr}\\n`;\n\n // Render Label and Hints\n const config = this.currentConfig;\n output += ` ${theme.muted}${config.label} (${config.min}-${config.max})${ANSI.RESET}\\n`;\n output += ` ${ANSI.DIM}(Arrows: Adjust | Space: Toggle * | 0-9: Type | Tab: Next)${ANSI.RESET}`;\n\n this.renderFrame(output);\n }\n\n private validateCurrentField() {\n const config = this.currentConfig;\n const val = this.fields[this.activeField];\n if (val === '*') return;\n\n let num = parseInt(val);\n if (isNaN(num)) {\n this.fields[this.activeField] = config.min.toString();\n } else {\n num = Math.max(config.min, Math.min(num, config.max));\n this.fields[this.activeField] = num.toString();\n }\n }\n\n protected handleInput(char: string) {\n if (char === '\\r' || char === '\\n') {\n this.validateCurrentField();\n this.submit(this.fields.join(' '));\n return;\n }\n\n if (char === '\\t' || this.isRight(char)) {\n this.validateCurrentField();\n this.activeField = (this.activeField + 1) % 5;\n this.buffer = '';\n this.render(false);\n return;\n }\n\n // Shift+Tab detection is often '\\x1b[Z'\n if (char === '\\x1b[Z' || this.isLeft(char)) {\n this.validateCurrentField();\n this.activeField = (this.activeField - 1 + 5) % 5;\n this.buffer = '';\n this.render(false);\n return;\n }\n\n const config = this.currentConfig;\n const currentVal = this.fields[this.activeField];\n let numVal = parseInt(currentVal);\n\n if (this.isUp(char)) {\n if (currentVal === '*') {\n this.fields[this.activeField] = config.min.toString();\n } else if (!isNaN(numVal)) {\n numVal++;\n if (numVal > config.max) numVal = config.min;\n this.fields[this.activeField] = numVal.toString();\n }\n this.buffer = '';\n this.render(false);\n return;\n }\n\n if (this.isDown(char)) {\n if (currentVal === '*') {\n this.fields[this.activeField] = config.max.toString();\n } else if (!isNaN(numVal)) {\n numVal--;\n if (numVal < config.min) numVal = config.max;\n this.fields[this.activeField] = numVal.toString();\n }\n this.buffer = '';\n this.render(false);\n return;\n }\n\n if (char === ' ' || char.toLowerCase() === 'x') {\n this.fields[this.activeField] = '*';\n this.buffer = '';\n this.render(false);\n return;\n }\n\n // Direct Input\n if (/^[0-9]$/.test(char)) {\n const nextBuffer = this.buffer + char;\n const nextNum = parseInt(nextBuffer);\n\n // Check if valid\n if (!isNaN(nextNum) && nextNum <= config.max) {\n this.buffer = nextBuffer;\n\n if (nextNum >= 0) { // Should be positive\n this.fields[this.activeField] = nextNum.toString();\n }\n } else {\n const freshNum = parseInt(char);\n if (!isNaN(freshNum) && freshNum <= config.max) {\n this.buffer = char;\n this.fields[this.activeField] = freshNum.toString();\n }\n }\n this.render(false);\n }\n }\n\n protected handleMouse(event: MouseEvent) {\n if (event.action === 'scroll') {\n const config = this.currentConfig;\n const currentVal = this.fields[this.activeField];\n let numVal = parseInt(currentVal);\n\n if (event.scroll === 'up') { // Increase\n if (currentVal === '*') {\n this.fields[this.activeField] = config.min.toString();\n } else if (!isNaN(numVal)) {\n numVal++;\n if (numVal > config.max) numVal = config.min;\n this.fields[this.activeField] = numVal.toString();\n }\n } else { // Decrease\n if (currentVal === '*') {\n this.fields[this.activeField] = config.max.toString();\n } else if (!isNaN(numVal)) {\n numVal--;\n if (numVal < config.min) numVal = config.max;\n this.fields[this.activeField] = numVal.toString();\n }\n }\n this.buffer = '';\n this.render(false);\n }\n }\n}\n"],"names":["CronPrompt","FIELDS","label","min","max","Prompt","currentConfig","activeField","render","_firstRender","output","theme","success","ANSI","RESET","BOLD","title","options","message","fieldsStr","fields","forEach","val","index","isSelected","displayVal","padStart","main","UNDERLINE","DIM","config","muted","renderFrame","validateCurrentField","num","parseInt","isNaN","toString","Math","handleInput","char","submit","join","isRight","buffer","isLeft","currentVal","numVal","isUp","isDown","toLowerCase","test","nextBuffer","nextNum","freshNum","handleMouse","event","action","scroll","initial","parts","split","length"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get BashStrategy () {
13
+ return BashStrategy;
14
+ },
15
+ get CmdStrategy () {
16
+ return CmdStrategy;
17
+ },
18
+ get PowerShellStrategy () {
19
+ return PowerShellStrategy;
20
+ }
21
+ });
22
+ function _define_property(obj, key, value) {
23
+ if (key in obj) {
24
+ Object.defineProperty(obj, key, {
25
+ value: value,
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true
29
+ });
30
+ } else {
31
+ obj[key] = value;
32
+ }
33
+ return obj;
34
+ }
35
+ let BashStrategy = class BashStrategy {
36
+ escape(value) {
37
+ // e.g. "It's me" -> 'It'\''s me'
38
+ return `'${value.replace(/'/g, "'\\''")}'`;
39
+ }
40
+ constructor(){
41
+ _define_property(this, "binary", 'curl');
42
+ _define_property(this, "wrapper", "'");
43
+ _define_property(this, "continuation", ' \\');
44
+ }
45
+ };
46
+ let PowerShellStrategy = class PowerShellStrategy {
47
+ escape(value) {
48
+ // e.g. "It's me" -> 'It''s me'
49
+ return `'${value.replace(/'/g, "''")}'`;
50
+ }
51
+ constructor(){
52
+ _define_property(this, "binary", 'curl.exe');
53
+ _define_property(this, "wrapper", "'");
54
+ _define_property(this, "continuation", ' `');
55
+ }
56
+ };
57
+ let CmdStrategy = class CmdStrategy {
58
+ escape(value) {
59
+ // e.g. {"key": "value"} -> "{\"key\": \"value\"}"
60
+ // e.g. value with " -> "value with \""
61
+ const flattened = value.replace(/[\r\n]+/g, ' ');
62
+ return `"${flattened.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
63
+ }
64
+ constructor(){
65
+ _define_property(this, "binary", 'curl');
66
+ _define_property(this, "wrapper", '"');
67
+ _define_property(this, "continuation", ' ^');
68
+ }
69
+ };
70
+
71
+ //# sourceMappingURL=curl-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/prompts/curl-utils.ts"],"sourcesContent":["export type ShellType = 'bash' | 'powershell' | 'cmd';\n\nexport interface ShellStrategy {\n binary: string;\n wrapper: string;\n continuation: string;\n escape(value: string): string;\n}\n\nexport class BashStrategy implements ShellStrategy {\n readonly binary = 'curl';\n readonly wrapper = \"'\";\n readonly continuation = ' \\\\';\n\n escape(value: string): string {\n // e.g. \"It's me\" -> 'It'\\''s me'\n return `'${value.replace(/'/g, \"'\\\\''\")}'`;\n }\n}\n\nexport class PowerShellStrategy implements ShellStrategy {\n readonly binary = 'curl.exe';\n readonly wrapper = \"'\";\n readonly continuation = ' `';\n\n escape(value: string): string {\n // e.g. \"It's me\" -> 'It''s me'\n return `'${value.replace(/'/g, \"''\")}'`;\n }\n}\n\nexport class CmdStrategy implements ShellStrategy {\n readonly binary = 'curl';\n readonly wrapper = '\"';\n readonly continuation = ' ^';\n\n escape(value: string): string {\n // e.g. {\"key\": \"value\"} -> \"{\\\"key\\\": \\\"value\\\"}\"\n // e.g. value with \" -> \"value with \\\"\"\n const flattened = value.replace(/[\\r\\n]+/g, ' ');\n return `\"${flattened.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n }\n}\n"],"names":["BashStrategy","CmdStrategy","PowerShellStrategy","escape","value","replace","binary","wrapper","continuation","flattened"],"mappings":";;;;;;;;;;;QASaA;eAAAA;;QAsBAC;eAAAA;;QAXAC;eAAAA;;;;;;;;;;;;;;;;AAXN,IAAA,AAAMF,eAAN,MAAMA;IAKTG,OAAOC,KAAa,EAAU;QAC1B,iCAAiC;QACjC,OAAO,CAAC,CAAC,EAAEA,MAAMC,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;IAC9C;;QAPA,uBAASC,UAAS;QAClB,uBAASC,WAAU;QACnB,uBAASC,gBAAe;;AAM5B;AAEO,IAAA,AAAMN,qBAAN,MAAMA;IAKTC,OAAOC,KAAa,EAAU;QAC1B,+BAA+B;QAC/B,OAAO,CAAC,CAAC,EAAEA,MAAMC,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC;IAC3C;;QAPA,uBAASC,UAAS;QAClB,uBAASC,WAAU;QACnB,uBAASC,gBAAe;;AAM5B;AAEO,IAAA,AAAMP,cAAN,MAAMA;IAKTE,OAAOC,KAAa,EAAU;QAC1B,kDAAkD;QAClD,uCAAuC;QACvC,MAAMK,YAAYL,MAAMC,OAAO,CAAC,YAAY;QAC5C,OAAO,CAAC,CAAC,EAAEI,UAAUJ,OAAO,CAAC,OAAO,QAAQA,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC;IACvE;;QATA,uBAASC,UAAS;QAClB,uBAASC,WAAU;QACnB,uBAASC,gBAAe;;AAQ5B"}