@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/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 - 1) + Ansi.CursorStart);
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 - 1) + Ansi.CursorStart);
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 - 1) + Ansi.CursorStart);
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 Visible choices and their start index
800
+ * @returns Object containing visible indices and start index
821
801
  */
822
802
  function getVisibleChoices(state, maxVisible) {
823
- const total = state.choices.length;
803
+ const total = state.filteredIndices.length;
824
804
  if (total <= maxVisible) {
825
- return { choices: state.choices, startIndex: 0 };
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
- choices: state.choices.slice(startIndex, startIndex + maxVisible),
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, isSelected, isFocused) {
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} ${radio} ${label}${hint}`;
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 { choices: visibleChoices, startIndex } = getVisibleChoices(state, maxVisible);
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 selectedChoice = state.choices[state.cursor];
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
- output += style.dim('(use arrows, enter to select)');
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.choices.length;
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
- visibleChoices.forEach((choice, i) => {
892
- const actualIndex = startIndex + i;
893
- const isFocused = actualIndex === state.cursor;
894
- const line = renderChoice(choice, isFocused, isFocused);
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.choices.length - (startIndex + maxVisible);
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 maxVisible - Maximum visible choices for scroll calculation
906
+ * @param config - Prompt configuration
912
907
  * @returns Updated state after processing the key
913
908
  */
914
- function processKey$1(key, state, maxVisible) {
915
- const total = state.choices.length;
916
- if (total === 0)
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 disabled choices.
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 - 1) + Ansi.CursorStart);
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 - 1) + Ansi.CursorStart);
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 selectedChoice = state.choices[state.cursor];
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 - 1) + Ansi.CursorStart);
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, maxVisible);
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
- let output = renderMessage(config.message);
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.0",
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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"}