mepcli 2.0.0-beta.2 → 2.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ansi.d.ts +36 -0
- package/dist/ansi.js +1 -0
- package/dist/base.d.ts +60 -0
- package/dist/base.js +1 -0
- package/dist/{src/core.js → core.d.ts} +175 -345
- package/dist/core.js +1 -0
- package/dist/data/countries.d.ts +2 -0
- package/dist/data/countries.js +1 -0
- package/dist/data/licenses.d.ts +2 -0
- package/dist/data/licenses.js +1 -0
- package/dist/highlight.d.ts +7 -0
- package/dist/highlight.js +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.js +1 -0
- package/dist/input.d.ts +14 -0
- package/dist/input.js +1 -0
- package/dist/pipeline.d.ts +90 -0
- package/dist/pipeline.js +1 -0
- package/dist/prompts/autocomplete.d.ts +22 -0
- package/dist/prompts/autocomplete.js +1 -0
- package/dist/prompts/box.d.ts +21 -0
- package/dist/prompts/box.js +4 -0
- package/dist/prompts/breadcrumb-search.d.ts +14 -0
- package/dist/prompts/breadcrumb-search.js +2 -0
- package/dist/prompts/breadcrumb.d.ts +32 -0
- package/dist/prompts/breadcrumb.js +3 -0
- package/dist/prompts/byte.d.ts +13 -0
- package/dist/prompts/byte.js +5 -0
- package/dist/prompts/calculator.d.ts +17 -0
- package/dist/prompts/calculator.js +3 -0
- package/dist/prompts/calendar.d.ts +33 -0
- package/dist/prompts/calendar.js +3 -0
- package/dist/prompts/checkbox.d.ts +13 -0
- package/dist/prompts/checkbox.js +2 -0
- package/dist/prompts/code.d.ts +19 -0
- package/dist/prompts/code.js +4 -0
- package/dist/prompts/color.d.ts +14 -0
- package/dist/prompts/color.js +10 -0
- package/dist/prompts/confirm.d.ts +8 -0
- package/dist/prompts/confirm.js +1 -0
- package/dist/prompts/connection-string.d.ts +18 -0
- package/dist/prompts/connection-string.js +1 -0
- package/dist/prompts/cron.d.ts +13 -0
- package/dist/prompts/cron.js +4 -0
- package/dist/prompts/curl-utils.d.ts +25 -0
- package/dist/prompts/curl-utils.js +1 -0
- package/dist/prompts/curl.d.ts +41 -0
- package/dist/prompts/curl.js +12 -0
- package/dist/prompts/data-inspector.d.ts +22 -0
- package/dist/prompts/data-inspector.js +5 -0
- package/dist/prompts/date.d.ts +12 -0
- package/dist/prompts/date.js +2 -0
- package/dist/prompts/dependency.d.ts +16 -0
- package/dist/prompts/dependency.js +3 -0
- package/dist/prompts/dial.d.ts +10 -0
- package/dist/prompts/dial.js +3 -0
- package/dist/prompts/diff.d.ts +10 -0
- package/dist/prompts/diff.js +10 -0
- package/dist/prompts/draw.d.ts +20 -0
- package/dist/prompts/draw.js +6 -0
- package/dist/prompts/editor.d.ts +14 -0
- package/dist/prompts/editor.js +2 -0
- package/dist/prompts/emoji.d.ts +18 -0
- package/dist/prompts/emoji.js +5 -0
- package/dist/prompts/exec.d.ts +17 -0
- package/dist/prompts/exec.js +1 -0
- package/dist/prompts/file.d.ts +21 -0
- package/dist/prompts/file.js +2 -0
- package/dist/prompts/form.d.ts +18 -0
- package/dist/prompts/form.js +1 -0
- package/dist/prompts/fuzzy-multi-column.d.ts +12 -0
- package/dist/prompts/fuzzy-multi-column.js +2 -0
- package/dist/prompts/fuzzy.d.ts +12 -0
- package/dist/prompts/fuzzy.js +2 -0
- package/dist/prompts/gauge.d.ts +21 -0
- package/dist/prompts/gauge.js +4 -0
- package/dist/prompts/grid.d.ts +14 -0
- package/dist/prompts/grid.js +2 -0
- package/dist/prompts/heatmap.d.ts +13 -0
- package/dist/prompts/heatmap.js +2 -0
- package/dist/prompts/ip.d.ts +11 -0
- package/dist/prompts/ip.js +3 -0
- package/dist/prompts/kanban.d.ts +17 -0
- package/dist/prompts/kanban.js +4 -0
- package/dist/prompts/keypress.d.ts +7 -0
- package/dist/prompts/keypress.js +1 -0
- package/dist/prompts/license.d.ts +9 -0
- package/dist/prompts/license.js +13 -0
- package/dist/prompts/list.d.ts +9 -0
- package/dist/prompts/list.js +1 -0
- package/dist/prompts/map.d.ts +17 -0
- package/dist/prompts/map.js +5 -0
- package/dist/prompts/match.d.ts +19 -0
- package/dist/prompts/match.js +7 -0
- package/dist/prompts/miller.d.ts +15 -0
- package/dist/prompts/miller.js +2 -0
- package/dist/prompts/multi-column-select.d.ts +10 -0
- package/dist/prompts/multi-column-select.js +2 -0
- package/dist/prompts/multi-range.d.ts +9 -0
- package/dist/prompts/multi-range.js +3 -0
- package/dist/prompts/multi-select.d.ts +15 -0
- package/dist/prompts/multi-select.js +4 -0
- package/dist/prompts/number.d.ts +11 -0
- package/dist/prompts/number.js +2 -0
- package/dist/prompts/otp.d.ts +10 -0
- package/dist/prompts/otp.js +2 -0
- package/dist/prompts/pattern.d.ts +22 -0
- package/dist/prompts/pattern.js +4 -0
- package/dist/prompts/phone.d.ts +41 -0
- package/dist/prompts/phone.js +3 -0
- package/dist/prompts/quiz-select.d.ts +10 -0
- package/dist/prompts/quiz-select.js +7 -0
- package/dist/prompts/quiz-text.d.ts +11 -0
- package/dist/prompts/quiz-text.js +8 -0
- package/dist/prompts/range.d.ts +9 -0
- package/dist/prompts/range.js +1 -0
- package/dist/prompts/rating.d.ts +8 -0
- package/dist/prompts/rating.js +1 -0
- package/dist/prompts/regex.d.ts +13 -0
- package/dist/prompts/regex.js +5 -0
- package/dist/prompts/region.d.ts +11 -0
- package/dist/prompts/region.js +5 -0
- package/dist/prompts/schedule.d.ts +20 -0
- package/dist/prompts/schedule.js +5 -0
- package/dist/prompts/scroll.d.ts +13 -0
- package/dist/prompts/scroll.js +1 -0
- package/dist/prompts/seat.d.ts +17 -0
- package/dist/prompts/seat.js +5 -0
- package/dist/prompts/select-range.d.ts +8 -0
- package/dist/prompts/select-range.js +3 -0
- package/dist/prompts/select.d.ts +15 -0
- package/dist/prompts/select.js +2 -0
- package/dist/prompts/semver.d.ts +6 -0
- package/dist/prompts/semver.js +1 -0
- package/dist/prompts/shortcut.d.ts +9 -0
- package/dist/prompts/shortcut.js +1 -0
- package/dist/prompts/slider.d.ts +8 -0
- package/dist/prompts/slider.js +1 -0
- package/dist/prompts/slot.d.ts +16 -0
- package/dist/prompts/slot.js +8 -0
- package/dist/prompts/snippet.d.ts +19 -0
- package/dist/prompts/snippet.js +4 -0
- package/dist/prompts/sort-grid.d.ts +16 -0
- package/dist/prompts/sort-grid.js +2 -0
- package/dist/prompts/sort.d.ts +14 -0
- package/dist/prompts/sort.js +2 -0
- package/dist/prompts/spam.d.ts +17 -0
- package/dist/prompts/spam.js +2 -0
- package/dist/prompts/spreadsheet.d.ts +21 -0
- package/dist/prompts/spreadsheet.js +7 -0
- package/dist/prompts/table.d.ts +14 -0
- package/dist/prompts/table.js +3 -0
- package/dist/prompts/text.d.ts +17 -0
- package/dist/prompts/text.js +2 -0
- package/dist/prompts/time.d.ts +12 -0
- package/dist/prompts/time.js +2 -0
- package/dist/prompts/toggle.d.ts +8 -0
- package/dist/prompts/toggle.js +1 -0
- package/dist/prompts/transfer.d.ts +18 -0
- package/dist/prompts/transfer.js +5 -0
- package/dist/prompts/tree-select.d.ts +31 -0
- package/dist/prompts/tree-select.js +3 -0
- package/dist/prompts/tree.d.ts +20 -0
- package/dist/prompts/tree.js +3 -0
- package/dist/prompts/wait.d.ts +18 -0
- package/dist/prompts/wait.js +1 -0
- package/dist/spinner.d.ts +33 -0
- package/dist/spinner.js +3 -0
- package/dist/symbols.d.ts +33 -0
- package/dist/symbols.js +1 -0
- package/dist/tasks.d.ts +57 -0
- package/dist/tasks.js +1 -0
- package/dist/theme.d.ts +2 -0
- package/dist/theme.js +1 -0
- package/dist/types.d.ts +503 -0
- package/dist/types.js +1 -0
- package/dist/utils.d.ts +81 -0
- package/dist/utils.js +1 -0
- package/package.json +8 -9
- package/dist/src/ansi.js +0 -50
- package/dist/src/ansi.js.map +0 -1
- package/dist/src/base.js +0 -258
- package/dist/src/base.js.map +0 -1
- package/dist/src/core.js.map +0 -1
- package/dist/src/data/countries.js +0 -569
- package/dist/src/data/countries.js.map +0 -1
- package/dist/src/data/licenses.js +0 -480
- package/dist/src/data/licenses.js.map +0 -1
- package/dist/src/highlight.js +0 -185
- package/dist/src/highlight.js.map +0 -1
- package/dist/src/index.js +0 -66
- package/dist/src/index.js.map +0 -1
- package/dist/src/input.js +0 -158
- package/dist/src/input.js.map +0 -1
- package/dist/src/pipeline.js +0 -273
- package/dist/src/pipeline.js.map +0 -1
- package/dist/src/prompts/autocomplete.js +0 -171
- package/dist/src/prompts/autocomplete.js.map +0 -1
- package/dist/src/prompts/box.js +0 -225
- package/dist/src/prompts/box.js.map +0 -1
- package/dist/src/prompts/breadcrumb-search.js +0 -260
- package/dist/src/prompts/breadcrumb-search.js.map +0 -1
- package/dist/src/prompts/breadcrumb.js +0 -307
- package/dist/src/prompts/breadcrumb.js.map +0 -1
- package/dist/src/prompts/byte.js +0 -176
- package/dist/src/prompts/byte.js.map +0 -1
- package/dist/src/prompts/calculator.js +0 -243
- package/dist/src/prompts/calculator.js.map +0 -1
- package/dist/src/prompts/calendar.js +0 -430
- package/dist/src/prompts/calendar.js.map +0 -1
- package/dist/src/prompts/checkbox.js +0 -159
- package/dist/src/prompts/checkbox.js.map +0 -1
- package/dist/src/prompts/code.js +0 -271
- package/dist/src/prompts/code.js.map +0 -1
- package/dist/src/prompts/color.js +0 -165
- package/dist/src/prompts/color.js.map +0 -1
- package/dist/src/prompts/confirm.js +0 -55
- package/dist/src/prompts/confirm.js.map +0 -1
- package/dist/src/prompts/connection-string.js +0 -120
- package/dist/src/prompts/connection-string.js.map +0 -1
- package/dist/src/prompts/cron.js +0 -207
- package/dist/src/prompts/cron.js.map +0 -1
- package/dist/src/prompts/curl-utils.js +0 -71
- package/dist/src/prompts/curl-utils.js.map +0 -1
- package/dist/src/prompts/curl.js +0 -431
- package/dist/src/prompts/curl.js.map +0 -1
- package/dist/src/prompts/data-inspector.js +0 -261
- package/dist/src/prompts/data-inspector.js.map +0 -1
- package/dist/src/prompts/date.js +0 -185
- package/dist/src/prompts/date.js.map +0 -1
- package/dist/src/prompts/dependency.js +0 -283
- package/dist/src/prompts/dependency.js.map +0 -1
- package/dist/src/prompts/dial.js +0 -124
- package/dist/src/prompts/dial.js.map +0 -1
- package/dist/src/prompts/diff.js +0 -118
- package/dist/src/prompts/diff.js.map +0 -1
- package/dist/src/prompts/draw.js +0 -191
- package/dist/src/prompts/draw.js.map +0 -1
- package/dist/src/prompts/editor.js +0 -234
- package/dist/src/prompts/editor.js.map +0 -1
- package/dist/src/prompts/emoji.js +0 -226
- package/dist/src/prompts/emoji.js.map +0 -1
- package/dist/src/prompts/exec.js +0 -151
- package/dist/src/prompts/exec.js.map +0 -1
- package/dist/src/prompts/file.js +0 -217
- package/dist/src/prompts/file.js.map +0 -1
- package/dist/src/prompts/form.js +0 -241
- package/dist/src/prompts/form.js.map +0 -1
- package/dist/src/prompts/fuzzy-multi-column.js +0 -161
- package/dist/src/prompts/fuzzy-multi-column.js.map +0 -1
- package/dist/src/prompts/fuzzy.js +0 -147
- package/dist/src/prompts/fuzzy.js.map +0 -1
- package/dist/src/prompts/gauge.js +0 -137
- package/dist/src/prompts/gauge.js.map +0 -1
- package/dist/src/prompts/grid.js +0 -191
- package/dist/src/prompts/grid.js.map +0 -1
- package/dist/src/prompts/heatmap.js +0 -147
- package/dist/src/prompts/heatmap.js.map +0 -1
- package/dist/src/prompts/ip.js +0 -138
- package/dist/src/prompts/ip.js.map +0 -1
- package/dist/src/prompts/kanban.js +0 -233
- package/dist/src/prompts/kanban.js.map +0 -1
- package/dist/src/prompts/keypress.js +0 -54
- package/dist/src/prompts/keypress.js.map +0 -1
- package/dist/src/prompts/license.js +0 -144
- package/dist/src/prompts/license.js.map +0 -1
- package/dist/src/prompts/list.js +0 -124
- package/dist/src/prompts/list.js.map +0 -1
- package/dist/src/prompts/map.js +0 -262
- package/dist/src/prompts/map.js.map +0 -1
- package/dist/src/prompts/match.js +0 -271
- package/dist/src/prompts/match.js.map +0 -1
- package/dist/src/prompts/miller.js +0 -228
- package/dist/src/prompts/miller.js.map +0 -1
- package/dist/src/prompts/multi-column-select.js +0 -176
- package/dist/src/prompts/multi-column-select.js.map +0 -1
- package/dist/src/prompts/multi-range.js +0 -189
- package/dist/src/prompts/multi-range.js.map +0 -1
- package/dist/src/prompts/multi-select.js +0 -183
- package/dist/src/prompts/multi-select.js.map +0 -1
- package/dist/src/prompts/number.js +0 -166
- package/dist/src/prompts/number.js.map +0 -1
- package/dist/src/prompts/otp.js +0 -107
- package/dist/src/prompts/otp.js.map +0 -1
- package/dist/src/prompts/pattern.js +0 -252
- package/dist/src/prompts/pattern.js.map +0 -1
- package/dist/src/prompts/phone.js +0 -398
- package/dist/src/prompts/phone.js.map +0 -1
- package/dist/src/prompts/quiz-select.js +0 -114
- package/dist/src/prompts/quiz-select.js.map +0 -1
- package/dist/src/prompts/quiz-text.js +0 -98
- package/dist/src/prompts/quiz-text.js.map +0 -1
- package/dist/src/prompts/range.js +0 -164
- package/dist/src/prompts/range.js.map +0 -1
- package/dist/src/prompts/rating.js +0 -83
- package/dist/src/prompts/rating.js.map +0 -1
- package/dist/src/prompts/regex.js +0 -145
- package/dist/src/prompts/regex.js.map +0 -1
- package/dist/src/prompts/region.js +0 -170
- package/dist/src/prompts/region.js.map +0 -1
- package/dist/src/prompts/schedule.js +0 -270
- package/dist/src/prompts/schedule.js.map +0 -1
- package/dist/src/prompts/scroll.js +0 -155
- package/dist/src/prompts/scroll.js.map +0 -1
- package/dist/src/prompts/seat.js +0 -164
- package/dist/src/prompts/seat.js.map +0 -1
- package/dist/src/prompts/select-range.js +0 -148
- package/dist/src/prompts/select-range.js.map +0 -1
- package/dist/src/prompts/select.js +0 -163
- package/dist/src/prompts/select.js.map +0 -1
- package/dist/src/prompts/semver.js +0 -43
- package/dist/src/prompts/semver.js.map +0 -1
- package/dist/src/prompts/shortcut.js +0 -133
- package/dist/src/prompts/shortcut.js.map +0 -1
- package/dist/src/prompts/slider.js +0 -69
- package/dist/src/prompts/slider.js.map +0 -1
- package/dist/src/prompts/slot.js +0 -117
- package/dist/src/prompts/slot.js.map +0 -1
- package/dist/src/prompts/snippet.js +0 -228
- package/dist/src/prompts/snippet.js.map +0 -1
- package/dist/src/prompts/sort-grid.js +0 -151
- package/dist/src/prompts/sort-grid.js.map +0 -1
- package/dist/src/prompts/sort.js +0 -166
- package/dist/src/prompts/sort.js.map +0 -1
- package/dist/src/prompts/spam.js +0 -80
- package/dist/src/prompts/spam.js.map +0 -1
- package/dist/src/prompts/spreadsheet.js +0 -240
- package/dist/src/prompts/spreadsheet.js.map +0 -1
- package/dist/src/prompts/table.js +0 -120
- package/dist/src/prompts/table.js.map +0 -1
- package/dist/src/prompts/text.js +0 -317
- package/dist/src/prompts/text.js.map +0 -1
- package/dist/src/prompts/time.js +0 -211
- package/dist/src/prompts/time.js.map +0 -1
- package/dist/src/prompts/toggle.js +0 -53
- package/dist/src/prompts/toggle.js.map +0 -1
- package/dist/src/prompts/transfer.js +0 -207
- package/dist/src/prompts/transfer.js.map +0 -1
- package/dist/src/prompts/tree-select.js +0 -270
- package/dist/src/prompts/tree-select.js.map +0 -1
- package/dist/src/prompts/tree.js +0 -233
- package/dist/src/prompts/tree.js.map +0 -1
- package/dist/src/prompts/wait.js +0 -79
- package/dist/src/prompts/wait.js.map +0 -1
- package/dist/src/spinner.js +0 -105
- package/dist/src/spinner.js.map +0 -1
- package/dist/src/symbols.js +0 -66
- package/dist/src/symbols.js.map +0 -1
- package/dist/src/tasks.js +0 -231
- package/dist/src/tasks.js.map +0 -1
- package/dist/src/theme.js +0 -29
- package/dist/src/theme.js.map +0 -1
- package/dist/src/types.js +0 -8
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils.js +0 -480
- package/dist/src/utils.js.map +0 -1
package/dist/ansi.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ANSI Escape Codes
|
|
3
|
+
* Manual definitions to maintain zero-dependency status.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ANSI: {
|
|
6
|
+
RESET: string;
|
|
7
|
+
BOLD: string;
|
|
8
|
+
DIM: string;
|
|
9
|
+
ITALIC: string;
|
|
10
|
+
UNDERLINE: string;
|
|
11
|
+
REVERSE: string;
|
|
12
|
+
FG_GREEN: string;
|
|
13
|
+
FG_CYAN: string;
|
|
14
|
+
FG_YELLOW: string;
|
|
15
|
+
FG_RED: string;
|
|
16
|
+
FG_GRAY: string;
|
|
17
|
+
FG_WHITE: string;
|
|
18
|
+
FG_BLUE: string;
|
|
19
|
+
FG_MAGENTA: string;
|
|
20
|
+
FG_BLACK: string;
|
|
21
|
+
BG_YELLOW: string;
|
|
22
|
+
BG_BLUE: string;
|
|
23
|
+
BG_CYAN: string;
|
|
24
|
+
BG_GREEN: string;
|
|
25
|
+
BG_RED: string;
|
|
26
|
+
ERASE_LINE: string;
|
|
27
|
+
ERASE_DOWN: string;
|
|
28
|
+
CURSOR_LEFT: string;
|
|
29
|
+
HIDE_CURSOR: string;
|
|
30
|
+
SHOW_CURSOR: string;
|
|
31
|
+
UP: string;
|
|
32
|
+
DOWN: string;
|
|
33
|
+
SET_ANY_EVENT_MOUSE: string;
|
|
34
|
+
SET_SGR_EXT_MODE_MOUSE: string;
|
|
35
|
+
DISABLE_MOUSE: string;
|
|
36
|
+
};
|
package/dist/ansi.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"ANSI",{enumerable:true,get:function(){return ANSI}});const ANSI={RESET:"\x1b[0m",BOLD:"\x1b[1m",DIM:"\x1b[2m",ITALIC:"\x1b[3m",UNDERLINE:"\x1b[4m",REVERSE:"\x1b[7m",FG_GREEN:"\x1b[32m",FG_CYAN:"\x1b[36m",FG_YELLOW:"\x1b[33m",FG_RED:"\x1b[31m",FG_GRAY:"\x1b[90m",FG_WHITE:"\x1b[37m",FG_BLUE:"\x1b[34m",FG_MAGENTA:"\x1b[35m",FG_BLACK:"\x1b[30m",BG_YELLOW:"\x1b[43m",BG_BLUE:"\x1b[44m",BG_CYAN:"\x1b[46m",BG_GREEN:"\x1b[42m",BG_RED:"\x1b[41m",ERASE_LINE:"\x1b[2K",ERASE_DOWN:"\x1b[J",CURSOR_LEFT:"\x1b[1000D",HIDE_CURSOR:"\x1b[?25l",SHOW_CURSOR:"\x1b[?25h",UP:"\x1b[A",DOWN:"\x1b[B",SET_ANY_EVENT_MOUSE:"\x1b[?1003h",SET_SGR_EXT_MODE_MOUSE:"\x1b[?1006h",DISABLE_MOUSE:"\x1b[?1003l\x1b[?1006l"};
|
package/dist/base.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { MouseEvent } from './types';
|
|
2
|
+
import { detectCapabilities } from './utils';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for all prompts.
|
|
5
|
+
* Implements a Robust Linear Scan Diffing Engine.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class Prompt<T, O> {
|
|
8
|
+
protected options: O;
|
|
9
|
+
protected value: any;
|
|
10
|
+
protected stdin: NodeJS.ReadStream;
|
|
11
|
+
protected stdout: NodeJS.WriteStream;
|
|
12
|
+
private _resolve?;
|
|
13
|
+
private _reject?;
|
|
14
|
+
private _inputParser;
|
|
15
|
+
private _onKeyHandler?;
|
|
16
|
+
private _onDataHandler?;
|
|
17
|
+
private static warnedComponents;
|
|
18
|
+
protected lastRenderLines: string[];
|
|
19
|
+
protected lastRenderHeight: number;
|
|
20
|
+
protected capabilities: ReturnType<typeof detectCapabilities>;
|
|
21
|
+
constructor(options: O);
|
|
22
|
+
/**
|
|
23
|
+
* Checks if running on Windows and logs a warning message once per component type.
|
|
24
|
+
* Call this in the constructor of problematic prompts.
|
|
25
|
+
*/
|
|
26
|
+
protected checkWindowsAttention(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Warn about experimental prompts.
|
|
29
|
+
* Call this in the constructor of experimental prompts.
|
|
30
|
+
*/
|
|
31
|
+
protected warnExperimental(): void;
|
|
32
|
+
protected abstract render(firstRender: boolean): void;
|
|
33
|
+
protected abstract handleInput(char: string, key: Buffer): void;
|
|
34
|
+
protected handleMouse(_event: MouseEvent): void;
|
|
35
|
+
protected print(text: string): void;
|
|
36
|
+
run(): Promise<T>;
|
|
37
|
+
/**
|
|
38
|
+
* Pauses the input stream and removes listeners.
|
|
39
|
+
* Useful for yielding control to child processes.
|
|
40
|
+
*/
|
|
41
|
+
protected pauseInput(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Resumes the input stream and re-attaches listeners.
|
|
44
|
+
*/
|
|
45
|
+
protected resumeInput(): void;
|
|
46
|
+
protected cleanup(): void;
|
|
47
|
+
protected submit(result: T): void;
|
|
48
|
+
protected cancel(reason: any): void;
|
|
49
|
+
/**
|
|
50
|
+
* Renders the frame using a linear scan diffing algorithm.
|
|
51
|
+
* Prevents flicker and handles height changes (expand/collapse) robustly.
|
|
52
|
+
*/
|
|
53
|
+
protected renderFrame(content: string): void;
|
|
54
|
+
protected stripAnsi(str: string): string;
|
|
55
|
+
protected truncate(str: string, width: number): string;
|
|
56
|
+
protected isUp(char: string): boolean;
|
|
57
|
+
protected isDown(char: string): boolean;
|
|
58
|
+
protected isRight(char: string): boolean;
|
|
59
|
+
protected isLeft(char: string): boolean;
|
|
60
|
+
}
|
package/dist/base.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"Prompt",{enumerable:true,get:function(){return Prompt}});const _ansi=require("./ansi");const _input=require("./input");const _utils=require("./utils");function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}let Prompt=class Prompt{checkWindowsAttention(){const componentName=this.constructor.name;if(process.platform==="win32"&&!Prompt.warnedComponents.has(componentName)){console.warn(`${_ansi.ANSI.FG_YELLOW}Warning:${_ansi.ANSI.RESET} ${componentName} may hang on Windows TTY after multiple cycles. `+`Press 'Enter' if unresponsive.`);Prompt.warnedComponents.add(componentName)}}warnExperimental(){const componentName=this.constructor.name;if(!Prompt.warnedComponents.has(componentName)){console.warn(`${_ansi.ANSI.FG_YELLOW}Warning:${_ansi.ANSI.RESET} ${componentName} is an experimental prompt and may have bugs or unexpected behavior. `+`Use with caution.`);Prompt.warnedComponents.add(componentName)}}handleMouse(_event){}print(text){this.stdout.write(text)}run(){return new Promise((resolve,reject)=>{this._resolve=resolve;this._reject=reject;if(typeof this.stdin.setRawMode==="function"){this.stdin.setRawMode(true)}this.stdin.resume();this.stdin.setEncoding("utf8");const shouldEnableMouse=this.options.mouse!==false&&this.capabilities.hasMouse;if(shouldEnableMouse){this.print(_ansi.ANSI.SET_ANY_EVENT_MOUSE+_ansi.ANSI.SET_SGR_EXT_MODE_MOUSE)}this.print(_ansi.ANSI.HIDE_CURSOR);this.render(true);this._onKeyHandler=(char,buffer)=>{if(char==="\x03"){this.cleanup();this.print(_ansi.ANSI.SHOW_CURSOR+"\n");if(this._reject)this._reject(new Error("User force closed"));return}this.handleInput(char,buffer)};this._inputParser.on("keypress",this._onKeyHandler);this._inputParser.on("mouse",event=>{this.handleMouse(event)});this._onDataHandler=buffer=>{this._inputParser.feed(buffer)};this.stdin.on("data",this._onDataHandler)})}pauseInput(){if(this._onDataHandler){this.stdin.removeListener("data",this._onDataHandler)}if(typeof this.stdin.setRawMode==="function"){this.stdin.setRawMode(false)}this.stdin.pause()}resumeInput(){if(typeof this.stdin.setRawMode==="function"){this.stdin.setRawMode(true)}this.stdin.resume();if(this._onDataHandler){this.stdin.on("data",this._onDataHandler)}}cleanup(){if(this._onDataHandler){this.stdin.removeListener("data",this._onDataHandler)}if(this._onKeyHandler){this._inputParser.removeListener("keypress",this._onKeyHandler)}this.print(_ansi.ANSI.DISABLE_MOUSE);if(typeof this.stdin.setRawMode==="function"){this.stdin.setRawMode(false)}this.stdin.pause();this.print(_ansi.ANSI.SHOW_CURSOR)}submit(result){this.cleanup();this.print("\n");if(this._resolve)this._resolve(result)}cancel(reason){this.cleanup();this.print("\n");if(this._reject)this._reject(reason)}renderFrame(content){const width=this.stdout.columns||80;const rawLines=content.split("\n");const newLines=rawLines.map(line=>this.truncate(line,width));if(this.lastRenderLines.length===0){this.print(newLines.join("\n"));this.lastRenderLines=newLines;this.lastRenderHeight=newLines.length;return}let outputBuffer="";if(this.lastRenderHeight>1){outputBuffer+=`\x1b[${this.lastRenderHeight-1}A`}outputBuffer+="\r";for(let i=0;i<newLines.length;i++){const newLine=newLines[i];if(i>0){if(i<this.lastRenderLines.length){outputBuffer+="\x1b[B\r"}else{outputBuffer+="\n"}}if(i<this.lastRenderLines.length){const oldLine=this.lastRenderLines[i];if(newLine!==oldLine){outputBuffer+=_ansi.ANSI.ERASE_LINE+newLine}}else{outputBuffer+=newLine}}if(newLines.length<this.lastRenderLines.length){outputBuffer+="\n";outputBuffer+=_ansi.ANSI.ERASE_DOWN;outputBuffer+=`\x1b[A`}this.print(outputBuffer);this.lastRenderLines=newLines;this.lastRenderHeight=newLines.length}stripAnsi(str){return(0,_utils.stripAnsi)(str)}truncate(str,width){const visualWidth=(0,_utils.stringWidth)(str);if(visualWidth<=width){return str}let currentWidth=0;let cutIndex=0;let inAnsi=false;for(let i=0;i<str.length;i++){if(str[i]==="\x1b")inAnsi=true;if(!inAnsi){const code=str.charCodeAt(i);const charWidth=code>255?2:1;if(currentWidth+charWidth>width-3){break}currentWidth+=charWidth}else{if(str[i]==="m"||str[i]>="A"&&str[i]<="Z")inAnsi=false}cutIndex=i+1}return str.substring(0,cutIndex)+"..."+_ansi.ANSI.RESET}isUp(char){return char==="\x1b[A"||char==="\x1bOA"}isDown(char){return char==="\x1b[B"||char==="\x1bOB"}isRight(char){return char==="\x1b[C"||char==="\x1bOC"}isLeft(char){return char==="\x1b[D"||char==="\x1bOD"}constructor(options){_define_property(this,"options",void 0);_define_property(this,"value",void 0);_define_property(this,"stdin",void 0);_define_property(this,"stdout",void 0);_define_property(this,"_resolve",void 0);_define_property(this,"_reject",void 0);_define_property(this,"_inputParser",void 0);_define_property(this,"_onKeyHandler",void 0);_define_property(this,"_onDataHandler",void 0);_define_property(this,"lastRenderLines",[]);_define_property(this,"lastRenderHeight",0);_define_property(this,"capabilities",void 0);this.options=options;this.stdin=process.stdin;this.stdout=process.stdout;this._inputParser=new _input.InputParser;this.capabilities=(0,_utils.detectCapabilities)()}};_define_property(Prompt,"warnedComponents",new Set);
|