@hyperfrontend/questions 0.1.0 → 0.2.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/CHANGELOG.md +17 -1
- package/README.md +19 -7
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.cjs.js +7 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.esm.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.cjs.js +5 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js +4 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.cjs.js +6 -0
- package/_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.esm.js +5 -0
- package/index.cjs.js +175 -151
- package/index.d.ts +331 -9
- package/index.d.ts.map +1 -1
- package/index.esm.js +143 -120
- package/package.json +13 -3
- package/index.cjs.js.map +0 -1
- package/index.esm.js.map +0 -1
- package/render.d.ts +0 -113
- package/render.d.ts.map +0 -1
- package/terminal.d.ts +0 -109
- package/terminal.d.ts.map +0 -1
- package/types.d.ts +0 -108
- package/types.d.ts.map +0 -1
package/index.esm.js
CHANGED
|
@@ -1,66 +1,7 @@
|
|
|
1
|
+
import { freeze } from './_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/object/index.esm.js';
|
|
1
2
|
import { createInterface } from 'node:readline';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Safe copies of Object built-in methods.
|
|
5
|
-
*
|
|
6
|
-
* These references are captured at module initialization time to protect against
|
|
7
|
-
* prototype pollution attacks. Import only what you need for tree-shaking.
|
|
8
|
-
*
|
|
9
|
-
* @module @hyperfrontend/immutable-api-utils/built-in-copy/object
|
|
10
|
-
*/
|
|
11
|
-
const _Object = globalThis.Object;
|
|
12
|
-
/**
|
|
13
|
-
* (Safe copy) Prevents modification of existing property attributes and values,
|
|
14
|
-
* and prevents the addition of new properties.
|
|
15
|
-
*/
|
|
16
|
-
const freeze = _Object.freeze;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Safe Promise factory and bound static methods.
|
|
20
|
-
*
|
|
21
|
-
* @module @hyperfrontend/immutable-api-utils/built-in-copy/promise
|
|
22
|
-
*/
|
|
23
|
-
/* eslint-disable workspace/lib-require-jsdoc-example */
|
|
24
|
-
const _Promise = globalThis.Promise;
|
|
25
|
-
const _Reflect = globalThis.Reflect;
|
|
26
|
-
/**
|
|
27
|
-
* (Safe copy) Creates a new Promise using the captured Promise constructor.
|
|
28
|
-
* Use this instead of `new Promise()`.
|
|
29
|
-
*
|
|
30
|
-
* @param executor - The executor function.
|
|
31
|
-
* @returns A new Promise instance.
|
|
32
|
-
*/
|
|
33
|
-
const createPromise = (executor) => _Reflect.construct(_Promise, [executor]);
|
|
34
|
-
/**
|
|
35
|
-
* (Safe copy) Returns a Promise that resolves with the given value.
|
|
36
|
-
*/
|
|
37
|
-
_Promise.resolve.bind(_Promise);
|
|
38
|
-
/**
|
|
39
|
-
* (Safe copy) Returns a Promise that rejects with the given reason.
|
|
40
|
-
*/
|
|
41
|
-
_Promise.reject.bind(_Promise);
|
|
42
|
-
/**
|
|
43
|
-
* (Safe copy) Returns a Promise that resolves when all promises resolve.
|
|
44
|
-
*/
|
|
45
|
-
_Promise.all.bind(_Promise);
|
|
46
|
-
/**
|
|
47
|
-
* (Safe copy) Returns a Promise that resolves/rejects with the first settled promise.
|
|
48
|
-
*/
|
|
49
|
-
_Promise.race.bind(_Promise);
|
|
50
|
-
/**
|
|
51
|
-
* (Safe copy) Returns a Promise that resolves when all promises settle.
|
|
52
|
-
*/
|
|
53
|
-
_Promise.allSettled.bind(_Promise);
|
|
54
|
-
/**
|
|
55
|
-
* (Safe copy) Returns a Promise that resolves with the first fulfilled promise.
|
|
56
|
-
*/
|
|
57
|
-
_Promise.any.bind(_Promise);
|
|
58
|
-
/**
|
|
59
|
-
* (Safe copy) Creates a Promise along with its resolve and reject functions.
|
|
60
|
-
* Note: Available only in ES2024+ environments.
|
|
61
|
-
*/
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
-
_Promise.withResolvers?.bind(_Promise);
|
|
3
|
+
import { createPromise } from './_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/promise/index.esm.js';
|
|
4
|
+
import { max, min } from './_dependencies/@hyperfrontend/immutable-api-utils/built-in-copy/math/index.esm.js';
|
|
64
5
|
|
|
65
6
|
/**
|
|
66
7
|
* Terminal I/O utilities using Node.js readline.
|
|
@@ -105,6 +46,13 @@ const Ansi = freeze({
|
|
|
105
46
|
* @returns ANSI escape sequence string
|
|
106
47
|
*/
|
|
107
48
|
cursorDown: (n) => `\x1B[${n}B`,
|
|
49
|
+
/**
|
|
50
|
+
* Generates ANSI escape code to move cursor left by specified columns.
|
|
51
|
+
*
|
|
52
|
+
* @param n - Number of columns to move left
|
|
53
|
+
* @returns ANSI escape sequence string
|
|
54
|
+
*/
|
|
55
|
+
cursorLeft: (n) => `\x1B[${n}D`,
|
|
108
56
|
/** Escape code to hide cursor */
|
|
109
57
|
HideCursor: '\x1B[?25l',
|
|
110
58
|
/** Escape code to show cursor */
|
|
@@ -127,6 +75,8 @@ const Ansi = freeze({
|
|
|
127
75
|
Green: '\x1B[32m',
|
|
128
76
|
/** Escape code for yellow foreground */
|
|
129
77
|
Yellow: '\x1B[33m',
|
|
78
|
+
/** Escape code for red foreground */
|
|
79
|
+
Red: '\x1B[31m',
|
|
130
80
|
/** Escape code for gray foreground */
|
|
131
81
|
Gray: '\x1B[90m',
|
|
132
82
|
});
|
|
@@ -274,6 +224,13 @@ const style = freeze({
|
|
|
274
224
|
* @returns Text wrapped in yellow ANSI codes
|
|
275
225
|
*/
|
|
276
226
|
yellow: (text) => `${Ansi.Yellow}${text}${Ansi.Reset}`,
|
|
227
|
+
/**
|
|
228
|
+
* Applies red color to text.
|
|
229
|
+
*
|
|
230
|
+
* @param text - Text to style
|
|
231
|
+
* @returns Text wrapped in red ANSI codes
|
|
232
|
+
*/
|
|
233
|
+
red: (text) => `${Ansi.Red}${text}${Ansi.Reset}`,
|
|
277
234
|
/**
|
|
278
235
|
* Applies gray color to text.
|
|
279
236
|
*
|
|
@@ -444,7 +401,7 @@ function arrayIncludes(arr, value) {
|
|
|
444
401
|
* @param query - Search query string
|
|
445
402
|
* @returns Array of indices matching the query
|
|
446
403
|
*/
|
|
447
|
-
function filterChoices(choices, query) {
|
|
404
|
+
function filterChoices$1(choices, query) {
|
|
448
405
|
if (!query) {
|
|
449
406
|
return choices.map((_, i) => i);
|
|
450
407
|
}
|
|
@@ -657,7 +614,7 @@ function processKey$2(key, state, config) {
|
|
|
657
614
|
if (key === Key.Backspace || key === '\b') {
|
|
658
615
|
if (state.searchQuery.length > 0) {
|
|
659
616
|
const newQuery = state.searchQuery.slice(0, -1);
|
|
660
|
-
const newFiltered = filterChoices(state.choices, newQuery);
|
|
617
|
+
const newFiltered = filterChoices$1(state.choices, newQuery);
|
|
661
618
|
return freeze({
|
|
662
619
|
...state,
|
|
663
620
|
searchQuery: newQuery,
|
|
@@ -670,7 +627,7 @@ function processKey$2(key, state, config) {
|
|
|
670
627
|
}
|
|
671
628
|
if (key.length === 1 && key >= ' ' && key !== Key.Space) {
|
|
672
629
|
const newQuery = state.searchQuery + key;
|
|
673
|
-
const newFiltered = filterChoices(state.choices, newQuery);
|
|
630
|
+
const newFiltered = filterChoices$1(state.choices, newQuery);
|
|
674
631
|
return freeze({
|
|
675
632
|
...state,
|
|
676
633
|
searchQuery: newQuery,
|
|
@@ -751,7 +708,7 @@ async function multiselect(config) {
|
|
|
751
708
|
term.write(Ansi.HideCursor);
|
|
752
709
|
const redraw = (submitted = false) => {
|
|
753
710
|
if (lineCount > 0) {
|
|
754
|
-
term.write(Ansi.cursorUp(lineCount
|
|
711
|
+
term.write(Ansi.cursorUp(lineCount) + Ansi.CursorStart);
|
|
755
712
|
}
|
|
756
713
|
term.write(Ansi.ClearToEnd);
|
|
757
714
|
lineCount = render$2(term, config, state, submitted);
|
|
@@ -765,7 +722,7 @@ async function multiselect(config) {
|
|
|
765
722
|
const key = await term.readKey();
|
|
766
723
|
if (term.isCancelled()) {
|
|
767
724
|
if (lineCount > 0) {
|
|
768
|
-
term.write(Ansi.cursorUp(lineCount
|
|
725
|
+
term.write(Ansi.cursorUp(lineCount) + Ansi.CursorStart);
|
|
769
726
|
}
|
|
770
727
|
term.write(Ansi.ClearToEnd);
|
|
771
728
|
term.write(renderMessage(config.message) + renderCancelled() + '\n');
|
|
@@ -782,7 +739,7 @@ async function multiselect(config) {
|
|
|
782
739
|
}
|
|
783
740
|
const selectedValues = state.selected.map((i) => state.choices[i]?.value).filter((v) => v !== undefined);
|
|
784
741
|
if (lineCount > 0) {
|
|
785
|
-
term.write(Ansi.cursorUp(lineCount
|
|
742
|
+
term.write(Ansi.cursorUp(lineCount) + Ansi.CursorStart);
|
|
786
743
|
}
|
|
787
744
|
term.write(Ansi.ClearToEnd);
|
|
788
745
|
render$2(term, config, state, true);
|
|
@@ -797,6 +754,27 @@ async function multiselect(config) {
|
|
|
797
754
|
}
|
|
798
755
|
}
|
|
799
756
|
|
|
757
|
+
/**
|
|
758
|
+
* Filters choices based on search query.
|
|
759
|
+
*
|
|
760
|
+
* @internal
|
|
761
|
+
* @param choices - All available choices
|
|
762
|
+
* @param query - Search query string
|
|
763
|
+
* @returns Array of indices matching the query
|
|
764
|
+
*/
|
|
765
|
+
function filterChoices(choices, query) {
|
|
766
|
+
if (!query) {
|
|
767
|
+
return choices.map((_, i) => i);
|
|
768
|
+
}
|
|
769
|
+
const lowerQuery = query.toLowerCase();
|
|
770
|
+
const indices = [];
|
|
771
|
+
choices.forEach((choice, i) => {
|
|
772
|
+
if (choice.label.toLowerCase().includes(lowerQuery)) {
|
|
773
|
+
indices.push(i);
|
|
774
|
+
}
|
|
775
|
+
});
|
|
776
|
+
return freeze(indices);
|
|
777
|
+
}
|
|
800
778
|
/**
|
|
801
779
|
* Creates initial state for select prompt.
|
|
802
780
|
*
|
|
@@ -808,6 +786,8 @@ function createInitialState$1(config) {
|
|
|
808
786
|
return freeze({
|
|
809
787
|
cursor: config.initial ?? 0,
|
|
810
788
|
choices: config.choices,
|
|
789
|
+
filteredIndices: config.choices.map((_, i) => i),
|
|
790
|
+
searchQuery: '',
|
|
811
791
|
scrollOffset: 0,
|
|
812
792
|
});
|
|
813
793
|
}
|
|
@@ -817,12 +797,12 @@ function createInitialState$1(config) {
|
|
|
817
797
|
* @internal
|
|
818
798
|
* @param state - Current prompt state
|
|
819
799
|
* @param maxVisible - Maximum number of visible choices
|
|
820
|
-
* @returns
|
|
800
|
+
* @returns Object containing visible indices and start index
|
|
821
801
|
*/
|
|
822
802
|
function getVisibleChoices(state, maxVisible) {
|
|
823
|
-
const total = state.
|
|
803
|
+
const total = state.filteredIndices.length;
|
|
824
804
|
if (total <= maxVisible) {
|
|
825
|
-
return {
|
|
805
|
+
return { indices: state.filteredIndices, startIndex: 0 };
|
|
826
806
|
}
|
|
827
807
|
let startIndex = state.scrollOffset;
|
|
828
808
|
if (state.cursor < startIndex) {
|
|
@@ -832,7 +812,7 @@ function getVisibleChoices(state, maxVisible) {
|
|
|
832
812
|
startIndex = state.cursor - maxVisible + 1;
|
|
833
813
|
}
|
|
834
814
|
return {
|
|
835
|
-
|
|
815
|
+
indices: state.filteredIndices.slice(startIndex, startIndex + maxVisible),
|
|
836
816
|
startIndex,
|
|
837
817
|
};
|
|
838
818
|
}
|
|
@@ -841,13 +821,11 @@ function getVisibleChoices(state, maxVisible) {
|
|
|
841
821
|
*
|
|
842
822
|
* @internal
|
|
843
823
|
* @param choice - The choice to render
|
|
844
|
-
* @param isSelected - Whether this choice is selected
|
|
845
824
|
* @param isFocused - Whether cursor is on this choice
|
|
846
825
|
* @returns Formatted choice string
|
|
847
826
|
*/
|
|
848
|
-
function renderChoice(choice,
|
|
827
|
+
function renderChoice(choice, isFocused) {
|
|
849
828
|
const pointer = isFocused ? style.cyan(Symbol.Pointer) : ' ';
|
|
850
|
-
const radio = isSelected ? style.green(Symbol.RadioSelected) : style.dim(Symbol.Radio);
|
|
851
829
|
let label = choice.label;
|
|
852
830
|
if (choice.disabled) {
|
|
853
831
|
label = style.dim(label + ' (disabled)');
|
|
@@ -856,7 +834,7 @@ function renderChoice(choice, isSelected, isFocused) {
|
|
|
856
834
|
label = style.cyan(label);
|
|
857
835
|
}
|
|
858
836
|
const hint = choice.hint ? style.dim(` — ${choice.hint}`) : '';
|
|
859
|
-
return `${pointer} ${
|
|
837
|
+
return `${pointer} ${label}${hint}`;
|
|
860
838
|
}
|
|
861
839
|
/**
|
|
862
840
|
* Renders the select prompt to the terminal.
|
|
@@ -870,36 +848,53 @@ function renderChoice(choice, isSelected, isFocused) {
|
|
|
870
848
|
*/
|
|
871
849
|
function render$1(term, config, state, submitted) {
|
|
872
850
|
const maxVisible = config.maxVisible ?? 10;
|
|
873
|
-
const {
|
|
851
|
+
const { indices: visibleIndices, startIndex } = getVisibleChoices(state, maxVisible);
|
|
874
852
|
let output = Ansi.CursorStart + Ansi.ClearLine + renderMessage(config.message);
|
|
875
853
|
if (submitted) {
|
|
876
|
-
const
|
|
854
|
+
const actualIndex = state.filteredIndices[state.cursor];
|
|
855
|
+
const selectedChoice = actualIndex !== undefined ? state.choices[actualIndex] : undefined;
|
|
877
856
|
/* istanbul ignore next -- @preserve defensive: cursor always within bounds */
|
|
878
857
|
output += renderSubmitted(selectedChoice?.label ?? '');
|
|
879
858
|
term.write(output);
|
|
880
859
|
return 1;
|
|
881
860
|
}
|
|
882
|
-
|
|
861
|
+
if (config.searchable && state.searchQuery) {
|
|
862
|
+
output += style.cyan(state.searchQuery) + style.dim(' (type to filter)');
|
|
863
|
+
}
|
|
864
|
+
else if (config.searchable) {
|
|
865
|
+
output += style.dim('(type to filter, enter to select)');
|
|
866
|
+
}
|
|
867
|
+
else {
|
|
868
|
+
output += style.dim('(use arrows, enter to select)');
|
|
869
|
+
}
|
|
883
870
|
term.write(output + '\n');
|
|
884
871
|
let lineCount = 1;
|
|
885
872
|
const showScrollUp = startIndex > 0;
|
|
886
|
-
const showScrollDown = startIndex + maxVisible < state.
|
|
873
|
+
const showScrollDown = startIndex + maxVisible < state.filteredIndices.length;
|
|
887
874
|
if (showScrollUp) {
|
|
888
875
|
term.write(Ansi.ClearLine + style.dim(` ${Symbol.Ellipsis} (${startIndex} more above)`) + '\n');
|
|
889
876
|
lineCount++;
|
|
890
877
|
}
|
|
891
|
-
|
|
892
|
-
const
|
|
893
|
-
|
|
894
|
-
|
|
878
|
+
visibleIndices.forEach((actualIndex, i) => {
|
|
879
|
+
const choice = state.choices[actualIndex];
|
|
880
|
+
/* istanbul ignore if -- @preserve defensive: actualIndex always valid from filteredIndices */
|
|
881
|
+
if (!choice)
|
|
882
|
+
return;
|
|
883
|
+
const viewIndex = startIndex + i;
|
|
884
|
+
const isFocused = viewIndex === state.cursor;
|
|
885
|
+
const line = renderChoice(choice, isFocused);
|
|
895
886
|
term.write(Ansi.ClearLine + line + '\n');
|
|
896
887
|
lineCount++;
|
|
897
888
|
});
|
|
898
889
|
if (showScrollDown) {
|
|
899
|
-
const remaining = state.
|
|
890
|
+
const remaining = state.filteredIndices.length - (startIndex + maxVisible);
|
|
900
891
|
term.write(Ansi.ClearLine + style.dim(` ${Symbol.Ellipsis} (${remaining} more below)`) + '\n');
|
|
901
892
|
lineCount++;
|
|
902
893
|
}
|
|
894
|
+
if (state.filteredIndices.length === 0 && config.searchable) {
|
|
895
|
+
term.write(Ansi.ClearLine + style.dim(' No matches found') + '\n');
|
|
896
|
+
lineCount++;
|
|
897
|
+
}
|
|
903
898
|
return lineCount;
|
|
904
899
|
}
|
|
905
900
|
/**
|
|
@@ -908,16 +903,17 @@ function render$1(term, config, state, submitted) {
|
|
|
908
903
|
* @internal
|
|
909
904
|
* @param key - The key that was pressed
|
|
910
905
|
* @param state - Current prompt state
|
|
911
|
-
* @param
|
|
906
|
+
* @param config - Prompt configuration
|
|
912
907
|
* @returns Updated state after processing the key
|
|
913
908
|
*/
|
|
914
|
-
function processKey$1(key, state,
|
|
915
|
-
const
|
|
916
|
-
|
|
909
|
+
function processKey$1(key, state, config) {
|
|
910
|
+
const maxVisible = config.maxVisible ?? 10;
|
|
911
|
+
const total = state.filteredIndices.length;
|
|
912
|
+
if (total === 0 && key !== Key.Backspace && key !== '\b')
|
|
917
913
|
return state;
|
|
918
914
|
if (key === Key.Up) {
|
|
919
915
|
let newCursor = state.cursor - 1;
|
|
920
|
-
while (newCursor >= 0 && state.choices[newCursor]?.disabled) {
|
|
916
|
+
while (newCursor >= 0 && state.choices[state.filteredIndices[newCursor] ?? -1]?.disabled) {
|
|
921
917
|
newCursor--;
|
|
922
918
|
}
|
|
923
919
|
if (newCursor < 0)
|
|
@@ -930,7 +926,7 @@ function processKey$1(key, state, maxVisible) {
|
|
|
930
926
|
}
|
|
931
927
|
if (key === Key.Down) {
|
|
932
928
|
let newCursor = state.cursor + 1;
|
|
933
|
-
while (newCursor < total && state.choices[newCursor]?.disabled) {
|
|
929
|
+
while (newCursor < total && state.choices[state.filteredIndices[newCursor] ?? -1]?.disabled) {
|
|
934
930
|
newCursor++;
|
|
935
931
|
}
|
|
936
932
|
if (newCursor >= total)
|
|
@@ -941,13 +937,40 @@ function processKey$1(key, state, maxVisible) {
|
|
|
941
937
|
}
|
|
942
938
|
return freeze({ ...state, cursor: newCursor, scrollOffset: newScrollOffset });
|
|
943
939
|
}
|
|
940
|
+
if (config.searchable) {
|
|
941
|
+
if (key === Key.Backspace || key === '\b') {
|
|
942
|
+
if (state.searchQuery.length > 0) {
|
|
943
|
+
const newQuery = state.searchQuery.slice(0, -1);
|
|
944
|
+
const newFiltered = filterChoices(state.choices, newQuery);
|
|
945
|
+
return freeze({
|
|
946
|
+
...state,
|
|
947
|
+
searchQuery: newQuery,
|
|
948
|
+
filteredIndices: newFiltered,
|
|
949
|
+
cursor: 0,
|
|
950
|
+
scrollOffset: 0,
|
|
951
|
+
});
|
|
952
|
+
}
|
|
953
|
+
return state;
|
|
954
|
+
}
|
|
955
|
+
if (key.length === 1 && key >= ' ') {
|
|
956
|
+
const newQuery = state.searchQuery + key;
|
|
957
|
+
const newFiltered = filterChoices(state.choices, newQuery);
|
|
958
|
+
return freeze({
|
|
959
|
+
...state,
|
|
960
|
+
searchQuery: newQuery,
|
|
961
|
+
filteredIndices: newFiltered,
|
|
962
|
+
cursor: 0,
|
|
963
|
+
scrollOffset: 0,
|
|
964
|
+
});
|
|
965
|
+
}
|
|
966
|
+
}
|
|
944
967
|
return state;
|
|
945
968
|
}
|
|
946
969
|
/**
|
|
947
970
|
* Prompts for single selection from a list of choices.
|
|
948
971
|
*
|
|
949
972
|
* Pure functional prompt with arrow key navigation, scrolling support,
|
|
950
|
-
* and optional
|
|
973
|
+
* optional disabled choices, and optional type-to-filter search.
|
|
951
974
|
*
|
|
952
975
|
* @param config - Select prompt configuration
|
|
953
976
|
* @returns Promise resolving to selected value or cancellation
|
|
@@ -979,17 +1002,26 @@ function processKey$1(key, state, maxVisible) {
|
|
|
979
1002
|
* initial: 1, // Start on Pro
|
|
980
1003
|
* })
|
|
981
1004
|
* ```
|
|
1005
|
+
*
|
|
1006
|
+
* @example With search
|
|
1007
|
+
* ```typescript
|
|
1008
|
+
* const outcome = await select({
|
|
1009
|
+
* message: 'Pick a project:',
|
|
1010
|
+
* choices: projects.map((p) => ({ label: p.name, value: p.id })),
|
|
1011
|
+
* searchable: true,
|
|
1012
|
+
* })
|
|
1013
|
+
* ```
|
|
982
1014
|
*/
|
|
983
1015
|
async function select(config) {
|
|
984
1016
|
const term = createTerminal({ input: config.input, output: config.output });
|
|
985
|
-
const maxVisible = config.maxVisible ?? 10;
|
|
986
1017
|
let state = createInitialState$1(config);
|
|
987
1018
|
let lineCount = 0;
|
|
988
1019
|
term.write(Ansi.HideCursor);
|
|
989
1020
|
const redraw = (submitted = false) => {
|
|
990
1021
|
if (lineCount > 0) {
|
|
991
|
-
term.write(Ansi.cursorUp(lineCount
|
|
1022
|
+
term.write(Ansi.cursorUp(lineCount) + Ansi.CursorStart);
|
|
992
1023
|
}
|
|
1024
|
+
term.write(Ansi.ClearToEnd);
|
|
993
1025
|
lineCount = render$1(term, config, state, submitted);
|
|
994
1026
|
};
|
|
995
1027
|
redraw();
|
|
@@ -997,7 +1029,7 @@ async function select(config) {
|
|
|
997
1029
|
const key = await term.readKey();
|
|
998
1030
|
if (term.isCancelled()) {
|
|
999
1031
|
if (lineCount > 0) {
|
|
1000
|
-
term.write(Ansi.cursorUp(lineCount
|
|
1032
|
+
term.write(Ansi.cursorUp(lineCount) + Ansi.CursorStart);
|
|
1001
1033
|
}
|
|
1002
1034
|
term.write(Ansi.ClearToEnd);
|
|
1003
1035
|
term.write(renderMessage(config.message) + renderCancelled() + '\n');
|
|
@@ -1006,12 +1038,16 @@ async function select(config) {
|
|
|
1006
1038
|
return freeze({ result: PromptResult.Cancelled, value: undefined });
|
|
1007
1039
|
}
|
|
1008
1040
|
if (key === Key.Enter) {
|
|
1009
|
-
const
|
|
1041
|
+
const actualIndex = state.filteredIndices[state.cursor];
|
|
1042
|
+
if (actualIndex === undefined) {
|
|
1043
|
+
continue;
|
|
1044
|
+
}
|
|
1045
|
+
const selectedChoice = state.choices[actualIndex];
|
|
1010
1046
|
if (!selectedChoice || selectedChoice.disabled) {
|
|
1011
1047
|
continue;
|
|
1012
1048
|
}
|
|
1013
1049
|
if (lineCount > 0) {
|
|
1014
|
-
term.write(Ansi.cursorUp(lineCount
|
|
1050
|
+
term.write(Ansi.cursorUp(lineCount) + Ansi.CursorStart);
|
|
1015
1051
|
}
|
|
1016
1052
|
term.write(Ansi.ClearToEnd);
|
|
1017
1053
|
render$1(term, config, state, true);
|
|
@@ -1020,29 +1056,11 @@ async function select(config) {
|
|
|
1020
1056
|
term.close();
|
|
1021
1057
|
return freeze({ result: PromptResult.Submitted, value: selectedChoice.value });
|
|
1022
1058
|
}
|
|
1023
|
-
state = processKey$1(key, state,
|
|
1059
|
+
state = processKey$1(key, state, config);
|
|
1024
1060
|
redraw();
|
|
1025
1061
|
}
|
|
1026
1062
|
}
|
|
1027
1063
|
|
|
1028
|
-
/**
|
|
1029
|
-
* Safe copies of Math built-in methods.
|
|
1030
|
-
*
|
|
1031
|
-
* These references are captured at module initialization time to protect against
|
|
1032
|
-
* prototype pollution attacks. Import only what you need for tree-shaking.
|
|
1033
|
-
*
|
|
1034
|
-
* @module @hyperfrontend/immutable-api-utils/built-in-copy/math
|
|
1035
|
-
*/
|
|
1036
|
-
const _Math = globalThis.Math;
|
|
1037
|
-
/**
|
|
1038
|
-
* (Safe copy) Returns the larger of zero or more numbers.
|
|
1039
|
-
*/
|
|
1040
|
-
const max = _Math.max;
|
|
1041
|
-
/**
|
|
1042
|
-
* (Safe copy) Returns the smaller of zero or more numbers.
|
|
1043
|
-
*/
|
|
1044
|
-
const min = _Math.min;
|
|
1045
|
-
|
|
1046
1064
|
/**
|
|
1047
1065
|
* Creates initial state for text prompt.
|
|
1048
1066
|
*
|
|
@@ -1069,14 +1087,18 @@ function createInitialState(config) {
|
|
|
1069
1087
|
*/
|
|
1070
1088
|
function render(term, config, state, submitted) {
|
|
1071
1089
|
const displayValue = config.format ? config.format(state.value) : state.value;
|
|
1072
|
-
|
|
1090
|
+
const messageText = config.renderMessage ? config.renderMessage(state.value) : config.message;
|
|
1091
|
+
let output = renderMessage(messageText);
|
|
1092
|
+
let trailingChars = 0;
|
|
1073
1093
|
if (submitted) {
|
|
1074
1094
|
output += renderSubmitted(displayValue || config.initial || '');
|
|
1075
1095
|
}
|
|
1076
1096
|
else {
|
|
1077
1097
|
output += displayValue;
|
|
1098
|
+
trailingChars = displayValue.length - state.cursorPos;
|
|
1078
1099
|
if (config.initial && !state.value) {
|
|
1079
1100
|
output += style.dim(config.initial);
|
|
1101
|
+
trailingChars += config.initial.length;
|
|
1080
1102
|
}
|
|
1081
1103
|
}
|
|
1082
1104
|
term.write(Ansi.CursorStart + Ansi.ClearLine + output);
|
|
@@ -1084,6 +1106,9 @@ function render(term, config, state, submitted) {
|
|
|
1084
1106
|
term.write('\n' + style.yellow(` ${state.error}`));
|
|
1085
1107
|
return 2;
|
|
1086
1108
|
}
|
|
1109
|
+
if (!submitted && trailingChars > 0) {
|
|
1110
|
+
term.write(Ansi.cursorLeft(trailingChars));
|
|
1111
|
+
}
|
|
1087
1112
|
return 1;
|
|
1088
1113
|
}
|
|
1089
1114
|
/**
|
|
@@ -1171,7 +1196,6 @@ async function text(config) {
|
|
|
1171
1196
|
const term = createTerminal({ input: config.input, output: config.output });
|
|
1172
1197
|
let state = createInitialState(config);
|
|
1173
1198
|
let lineCount = 0;
|
|
1174
|
-
term.write(Ansi.HideCursor);
|
|
1175
1199
|
const redraw = (submitted = false) => {
|
|
1176
1200
|
if (lineCount > 0) {
|
|
1177
1201
|
term.clearLines(lineCount);
|
|
@@ -1207,5 +1231,4 @@ async function text(config) {
|
|
|
1207
1231
|
}
|
|
1208
1232
|
}
|
|
1209
1233
|
|
|
1210
|
-
export { PromptResult, confirm, multiselect, select, text };
|
|
1211
|
-
//# sourceMappingURL=index.esm.js.map
|
|
1234
|
+
export { PromptResult, confirm, multiselect, select, style, text };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperfrontend/questions",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Terminal prompting library with composable, functional API for text, select, confirm, and multiselect prompts",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"exports": {
|
|
@@ -50,5 +50,15 @@
|
|
|
50
50
|
},
|
|
51
51
|
"main": "./index.cjs.js",
|
|
52
52
|
"module": "./index.esm.js",
|
|
53
|
-
"types": "./index.d.ts"
|
|
54
|
-
|
|
53
|
+
"types": "./index.d.ts",
|
|
54
|
+
"files": [
|
|
55
|
+
"**/index.*",
|
|
56
|
+
"**/index.d.ts",
|
|
57
|
+
"CHANGELOG.md",
|
|
58
|
+
"FUNDING.md",
|
|
59
|
+
"LICENSE.md",
|
|
60
|
+
"README.md",
|
|
61
|
+
"SECURITY.md",
|
|
62
|
+
"!**/*.js.map"
|
|
63
|
+
]
|
|
64
|
+
}
|
package/index.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../../../../../libs/utils/immutable-api/src/built-in-copy/object/index.ts","../../../../../../libs/utils/immutable-api/src/built-in-copy/promise/index.ts","../../../../../../libs/questions/src/terminal.ts","../../../../../../libs/questions/src/render.ts","../../../../../../libs/questions/src/types.ts","../../../../../../libs/questions/src/prompts/confirm.ts","../../../../../../libs/questions/src/prompts/multiselect.ts","../../../../../../libs/questions/src/prompts/select.ts","../../../../../../libs/utils/immutable-api/src/built-in-copy/math/index.ts","../../../../../../libs/questions/src/prompts/text.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["createInterface","createInitialState","getVisibleChoices","renderChoice","render","processKey"],"mappings":"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"}
|