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.
- package/README.md +11 -2
- package/dist/{ansi.js → src/ansi.js} +17 -9
- package/dist/src/ansi.js.map +1 -0
- package/dist/{base.js → src/base.js} +82 -70
- package/dist/src/base.js.map +1 -0
- package/dist/{core.js → src/core.js} +266 -320
- package/dist/src/core.js.map +1 -0
- package/dist/src/data/countries.js +569 -0
- package/dist/src/data/countries.js.map +1 -0
- package/dist/src/data/licenses.js +480 -0
- package/dist/src/data/licenses.js.map +1 -0
- package/dist/{highlight.js → src/highlight.js} +77 -69
- package/dist/src/highlight.js.map +1 -0
- package/dist/src/index.js +66 -0
- package/dist/src/index.js.map +1 -0
- package/dist/{input.js → src/input.js} +47 -41
- package/dist/src/input.js.map +1 -0
- package/dist/src/pipeline.js +273 -0
- package/dist/src/pipeline.js.map +1 -0
- package/dist/{prompts → src/prompts}/autocomplete.js +58 -57
- package/dist/src/prompts/autocomplete.js.map +1 -0
- package/dist/{prompts → src/prompts}/box.js +86 -53
- package/dist/src/prompts/box.js.map +1 -0
- package/dist/{prompts → src/prompts}/breadcrumb-search.js +110 -98
- package/dist/src/prompts/breadcrumb-search.js.map +1 -0
- package/dist/{prompts → src/prompts}/breadcrumb.js +126 -121
- package/dist/src/prompts/breadcrumb.js.map +1 -0
- package/dist/{prompts → src/prompts}/byte.js +69 -52
- package/dist/src/prompts/byte.js.map +1 -0
- package/dist/{prompts → src/prompts}/calculator.js +79 -56
- package/dist/src/prompts/calculator.js.map +1 -0
- package/dist/{prompts → src/prompts}/calendar.js +167 -127
- package/dist/src/prompts/calendar.js.map +1 -0
- package/dist/{prompts → src/prompts}/checkbox.js +53 -49
- package/dist/src/prompts/checkbox.js.map +1 -0
- package/dist/{prompts → src/prompts}/code.js +88 -76
- package/dist/src/prompts/code.js.map +1 -0
- package/dist/{prompts → src/prompts}/color.js +68 -50
- package/dist/src/prompts/color.js.map +1 -0
- package/dist/{prompts → src/prompts}/confirm.js +22 -15
- package/dist/src/prompts/confirm.js.map +1 -0
- package/dist/{prompts → src/prompts}/connection-string.js +59 -36
- package/dist/src/prompts/connection-string.js.map +1 -0
- package/dist/{prompts → src/prompts}/cron.js +90 -59
- package/dist/src/prompts/cron.js.map +1 -0
- package/dist/src/prompts/curl-utils.js +71 -0
- package/dist/src/prompts/curl-utils.js.map +1 -0
- package/dist/{prompts → src/prompts}/curl.js +153 -132
- package/dist/src/prompts/curl.js.map +1 -0
- package/dist/{prompts → src/prompts}/data-inspector.js +96 -91
- package/dist/src/prompts/data-inspector.js.map +1 -0
- package/dist/{prompts → src/prompts}/date.js +64 -57
- package/dist/src/prompts/date.js.map +1 -0
- package/dist/{prompts → src/prompts}/dependency.js +84 -80
- package/dist/src/prompts/dependency.js.map +1 -0
- package/dist/{prompts → src/prompts}/dial.js +49 -35
- package/dist/src/prompts/dial.js.map +1 -0
- package/dist/src/prompts/diff.js +118 -0
- package/dist/src/prompts/diff.js.map +1 -0
- package/dist/{prompts → src/prompts}/draw.js +83 -80
- package/dist/src/prompts/draw.js.map +1 -0
- package/dist/src/prompts/editor.js +234 -0
- package/dist/src/prompts/editor.js.map +1 -0
- package/dist/{prompts → src/prompts}/emoji.js +80 -82
- package/dist/src/prompts/emoji.js.map +1 -0
- package/dist/{prompts → src/prompts}/exec.js +60 -46
- package/dist/src/prompts/exec.js.map +1 -0
- package/dist/src/prompts/file.js +217 -0
- package/dist/src/prompts/file.js.map +1 -0
- package/dist/{prompts → src/prompts}/form.js +63 -54
- package/dist/src/prompts/form.js.map +1 -0
- package/dist/{prompts → src/prompts}/fuzzy-multi-column.js +65 -53
- package/dist/src/prompts/fuzzy-multi-column.js.map +1 -0
- package/dist/{prompts → src/prompts}/fuzzy.js +66 -55
- package/dist/src/prompts/fuzzy.js.map +1 -0
- package/dist/src/prompts/gauge.js +137 -0
- package/dist/src/prompts/gauge.js.map +1 -0
- package/dist/{prompts → src/prompts}/grid.js +70 -57
- package/dist/src/prompts/grid.js.map +1 -0
- package/dist/{prompts → src/prompts}/heatmap.js +70 -64
- package/dist/src/prompts/heatmap.js.map +1 -0
- package/dist/{prompts → src/prompts}/ip.js +56 -36
- package/dist/src/prompts/ip.js.map +1 -0
- package/dist/{prompts → src/prompts}/kanban.js +63 -58
- package/dist/src/prompts/kanban.js.map +1 -0
- package/dist/src/prompts/keypress.js +54 -0
- package/dist/src/prompts/keypress.js.map +1 -0
- package/dist/src/prompts/license.js +144 -0
- package/dist/src/prompts/license.js.map +1 -0
- package/dist/{prompts → src/prompts}/list.js +46 -31
- package/dist/src/prompts/list.js.map +1 -0
- package/dist/{prompts → src/prompts}/map.js +93 -77
- package/dist/src/prompts/map.js.map +1 -0
- package/dist/{prompts → src/prompts}/match.js +91 -95
- package/dist/src/prompts/match.js.map +1 -0
- package/dist/{prompts → src/prompts}/miller.js +74 -67
- package/dist/src/prompts/miller.js.map +1 -0
- package/dist/{prompts → src/prompts}/multi-column-select.js +54 -44
- package/dist/src/prompts/multi-column-select.js.map +1 -0
- package/dist/{prompts → src/prompts}/multi-range.js +70 -52
- package/dist/src/prompts/multi-range.js.map +1 -0
- package/dist/{prompts → src/prompts}/multi-select.js +67 -58
- package/dist/src/prompts/multi-select.js.map +1 -0
- package/dist/{prompts → src/prompts}/number.js +51 -39
- package/dist/src/prompts/number.js.map +1 -0
- package/dist/{prompts → src/prompts}/otp.js +43 -27
- package/dist/src/prompts/otp.js.map +1 -0
- package/dist/{prompts → src/prompts}/pattern.js +74 -71
- package/dist/src/prompts/pattern.js.map +1 -0
- package/dist/{prompts → src/prompts}/phone.js +107 -118
- package/dist/src/prompts/phone.js.map +1 -0
- package/dist/src/prompts/quiz-select.js +114 -0
- package/dist/src/prompts/quiz-select.js.map +1 -0
- package/dist/src/prompts/quiz-text.js +98 -0
- package/dist/src/prompts/quiz-text.js.map +1 -0
- package/dist/{prompts → src/prompts}/range.js +85 -61
- package/dist/src/prompts/range.js.map +1 -0
- package/dist/{prompts → src/prompts}/rating.js +29 -24
- package/dist/src/prompts/rating.js.map +1 -0
- package/dist/{prompts → src/prompts}/regex.js +50 -36
- package/dist/src/prompts/regex.js.map +1 -0
- package/dist/{prompts → src/prompts}/region.js +62 -56
- package/dist/src/prompts/region.js.map +1 -0
- package/dist/{prompts → src/prompts}/schedule.js +82 -75
- package/dist/src/prompts/schedule.js.map +1 -0
- package/dist/{prompts → src/prompts}/scroll.js +61 -58
- package/dist/src/prompts/scroll.js.map +1 -0
- package/dist/src/prompts/seat.js +164 -0
- package/dist/src/prompts/seat.js.map +1 -0
- package/dist/{prompts → src/prompts}/select-range.js +58 -46
- package/dist/src/prompts/select-range.js.map +1 -0
- package/dist/{prompts → src/prompts}/select.js +65 -66
- package/dist/src/prompts/select.js.map +1 -0
- package/dist/{prompts → src/prompts}/semver.js +24 -13
- package/dist/src/prompts/semver.js.map +1 -0
- package/dist/src/prompts/shortcut.js +133 -0
- package/dist/src/prompts/shortcut.js.map +1 -0
- package/dist/{prompts → src/prompts}/slider.js +28 -23
- package/dist/src/prompts/slider.js.map +1 -0
- package/dist/src/prompts/slot.js +117 -0
- package/dist/src/prompts/slot.js.map +1 -0
- package/dist/{prompts → src/prompts}/snippet.js +82 -61
- package/dist/src/prompts/snippet.js.map +1 -0
- package/dist/{prompts → src/prompts}/sort-grid.js +64 -59
- package/dist/src/prompts/sort-grid.js.map +1 -0
- package/dist/{prompts → src/prompts}/sort.js +59 -49
- package/dist/src/prompts/sort.js.map +1 -0
- package/dist/src/prompts/spam.js +80 -0
- package/dist/src/prompts/spam.js.map +1 -0
- package/dist/{prompts → src/prompts}/spreadsheet.js +71 -70
- package/dist/src/prompts/spreadsheet.js.map +1 -0
- package/dist/{prompts → src/prompts}/table.js +52 -38
- package/dist/src/prompts/table.js.map +1 -0
- package/dist/{prompts → src/prompts}/text.js +74 -70
- package/dist/src/prompts/text.js.map +1 -0
- package/dist/{prompts → src/prompts}/time.js +105 -96
- package/dist/src/prompts/time.js.map +1 -0
- package/dist/src/prompts/toggle.js +53 -0
- package/dist/src/prompts/toggle.js.map +1 -0
- package/dist/{prompts → src/prompts}/transfer.js +71 -67
- package/dist/src/prompts/transfer.js.map +1 -0
- package/dist/{prompts → src/prompts}/tree-select.js +83 -86
- package/dist/src/prompts/tree-select.js.map +1 -0
- package/dist/{prompts → src/prompts}/tree.js +69 -67
- package/dist/src/prompts/tree.js.map +1 -0
- package/dist/src/prompts/wait.js +79 -0
- package/dist/src/prompts/wait.js.map +1 -0
- package/dist/src/spinner.js +105 -0
- package/dist/src/spinner.js.map +1 -0
- package/dist/{symbols.js → src/symbols.js} +32 -7
- package/dist/src/symbols.js.map +1 -0
- package/dist/{tasks.js → src/tasks.js} +104 -79
- package/dist/src/tasks.js.map +1 -0
- package/dist/src/theme.js +29 -0
- package/dist/src/theme.js.map +1 -0
- package/dist/src/types.js +8 -0
- package/dist/src/types.js.map +1 -0
- package/dist/{utils.js → src/utils.js} +196 -152
- package/dist/src/utils.js.map +1 -0
- package/package.json +16 -13
- package/dist/ansi.d.ts +0 -36
- package/dist/base.d.ts +0 -60
- package/dist/core.d.ts +0 -1072
- package/dist/data/countries.d.ts +0 -2
- package/dist/data/countries.js +0 -105
- package/dist/data/licenses.d.ts +0 -2
- package/dist/data/licenses.js +0 -109
- package/dist/highlight.d.ts +0 -7
- package/dist/index.d.ts +0 -48
- package/dist/index.js +0 -64
- package/dist/input.d.ts +0 -14
- package/dist/pipeline.d.ts +0 -39
- package/dist/pipeline.js +0 -54
- package/dist/prompts/autocomplete.d.ts +0 -22
- package/dist/prompts/box.d.ts +0 -21
- package/dist/prompts/breadcrumb-search.d.ts +0 -14
- package/dist/prompts/breadcrumb.d.ts +0 -32
- package/dist/prompts/byte.d.ts +0 -13
- package/dist/prompts/calculator.d.ts +0 -17
- package/dist/prompts/calendar.d.ts +0 -33
- package/dist/prompts/checkbox.d.ts +0 -13
- package/dist/prompts/code.d.ts +0 -19
- package/dist/prompts/color.d.ts +0 -14
- package/dist/prompts/confirm.d.ts +0 -8
- package/dist/prompts/connection-string.d.ts +0 -18
- package/dist/prompts/cron.d.ts +0 -13
- package/dist/prompts/curl-utils.d.ts +0 -25
- package/dist/prompts/curl-utils.js +0 -41
- package/dist/prompts/curl.d.ts +0 -41
- package/dist/prompts/data-inspector.d.ts +0 -22
- package/dist/prompts/date.d.ts +0 -12
- package/dist/prompts/dependency.d.ts +0 -16
- package/dist/prompts/dial.d.ts +0 -10
- package/dist/prompts/diff.d.ts +0 -10
- package/dist/prompts/diff.js +0 -101
- package/dist/prompts/draw.d.ts +0 -20
- package/dist/prompts/editor.d.ts +0 -14
- package/dist/prompts/editor.js +0 -203
- package/dist/prompts/emoji.d.ts +0 -18
- package/dist/prompts/exec.d.ts +0 -17
- package/dist/prompts/file.d.ts +0 -21
- package/dist/prompts/file.js +0 -210
- package/dist/prompts/form.d.ts +0 -18
- package/dist/prompts/fuzzy-multi-column.d.ts +0 -12
- package/dist/prompts/fuzzy.d.ts +0 -12
- package/dist/prompts/gauge.d.ts +0 -21
- package/dist/prompts/gauge.js +0 -130
- package/dist/prompts/grid.d.ts +0 -14
- package/dist/prompts/heatmap.d.ts +0 -13
- package/dist/prompts/ip.d.ts +0 -11
- package/dist/prompts/kanban.d.ts +0 -17
- package/dist/prompts/keypress.d.ts +0 -7
- package/dist/prompts/keypress.js +0 -55
- package/dist/prompts/license.d.ts +0 -9
- package/dist/prompts/license.js +0 -105
- package/dist/prompts/list.d.ts +0 -9
- package/dist/prompts/map.d.ts +0 -17
- package/dist/prompts/match.d.ts +0 -19
- package/dist/prompts/miller.d.ts +0 -15
- package/dist/prompts/multi-column-select.d.ts +0 -10
- package/dist/prompts/multi-range.d.ts +0 -9
- package/dist/prompts/multi-select.d.ts +0 -15
- package/dist/prompts/number.d.ts +0 -11
- package/dist/prompts/otp.d.ts +0 -10
- package/dist/prompts/pattern.d.ts +0 -22
- package/dist/prompts/phone.d.ts +0 -41
- package/dist/prompts/quiz-select.d.ts +0 -10
- package/dist/prompts/quiz-select.js +0 -104
- package/dist/prompts/quiz-text.d.ts +0 -11
- package/dist/prompts/quiz-text.js +0 -82
- package/dist/prompts/range.d.ts +0 -9
- package/dist/prompts/rating.d.ts +0 -8
- package/dist/prompts/regex.d.ts +0 -13
- package/dist/prompts/region.d.ts +0 -11
- package/dist/prompts/schedule.d.ts +0 -20
- package/dist/prompts/scroll.d.ts +0 -13
- package/dist/prompts/seat.d.ts +0 -17
- package/dist/prompts/seat.js +0 -165
- package/dist/prompts/select-range.d.ts +0 -8
- package/dist/prompts/select.d.ts +0 -15
- package/dist/prompts/semver.d.ts +0 -6
- package/dist/prompts/shortcut.d.ts +0 -9
- package/dist/prompts/shortcut.js +0 -135
- package/dist/prompts/slider.d.ts +0 -8
- package/dist/prompts/slot.d.ts +0 -16
- package/dist/prompts/slot.js +0 -107
- package/dist/prompts/snippet.d.ts +0 -19
- package/dist/prompts/sort-grid.d.ts +0 -16
- package/dist/prompts/sort.d.ts +0 -14
- package/dist/prompts/spam.d.ts +0 -17
- package/dist/prompts/spam.js +0 -62
- package/dist/prompts/spreadsheet.d.ts +0 -21
- package/dist/prompts/table.d.ts +0 -14
- package/dist/prompts/text.d.ts +0 -17
- package/dist/prompts/time.d.ts +0 -12
- package/dist/prompts/toggle.d.ts +0 -8
- package/dist/prompts/toggle.js +0 -47
- package/dist/prompts/transfer.d.ts +0 -18
- package/dist/prompts/tree-select.d.ts +0 -31
- package/dist/prompts/tree.d.ts +0 -20
- package/dist/prompts/wait.d.ts +0 -18
- package/dist/prompts/wait.js +0 -62
- package/dist/spinner.d.ts +0 -33
- package/dist/spinner.js +0 -89
- package/dist/symbols.d.ts +0 -33
- package/dist/tasks.d.ts +0 -57
- package/dist/theme.d.ts +0 -2
- package/dist/theme.js +0 -20
- package/dist/types.d.ts +0 -503
- package/dist/types.js +0 -5
- package/dist/utils.d.ts +0 -81
|
@@ -1,63 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
{
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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 = `${
|
|
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 += `${
|
|
39
|
-
}
|
|
40
|
-
|
|
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 += ` ${
|
|
48
|
-
output += ` ${
|
|
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) {
|
|
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') {
|
|
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
|
-
|
|
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"}
|