@bemoje/cli 0.0.10 → 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/cjs/arg/ArgumentBuilder.js +15 -0
  2. package/cjs/arg/ArgumentBuilder.js.map +1 -1
  3. package/cjs/cmd/CommandBuilder.js +191 -70
  4. package/cjs/cmd/CommandBuilder.js.map +1 -1
  5. package/cjs/cmd/CommandBuilderMetaData.js +1 -0
  6. package/cjs/cmd/CommandBuilderMetaData.js.map +1 -1
  7. package/cjs/cmd/DefaultHelpConfig.js +1 -0
  8. package/cjs/cmd/DefaultHelpConfig.js.map +1 -1
  9. package/cjs/db/JsonFile.js +1 -1
  10. package/cjs/index.js +28 -0
  11. package/cjs/index.js.map +1 -1
  12. package/cjs/opt/OptionBuilder.js +6 -0
  13. package/cjs/opt/OptionBuilder.js.map +1 -1
  14. package/cjs/prompt/additions/commandSearchPrompt/commandSearchPrompt.js +39 -0
  15. package/cjs/prompt/additions/commandSearchPrompt/commandSearchPrompt.js.map +1 -0
  16. package/cjs/prompt/additions/commandSearchPrompt/core/ICommandSearchPromptResult.js +3 -0
  17. package/cjs/prompt/additions/commandSearchPrompt/core/ICommandSearchPromptResult.js.map +1 -0
  18. package/cjs/prompt/additions/commandSearchPrompt/core/createCommandSearchPromptObject.js +34 -0
  19. package/cjs/prompt/additions/commandSearchPrompt/core/createCommandSearchPromptObject.js.map +1 -0
  20. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptChoiceMetaData.js +3 -0
  21. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptChoiceMetaData.js.map +1 -0
  22. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptMetaData.js +3 -0
  23. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptMetaData.js.map +1 -0
  24. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptOptions.js +3 -0
  25. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptOptions.js.map +1 -0
  26. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptResult.js +3 -0
  27. package/cjs/prompt/additions/searchPrompt/core/ISearchPromptResult.js.map +1 -0
  28. package/cjs/prompt/additions/searchPrompt/core/PROMPT_META_DATA.js +5 -0
  29. package/cjs/prompt/additions/searchPrompt/core/PROMPT_META_DATA.js.map +1 -0
  30. package/cjs/prompt/additions/searchPrompt/core/createSearchPromptObject.js +177 -0
  31. package/cjs/prompt/additions/searchPrompt/core/createSearchPromptObject.js.map +1 -0
  32. package/cjs/prompt/additions/searchPrompt/core/getSearchPromptMetaData.js +12 -0
  33. package/cjs/prompt/additions/searchPrompt/core/getSearchPromptMetaData.js.map +1 -0
  34. package/cjs/prompt/additions/searchPrompt/searchPrompt.js +37 -0
  35. package/cjs/prompt/additions/searchPrompt/searchPrompt.js.map +1 -0
  36. package/cjs/prompt/core/AbstractUserPrompt.js +88 -0
  37. package/cjs/prompt/core/AbstractUserPrompt.js.map +1 -0
  38. package/cjs/prompt/core/AutoCompleteMultiSelectPrompt.js +90 -0
  39. package/cjs/prompt/core/AutoCompleteMultiSelectPrompt.js.map +1 -0
  40. package/cjs/prompt/core/AutocompletePrompt.js +111 -0
  41. package/cjs/prompt/core/AutocompletePrompt.js.map +1 -0
  42. package/cjs/prompt/core/ConfirmPrompt.js +34 -0
  43. package/cjs/prompt/core/ConfirmPrompt.js.map +1 -0
  44. package/cjs/prompt/core/DatePrompt.js +58 -0
  45. package/cjs/prompt/core/DatePrompt.js.map +1 -0
  46. package/cjs/prompt/core/InvisiblePrompt.js +49 -0
  47. package/cjs/prompt/core/InvisiblePrompt.js.map +1 -0
  48. package/cjs/prompt/core/ListPrompt.js +56 -0
  49. package/cjs/prompt/core/ListPrompt.js.map +1 -0
  50. package/cjs/prompt/core/MultiSelectPrompt.js +90 -0
  51. package/cjs/prompt/core/MultiSelectPrompt.js.map +1 -0
  52. package/cjs/prompt/core/NumberPrompt.js +70 -0
  53. package/cjs/prompt/core/NumberPrompt.js.map +1 -0
  54. package/cjs/prompt/core/PasswordPrompt.js +49 -0
  55. package/cjs/prompt/core/PasswordPrompt.js.map +1 -0
  56. package/cjs/prompt/core/SearchPrompt.js +112 -0
  57. package/cjs/prompt/core/SearchPrompt.js.map +1 -0
  58. package/cjs/prompt/core/SelectPrompt.js +62 -0
  59. package/cjs/prompt/core/SelectPrompt.js.map +1 -0
  60. package/cjs/prompt/core/TextPrompt.js +49 -0
  61. package/cjs/prompt/core/TextPrompt.js.map +1 -0
  62. package/cjs/prompt/core/TogglePrompt.js +48 -0
  63. package/cjs/prompt/core/TogglePrompt.js.map +1 -0
  64. package/cjs/prompt/core/types.js +3 -0
  65. package/cjs/prompt/core/types.js.map +1 -0
  66. package/cjs/prompt/example.js +117 -0
  67. package/cjs/prompt/example.js.map +1 -0
  68. package/cjs/prompt/prompt.js +62 -0
  69. package/cjs/prompt/prompt.js.map +1 -0
  70. package/esm/arg/ArgumentBuilder.js +15 -0
  71. package/esm/arg/ArgumentBuilder.js.map +1 -1
  72. package/esm/cmd/CommandBuilder.js +191 -70
  73. package/esm/cmd/CommandBuilder.js.map +1 -1
  74. package/esm/cmd/CommandBuilderMetaData.js +1 -0
  75. package/esm/cmd/CommandBuilderMetaData.js.map +1 -1
  76. package/esm/cmd/DefaultHelpConfig.js +1 -0
  77. package/esm/cmd/DefaultHelpConfig.js.map +1 -1
  78. package/esm/db/JsonFile.js +1 -1
  79. package/esm/index.js +28 -0
  80. package/esm/index.js.map +1 -1
  81. package/esm/opt/OptionBuilder.js +6 -0
  82. package/esm/opt/OptionBuilder.js.map +1 -1
  83. package/esm/prompt/additions/commandSearchPrompt/commandSearchPrompt.js +32 -0
  84. package/esm/prompt/additions/commandSearchPrompt/commandSearchPrompt.js.map +1 -0
  85. package/esm/prompt/additions/commandSearchPrompt/core/ICommandSearchPromptResult.js +2 -0
  86. package/esm/prompt/additions/commandSearchPrompt/core/ICommandSearchPromptResult.js.map +1 -0
  87. package/esm/prompt/additions/commandSearchPrompt/core/createCommandSearchPromptObject.js +27 -0
  88. package/esm/prompt/additions/commandSearchPrompt/core/createCommandSearchPromptObject.js.map +1 -0
  89. package/esm/prompt/additions/searchPrompt/core/ISearchPromptChoiceMetaData.js +2 -0
  90. package/esm/prompt/additions/searchPrompt/core/ISearchPromptChoiceMetaData.js.map +1 -0
  91. package/esm/prompt/additions/searchPrompt/core/ISearchPromptMetaData.js +2 -0
  92. package/esm/prompt/additions/searchPrompt/core/ISearchPromptMetaData.js.map +1 -0
  93. package/esm/prompt/additions/searchPrompt/core/ISearchPromptOptions.js +2 -0
  94. package/esm/prompt/additions/searchPrompt/core/ISearchPromptOptions.js.map +1 -0
  95. package/esm/prompt/additions/searchPrompt/core/ISearchPromptResult.js +2 -0
  96. package/esm/prompt/additions/searchPrompt/core/ISearchPromptResult.js.map +1 -0
  97. package/esm/prompt/additions/searchPrompt/core/PROMPT_META_DATA.js +2 -0
  98. package/esm/prompt/additions/searchPrompt/core/PROMPT_META_DATA.js.map +1 -0
  99. package/esm/prompt/additions/searchPrompt/core/createSearchPromptObject.js +173 -0
  100. package/esm/prompt/additions/searchPrompt/core/createSearchPromptObject.js.map +1 -0
  101. package/esm/prompt/additions/searchPrompt/core/getSearchPromptMetaData.js +8 -0
  102. package/esm/prompt/additions/searchPrompt/core/getSearchPromptMetaData.js.map +1 -0
  103. package/esm/prompt/additions/searchPrompt/searchPrompt.js +30 -0
  104. package/esm/prompt/additions/searchPrompt/searchPrompt.js.map +1 -0
  105. package/esm/prompt/core/AbstractUserPrompt.js +81 -0
  106. package/esm/prompt/core/AbstractUserPrompt.js.map +1 -0
  107. package/esm/prompt/core/AutoCompleteMultiSelectPrompt.js +86 -0
  108. package/esm/prompt/core/AutoCompleteMultiSelectPrompt.js.map +1 -0
  109. package/esm/prompt/core/AutocompletePrompt.js +107 -0
  110. package/esm/prompt/core/AutocompletePrompt.js.map +1 -0
  111. package/esm/prompt/core/ConfirmPrompt.js +30 -0
  112. package/esm/prompt/core/ConfirmPrompt.js.map +1 -0
  113. package/esm/prompt/core/DatePrompt.js +54 -0
  114. package/esm/prompt/core/DatePrompt.js.map +1 -0
  115. package/esm/prompt/core/InvisiblePrompt.js +45 -0
  116. package/esm/prompt/core/InvisiblePrompt.js.map +1 -0
  117. package/esm/prompt/core/ListPrompt.js +52 -0
  118. package/esm/prompt/core/ListPrompt.js.map +1 -0
  119. package/esm/prompt/core/MultiSelectPrompt.js +86 -0
  120. package/esm/prompt/core/MultiSelectPrompt.js.map +1 -0
  121. package/esm/prompt/core/NumberPrompt.js +66 -0
  122. package/esm/prompt/core/NumberPrompt.js.map +1 -0
  123. package/esm/prompt/core/PasswordPrompt.js +45 -0
  124. package/esm/prompt/core/PasswordPrompt.js.map +1 -0
  125. package/esm/prompt/core/SearchPrompt.js +108 -0
  126. package/esm/prompt/core/SearchPrompt.js.map +1 -0
  127. package/esm/prompt/core/SelectPrompt.js +58 -0
  128. package/esm/prompt/core/SelectPrompt.js.map +1 -0
  129. package/esm/prompt/core/TextPrompt.js +45 -0
  130. package/esm/prompt/core/TextPrompt.js.map +1 -0
  131. package/esm/prompt/core/TogglePrompt.js +44 -0
  132. package/esm/prompt/core/TogglePrompt.js.map +1 -0
  133. package/esm/prompt/core/types.js +2 -0
  134. package/esm/prompt/core/types.js.map +1 -0
  135. package/esm/prompt/example.js +112 -0
  136. package/esm/prompt/example.js.map +1 -0
  137. package/esm/prompt/prompt.js +59 -0
  138. package/esm/prompt/prompt.js.map +1 -0
  139. package/package.json +2 -1
  140. package/types/arg/ArgumentBuilder.d.ts +14 -0
  141. package/types/arg/ArgumentBuilder.d.ts.map +1 -0
  142. package/types/arg/ArgumentParserSelector.d.ts +1 -0
  143. package/types/arg/ArgumentParserSelector.d.ts.map +1 -0
  144. package/types/arg/ArgumentReader.d.ts +1 -0
  145. package/types/arg/ArgumentReader.d.ts.map +1 -0
  146. package/types/arg/ArgumentValidatorSelector.d.ts +1 -0
  147. package/types/arg/ArgumentValidatorSelector.d.ts.map +1 -0
  148. package/types/cmd/CommandBuilder.d.ts +152 -46
  149. package/types/cmd/CommandBuilder.d.ts.map +1 -0
  150. package/types/cmd/CommandBuilderMetaData.d.ts +3 -0
  151. package/types/cmd/CommandBuilderMetaData.d.ts.map +1 -0
  152. package/types/cmd/CommandFeatureSelector.d.ts +1 -0
  153. package/types/cmd/CommandFeatureSelector.d.ts.map +1 -0
  154. package/types/cmd/DefaultHelpConfig.d.ts +1 -0
  155. package/types/cmd/DefaultHelpConfig.d.ts.map +1 -0
  156. package/types/core/OutputManager.d.ts +1 -0
  157. package/types/core/OutputManager.d.ts.map +1 -0
  158. package/types/core/ParserSelector.d.ts +1 -0
  159. package/types/core/ParserSelector.d.ts.map +1 -0
  160. package/types/core/ValidatorSelector.d.ts +1 -0
  161. package/types/core/ValidatorSelector.d.ts.map +1 -0
  162. package/types/core/splitCombinedArgvShorts.d.ts +1 -0
  163. package/types/core/splitCombinedArgvShorts.d.ts.map +1 -0
  164. package/types/db/AbstractJsonFileSection.d.ts +1 -0
  165. package/types/db/AbstractJsonFileSection.d.ts.map +1 -0
  166. package/types/db/AppDataSection.d.ts +1 -0
  167. package/types/db/AppDataSection.d.ts.map +1 -0
  168. package/types/db/ConfigSection.d.ts +1 -0
  169. package/types/db/ConfigSection.d.ts.map +1 -0
  170. package/types/db/JsonFile.d.ts +1 -0
  171. package/types/db/JsonFile.d.ts.map +1 -0
  172. package/types/db/PresetsSection.d.ts +1 -0
  173. package/types/db/PresetsSection.d.ts.map +1 -0
  174. package/types/index.d.ts +29 -0
  175. package/types/index.d.ts.map +1 -0
  176. package/types/opt/OptionArgumentParserSelector.d.ts +1 -0
  177. package/types/opt/OptionArgumentParserSelector.d.ts.map +1 -0
  178. package/types/opt/OptionArgumentValidatorSelector.d.ts +1 -0
  179. package/types/opt/OptionArgumentValidatorSelector.d.ts.map +1 -0
  180. package/types/opt/OptionBuilder.d.ts +3 -0
  181. package/types/opt/OptionBuilder.d.ts.map +1 -0
  182. package/types/opt/OptionHelpers.d.ts +1 -0
  183. package/types/opt/OptionHelpers.d.ts.map +1 -0
  184. package/types/opt/OptionReader.d.ts +1 -0
  185. package/types/opt/OptionReader.d.ts.map +1 -0
  186. package/types/prompt/additions/commandSearchPrompt/commandSearchPrompt.d.ts +21 -0
  187. package/types/prompt/additions/commandSearchPrompt/commandSearchPrompt.d.ts.map +1 -0
  188. package/types/prompt/additions/commandSearchPrompt/core/ICommandSearchPromptResult.d.ts +5 -0
  189. package/types/prompt/additions/commandSearchPrompt/core/ICommandSearchPromptResult.d.ts.map +1 -0
  190. package/types/prompt/additions/commandSearchPrompt/core/createCommandSearchPromptObject.d.ts +13 -0
  191. package/types/prompt/additions/commandSearchPrompt/core/createCommandSearchPromptObject.d.ts.map +1 -0
  192. package/types/prompt/additions/searchPrompt/core/ISearchPromptChoiceMetaData.d.ts +5 -0
  193. package/types/prompt/additions/searchPrompt/core/ISearchPromptChoiceMetaData.d.ts.map +1 -0
  194. package/types/prompt/additions/searchPrompt/core/ISearchPromptMetaData.d.ts +9 -0
  195. package/types/prompt/additions/searchPrompt/core/ISearchPromptMetaData.d.ts.map +1 -0
  196. package/types/prompt/additions/searchPrompt/core/ISearchPromptOptions.d.ts +44 -0
  197. package/types/prompt/additions/searchPrompt/core/ISearchPromptOptions.d.ts.map +1 -0
  198. package/types/prompt/additions/searchPrompt/core/ISearchPromptResult.d.ts +6 -0
  199. package/types/prompt/additions/searchPrompt/core/ISearchPromptResult.d.ts.map +1 -0
  200. package/types/prompt/additions/searchPrompt/core/PROMPT_META_DATA.d.ts +4 -0
  201. package/types/prompt/additions/searchPrompt/core/PROMPT_META_DATA.d.ts.map +1 -0
  202. package/types/prompt/additions/searchPrompt/core/createSearchPromptObject.d.ts +13 -0
  203. package/types/prompt/additions/searchPrompt/core/createSearchPromptObject.d.ts.map +1 -0
  204. package/types/prompt/additions/searchPrompt/core/getSearchPromptMetaData.d.ts +4 -0
  205. package/types/prompt/additions/searchPrompt/core/getSearchPromptMetaData.d.ts.map +1 -0
  206. package/types/prompt/additions/searchPrompt/searchPrompt.d.ts +21 -0
  207. package/types/prompt/additions/searchPrompt/searchPrompt.d.ts.map +1 -0
  208. package/types/prompt/core/AbstractUserPrompt.d.ts +55 -0
  209. package/types/prompt/core/AbstractUserPrompt.d.ts.map +1 -0
  210. package/types/prompt/core/AutoCompleteMultiSelectPrompt.d.ts +54 -0
  211. package/types/prompt/core/AutoCompleteMultiSelectPrompt.d.ts.map +1 -0
  212. package/types/prompt/core/AutocompletePrompt.d.ts +66 -0
  213. package/types/prompt/core/AutocompletePrompt.d.ts.map +1 -0
  214. package/types/prompt/core/ConfirmPrompt.d.ts +21 -0
  215. package/types/prompt/core/ConfirmPrompt.d.ts.map +1 -0
  216. package/types/prompt/core/DatePrompt.d.ts +37 -0
  217. package/types/prompt/core/DatePrompt.d.ts.map +1 -0
  218. package/types/prompt/core/InvisiblePrompt.d.ts +30 -0
  219. package/types/prompt/core/InvisiblePrompt.d.ts.map +1 -0
  220. package/types/prompt/core/ListPrompt.d.ts +34 -0
  221. package/types/prompt/core/ListPrompt.d.ts.map +1 -0
  222. package/types/prompt/core/MultiSelectPrompt.d.ts +54 -0
  223. package/types/prompt/core/MultiSelectPrompt.d.ts.map +1 -0
  224. package/types/prompt/core/NumberPrompt.d.ts +42 -0
  225. package/types/prompt/core/NumberPrompt.d.ts.map +1 -0
  226. package/types/prompt/core/PasswordPrompt.d.ts +30 -0
  227. package/types/prompt/core/PasswordPrompt.d.ts.map +1 -0
  228. package/types/prompt/core/SearchPrompt.d.ts +71 -0
  229. package/types/prompt/core/SearchPrompt.d.ts.map +1 -0
  230. package/types/prompt/core/SelectPrompt.d.ts +38 -0
  231. package/types/prompt/core/SelectPrompt.d.ts.map +1 -0
  232. package/types/prompt/core/TextPrompt.d.ts +30 -0
  233. package/types/prompt/core/TextPrompt.d.ts.map +1 -0
  234. package/types/prompt/core/TogglePrompt.d.ts +29 -0
  235. package/types/prompt/core/TogglePrompt.d.ts.map +1 -0
  236. package/types/prompt/core/types.d.ts +215 -0
  237. package/types/prompt/core/types.d.ts.map +1 -0
  238. package/types/prompt/example.d.ts +2 -0
  239. package/types/prompt/example.d.ts.map +1 -0
  240. package/types/prompt/prompt.d.ts +33 -0
  241. package/types/prompt/prompt.d.ts.map +1 -0
  242. package/types/types/IConfig.d.ts +1 -0
  243. package/types/types/IConfig.d.ts.map +1 -0
  244. package/types/types/IPreset.d.ts +1 -0
  245. package/types/types/IPreset.d.ts.map +1 -0
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSearchPromptObject = void 0;
4
+ const util_1 = require("@bemoje/util");
5
+ const PROMPT_META_DATA_1 = require("./PROMPT_META_DATA");
6
+ /**
7
+ * Create a search prompt object that can be run with `prompts()` from npm package: `prompts`.
8
+ * The point of this would be to run them in series.
9
+ * To run run a prompt directly, use @see searchPrompt
10
+ *
11
+ * @param name - The name of the prompt
12
+ * @param data - The list to search.
13
+ * @param options - The options
14
+ */
15
+ function createSearchPromptObject(name, data, options) {
16
+ const searchStopSequence = options.searchStopSequence ?? ':';
17
+ const keywordDelimiter = options.separator ?? ' ';
18
+ const meta = new WeakMap();
19
+ const choices = data.map((value) => {
20
+ const choice = {
21
+ title: value,
22
+ value: value,
23
+ };
24
+ const parsed = strSplitBy(value, keywordDelimiter);
25
+ const preRendered = options.preRender ? options.preRender(parsed) : parsed.slice();
26
+ meta.set(choice, { parsed, preRendered });
27
+ return choice;
28
+ });
29
+ const filtering = options.filtering || { startsWith: true, includes: true };
30
+ const lastResult = {
31
+ originalInput: '',
32
+ input: '',
33
+ inputAfterStop: '',
34
+ keywords: [],
35
+ result: [],
36
+ };
37
+ const render = options.render || createRenderer(keywordDelimiter, filtering);
38
+ const prompt = {
39
+ type: 'autocomplete',
40
+ name: name,
41
+ message: '0',
42
+ limit: options.limit ?? 30,
43
+ initial: options.initial,
44
+ clearFirst: true,
45
+ choices,
46
+ suggest: async (input, choices) => {
47
+ return await search(input, lastResult, choices, meta, filtering, keywordDelimiter, searchStopSequence);
48
+ },
49
+ onRender: function () {
50
+ const choices = this.choices;
51
+ choices.forEach((choice) => {
52
+ const choiceMeta = meta.get(choice);
53
+ if (!choiceMeta)
54
+ return;
55
+ choice.title = render(choiceMeta.parsed, choiceMeta.preRendered, lastResult.keywords);
56
+ });
57
+ Reflect.set(this, 'msg', String(lastResult.result.length));
58
+ },
59
+ };
60
+ PROMPT_META_DATA_1.PROMPT_META_DATA.set(prompt, lastResult);
61
+ return prompt;
62
+ }
63
+ exports.createSearchPromptObject = createSearchPromptObject;
64
+ /**
65
+ * Split string by delimiter, remove empty strings
66
+ */
67
+ function strSplitBy(string, delimiter = ' ') {
68
+ return string.split(delimiter).filter((i) => !!i);
69
+ }
70
+ /**
71
+ * Create a render function
72
+ */
73
+ function createRenderer(keywordDelimiter, filtering) {
74
+ const iterate = (parsed, preRendered, keywords, callback) => {
75
+ return preRendered
76
+ .map((word, i) => {
77
+ for (const kw of keywords) {
78
+ word = callback(parsed[i], word, kw);
79
+ }
80
+ return word;
81
+ })
82
+ .join(keywordDelimiter);
83
+ };
84
+ return (parsed, preRendered, keywords) => {
85
+ return iterate(parsed, preRendered, keywords, (parsed, word, kw) => {
86
+ if (filtering.startsWith && parsed.startsWith(kw))
87
+ return word.replace(kw, util_1.colors.magenta(kw));
88
+ if (filtering.includes && parsed.includes(kw))
89
+ return word.replace(kw, util_1.colors.blue(kw));
90
+ return word;
91
+ });
92
+ };
93
+ }
94
+ /**
95
+ * Fitler/suggest/search based on user input
96
+ */
97
+ async function search(input, latestData, choices, meta, filtering, keywordDelimiter, searchStopSequence) {
98
+ const indexOfStopSequence = input.indexOf(searchStopSequence);
99
+ latestData.originalInput = input;
100
+ latestData.input = indexOfStopSequence === -1 ? input : input.substring(0, indexOfStopSequence).trim();
101
+ latestData.inputAfterStop = indexOfStopSequence === -1 ? '' : input.substring(indexOfStopSequence + 1).trim();
102
+ latestData.keywords = strSplitBy(latestData.input, keywordDelimiter);
103
+ latestData.result = [];
104
+ let temp = [];
105
+ if (!filtering.startsWith && !filtering.includes) {
106
+ latestData.result = choices;
107
+ return Promise.resolve(latestData.result);
108
+ }
109
+ if (filtering.startsWith) {
110
+ // 100% match always from beginning of searched strings/words
111
+ choices.forEach((choice) => {
112
+ const metaChoice = meta.get(choice);
113
+ if (!metaChoice)
114
+ return;
115
+ const parsed = metaChoice.parsed;
116
+ let has = someWordStartsWithEveryKw(latestData.keywords, parsed);
117
+ if (!has && latestData.keywords.length === 1) {
118
+ has = someWordStartsWithEveryKw(latestData.keywords[0].split(''), parsed);
119
+ }
120
+ if (has) {
121
+ latestData.result.push(choice);
122
+ }
123
+ else {
124
+ temp.push(choice);
125
+ }
126
+ });
127
+ if (latestData.result.length === 1) {
128
+ return Promise.resolve(latestData.result);
129
+ }
130
+ }
131
+ else {
132
+ temp = temp.concat(choices);
133
+ }
134
+ if (filtering.includes) {
135
+ // 100% match anywhere in the searched strings/words
136
+ temp.forEach((choice) => {
137
+ const metaChoice = meta.get(choice);
138
+ if (!metaChoice)
139
+ return;
140
+ const parsed = metaChoice.parsed;
141
+ if (everyKwInWord(latestData.keywords, parsed)) {
142
+ latestData.result.push(choice);
143
+ }
144
+ });
145
+ }
146
+ return Promise.resolve(latestData.result);
147
+ }
148
+ /**
149
+ * Search 'startsWith'
150
+ */
151
+ function someWordStartsWithEveryKw(keywords, parsed) {
152
+ let lastP = 0;
153
+ for (let k = 0; k < keywords.length; k++) {
154
+ const kw = keywords[k];
155
+ let match = false;
156
+ for (let p = lastP; p < parsed.length; p++) {
157
+ const cmd = parsed[p];
158
+ if (cmd.startsWith(kw)) {
159
+ lastP = p;
160
+ match = true;
161
+ break;
162
+ }
163
+ }
164
+ if (!match)
165
+ return false;
166
+ }
167
+ return true;
168
+ }
169
+ /**
170
+ * Search 'includes'
171
+ */
172
+ function everyKwInWord(keywords, parsed) {
173
+ return (0, util_1.arrEvery)(keywords, (kw) => {
174
+ return parsed.some((c) => c.includes(kw));
175
+ });
176
+ }
177
+ //# sourceMappingURL=createSearchPromptObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSearchPromptObject.js","sourceRoot":"","sources":["../../../../../../../../packages/cli/src/prompt/additions/searchPrompt/core/createSearchPromptObject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSearchPromptMetaData = void 0;
4
+ const PROMPT_META_DATA_1 = require("./PROMPT_META_DATA");
5
+ function getSearchPromptMetaData(prompt) {
6
+ const result = PROMPT_META_DATA_1.PROMPT_META_DATA.get(prompt);
7
+ if (!result)
8
+ throw new Error('Prompt meta data not found.');
9
+ return result;
10
+ }
11
+ exports.getSearchPromptMetaData = getSearchPromptMetaData;
12
+ //# sourceMappingURL=getSearchPromptMetaData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSearchPromptMetaData.js","sourceRoot":"","sources":["../../../../../../../../packages/cli/src/prompt/additions/searchPrompt/core/getSearchPromptMetaData.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AAGrD,SAAgB,uBAAuB,CAAC,MAAoB;IAC1D,MAAM,MAAM,GAAG,mCAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAA;AACf,CAAC;AAJD,0DAIC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.searchPrompt = void 0;
7
+ const prompts_1 = __importDefault(require("prompts"));
8
+ const createSearchPromptObject_1 = require("./core/createSearchPromptObject");
9
+ const getSearchPromptMetaData_1 = require("./core/getSearchPromptMetaData");
10
+ /**
11
+ * Start a command-line prompt in which the user can search a provided list.
12
+ *
13
+ * @param data - The list to search
14
+ * @param options - options
15
+ *
16
+ * @returns the user input, its resulting matches, the match selected by the user
17
+ *
18
+ * @remarks
19
+ * Returns
20
+ * 1 100% matches always from beginning of searched strings/words
21
+ * 2 100% matches anywhere in the searched strings/words
22
+ *
23
+ * If the first category can be narrowed down to exactly one result,
24
+ * then it is immediately returned and the other category discarded.
25
+ */
26
+ async function searchPrompt(data, options, listeners) {
27
+ const _options = options;
28
+ const prompt = (0, createSearchPromptObject_1.createSearchPromptObject)('search', data, _options);
29
+ const oSelected = await (0, prompts_1.default)(prompt, listeners);
30
+ const metadata = (0, getSearchPromptMetaData_1.getSearchPromptMetaData)(prompt);
31
+ const selected = oSelected['search'];
32
+ const input = metadata.originalInput;
33
+ const matches = metadata.result.map((choice) => choice.value) || [];
34
+ return { input, matches, selected };
35
+ }
36
+ exports.searchPrompt = searchPrompt;
37
+ //# sourceMappingURL=searchPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchPrompt.js","sourceRoot":"","sources":["../../../../../../../packages/cli/src/prompt/additions/searchPrompt/searchPrompt.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA6B;AAC7B,8EAA0E;AAC1E,4EAAwE;AAKxE;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,OAA8B,EAC9B,SAAmB;IAEnB,MAAM,QAAQ,GAAG,OAA+B,CAAA;IAChD,MAAM,MAAM,GAAG,IAAA,mDAAwB,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACjE,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAO,EAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,IAAA,iDAAuB,EAAC,MAAM,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAA;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACnE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AACrC,CAAC;AAbD,oCAaC"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AbstractUserPrompt = void 0;
7
+ const prompts_1 = __importDefault(require("prompts"));
8
+ const util_1 = require("@bemoje/util");
9
+ /**
10
+ * Interactive terminal user prompts.
11
+ */
12
+ class AbstractUserPrompt {
13
+ /**
14
+ * The data holding the selections from this builder class
15
+ */
16
+ data;
17
+ /**
18
+ * @param type - The type of prompt
19
+ * @param message - The message to display to the user
20
+ */
21
+ constructor(type, name, message) {
22
+ this.data = { type, name, message };
23
+ (0, util_1.setNonEnumerable)(this, 'data');
24
+ }
25
+ /**
26
+ * An identifier for the prompt which is only useful when chaining prompts.
27
+ * If provided, the response will be { [name]: value } instead of just the value.
28
+ */
29
+ name(name) {
30
+ this.data['name'] = name;
31
+ return this;
32
+ }
33
+ /**
34
+ * On state change callback. Function signature is an object with two properties: value and aborted
35
+ */
36
+ onState(onState) {
37
+ this.data['onState'] = onState;
38
+ return this;
39
+ }
40
+ /**
41
+ * By default, prompts uses process.stdin for receiving input and process.
42
+ * If you need to use different streams, for instance process.stderr,
43
+ * you can set these with the stdin and stdout properties.
44
+ */
45
+ stdin(stdin) {
46
+ this.data['stdin'] = stdin;
47
+ return this;
48
+ }
49
+ /**
50
+ * By default, prompts uses process.stdout for writing output.
51
+ * If you need to use different streams, for instance process.stderr,
52
+ * you can set these with the stdin and stdout properties.
53
+ */
54
+ stdout(stdout) {
55
+ this.data['stdout'] = stdout;
56
+ return this;
57
+ }
58
+ /**
59
+ * Returns a copy of the data object.
60
+ */
61
+ getData() {
62
+ return { ...this.data };
63
+ }
64
+ /**
65
+ * Set the data object.
66
+ */
67
+ setData(data) {
68
+ Object.assign(this.data, data);
69
+ return this;
70
+ }
71
+ /**
72
+ * Create a copy of the this object
73
+ */
74
+ clone() {
75
+ const ctor = Object.getPrototypeOf(this).constructor;
76
+ const clone = new ctor(this.data['message']);
77
+ Object.assign(clone.data, this.data);
78
+ return clone;
79
+ }
80
+ /**
81
+ * Prompt user and receive user input. The returned value will be added to the response object
82
+ */
83
+ async run(options) {
84
+ return await (0, prompts_1.default)(this.data, options);
85
+ }
86
+ }
87
+ exports.AbstractUserPrompt = AbstractUserPrompt;
88
+ //# sourceMappingURL=AbstractUserPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractUserPrompt.js","sourceRoot":"","sources":["../../../../../../packages/cli/src/prompt/core/AbstractUserPrompt.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA0C;AAG1C,uCAA+C;AAE/C;;GAEG;AACH,MAAsB,kBAAkB;IACtC;;OAEG;IACO,IAAI,CAAM;IAEpB;;;OAGG;IACH,YAAY,IAAgB,EAAE,IAAY,EAAE,OAAe;QACzD,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAU,CAAA;QAC3C,IAAA,uBAAgB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAe;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAU,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAmB;QACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAA;QACpD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;QAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAiB;QACzB,OAAO,MAAM,IAAA,iBAAO,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;CACF;AAnFD,gDAmFC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutoCompleteMultiSelectPrompt = void 0;
4
+ const AbstractUserPrompt_1 = require("./AbstractUserPrompt");
5
+ /**
6
+ * Interactive multiselect user prompts in the terminal.
7
+ */
8
+ class AutoCompleteMultiSelectPrompt extends AbstractUserPrompt_1.AbstractUserPrompt {
9
+ /**
10
+ * @param type - The type of prompt
11
+ * @param message - The message to display to the user
12
+ */
13
+ constructor(name, message, callback) {
14
+ super('autocompleteMultiselect', name, message);
15
+ if (callback)
16
+ callback(this);
17
+ }
18
+ /**
19
+ * On render callback. Keyword this refers to the current prompt
20
+ */
21
+ onRender(onRender) {
22
+ this.data['onRender'] = onRender;
23
+ return this;
24
+ }
25
+ /**
26
+ * Default value
27
+ */
28
+ initial(initial) {
29
+ this.data['initial'] = initial;
30
+ return this;
31
+ }
32
+ /**
33
+ * Prompt instructions to display
34
+ */
35
+ instructions(instructions) {
36
+ this.data['instructions'] = instructions;
37
+ return this;
38
+ }
39
+ /**
40
+ * Hint to display to the user
41
+ */
42
+ hint(hint) {
43
+ this.data['hint'] = hint;
44
+ return this;
45
+ }
46
+ /**
47
+ * Message to display when selecting a disabled option
48
+ */
49
+ warn(warn) {
50
+ this.data['warn'] = warn;
51
+ return this;
52
+ }
53
+ /**
54
+ * An array of options/choices for the user to select.
55
+ */
56
+ choices(choices) {
57
+ this.data['choices'] = choices;
58
+ return this;
59
+ }
60
+ /**
61
+ * Number of options displayed per page.
62
+ */
63
+ optionsPerPage(optionsPerPage = 10) {
64
+ this.data['optionsPerPage'] = optionsPerPage;
65
+ return this;
66
+ }
67
+ /**
68
+ * Minimum number of choices to select - will display error.
69
+ */
70
+ min(min) {
71
+ this.data['min'] = min;
72
+ return this;
73
+ }
74
+ /**
75
+ * Maximum number of choices to select
76
+ */
77
+ max(max) {
78
+ this.data['max'] = max;
79
+ return this;
80
+ }
81
+ /**
82
+ * Receive user input. The returned value will be added to the response object
83
+ */
84
+ format(format) {
85
+ this.data['format'] = format;
86
+ return this;
87
+ }
88
+ }
89
+ exports.AutoCompleteMultiSelectPrompt = AutoCompleteMultiSelectPrompt;
90
+ //# sourceMappingURL=AutoCompleteMultiSelectPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoCompleteMultiSelectPrompt.js","sourceRoot":"","sources":["../../../../../../packages/cli/src/prompt/core/AutoCompleteMultiSelectPrompt.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAIzD;;GAEG;AACH,MAAa,6BAA4E,SAAQ,uCAEhG;IACC;;;OAGG;IACH,YAAY,IAAY,EAAE,OAAe,EAAE,QAA2D;QACpG,KAAK,CAAC,yBAAyB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC/C,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAmB;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAU;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,YAAoB;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,YAAY,CAAA;QACxC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,cAAc,GAAG,EAAE;QAChC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAA;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA3FD,sEA2FC"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutocompletePrompt = void 0;
4
+ const AbstractUserPrompt_1 = require("./AbstractUserPrompt");
5
+ /**
6
+ * Interactive autocomplete user prompts in the terminal.
7
+ */
8
+ class AutocompletePrompt extends AbstractUserPrompt_1.AbstractUserPrompt {
9
+ /**
10
+ * @param type - The type of prompt
11
+ * @param message - The message to display to the user
12
+ */
13
+ constructor(name, message, callback) {
14
+ super('autocomplete', name, message);
15
+ if (callback)
16
+ callback(this);
17
+ }
18
+ /**
19
+ * On render callback. Keyword this refers to the current prompt
20
+ */
21
+ onRender(onRender) {
22
+ this.data['onRender'] = onRender;
23
+ return this;
24
+ }
25
+ /**
26
+ * Default value
27
+ */
28
+ initial(initial) {
29
+ this.data['initial'] = initial;
30
+ return this;
31
+ }
32
+ /**
33
+ * The first ESCAPE keypress will clear the input
34
+ */
35
+ clearFirst(clearFirst) {
36
+ this.data['clearFirst'] = clearFirst;
37
+ return this;
38
+ }
39
+ /**
40
+ * Max number of results to show. Defaults to 10
41
+ */
42
+ limit(limit) {
43
+ this.data['limit'] = limit;
44
+ return this;
45
+ }
46
+ /**
47
+ * Fallback message when no match is found. Defaults to initial value if provided
48
+ */
49
+ fallback(fallback) {
50
+ this.data['fallback'] = fallback;
51
+ return this;
52
+ }
53
+ /**
54
+ * Hint to display to the user
55
+ */
56
+ hint(hint) {
57
+ this.data['hint'] = hint;
58
+ return this;
59
+ }
60
+ /**
61
+ * Message to display when selecting a disabled option
62
+ */
63
+ warn(warn) {
64
+ this.data['warn'] = warn;
65
+ return this;
66
+ }
67
+ /**
68
+ * An array of options/choices for the user to select.
69
+ */
70
+ choices(choices) {
71
+ this.data['choices'] = choices;
72
+ return this;
73
+ }
74
+ /**
75
+ * Minimum number of choices to select - will display error.
76
+ */
77
+ min(min) {
78
+ this.data['min'] = min;
79
+ return this;
80
+ }
81
+ /**
82
+ * Maximum number of choices to select
83
+ */
84
+ max(max) {
85
+ this.data['max'] = max;
86
+ return this;
87
+ }
88
+ /**
89
+ * Filter function. Defaults to sort by title property. suggest should always return a promise. Filters using title by default
90
+ */
91
+ suggest(suggest) {
92
+ this.data['suggest'] = suggest;
93
+ return this;
94
+ }
95
+ /**
96
+ * Receive user input. The returned value will be added to the response object
97
+ */
98
+ format(format) {
99
+ this.data['format'] = format;
100
+ return this;
101
+ }
102
+ /**
103
+ * Render style
104
+ */
105
+ style(style = 'default') {
106
+ this.data['style'] = style;
107
+ return this;
108
+ }
109
+ }
110
+ exports.AutocompletePrompt = AutocompletePrompt;
111
+ //# sourceMappingURL=AutocompletePrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutocompletePrompt.js","sourceRoot":"","sources":["../../../../../../packages/cli/src/prompt/core/AutocompletePrompt.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAIzD;;GAEG;AACH,MAAa,kBAAiE,SAAQ,uCAErF;IACC;;;OAGG;IACH,YAAY,IAAY,EAAE,OAAe,EAAE,QAAgD;QACzF,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACpC,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAmB;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAU;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,UAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,UAAU,CAAA;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAgB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAgB,SAAS;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAnHD,gDAmHC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfirmPrompt = void 0;
4
+ const AbstractUserPrompt_1 = require("./AbstractUserPrompt");
5
+ /**
6
+ * Interactive confirm user prompts in the terminal.
7
+ */
8
+ class ConfirmPrompt extends AbstractUserPrompt_1.AbstractUserPrompt {
9
+ /**
10
+ * @param type - The type of prompt
11
+ * @param message - The message to display to the user
12
+ */
13
+ constructor(name, message, callback) {
14
+ super('confirm', name, message);
15
+ if (callback)
16
+ callback(this);
17
+ }
18
+ /**
19
+ * On render callback. Keyword this refers to the current prompt
20
+ */
21
+ onRender(onRender) {
22
+ this.data['onRender'] = onRender;
23
+ return this;
24
+ }
25
+ /**
26
+ * Default value
27
+ */
28
+ initial(initial) {
29
+ this.data['initial'] = initial;
30
+ return this;
31
+ }
32
+ }
33
+ exports.ConfirmPrompt = ConfirmPrompt;
34
+ //# sourceMappingURL=ConfirmPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmPrompt.js","sourceRoot":"","sources":["../../../../../../packages/cli/src/prompt/core/ConfirmPrompt.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAGzD;;GAEG;AACH,MAAa,aAA2C,SAAQ,uCAAqC;IACnG;;;OAGG;IACH,YAAY,IAAY,EAAE,OAAe,EAAE,QAA2C;QACpF,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC/B,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAmB;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAU;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAzBD,sCAyBC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatePrompt = void 0;
4
+ const AbstractUserPrompt_1 = require("./AbstractUserPrompt");
5
+ /**
6
+ * Interactive date user prompts in the terminal.
7
+ */
8
+ class DatePrompt extends AbstractUserPrompt_1.AbstractUserPrompt {
9
+ /**
10
+ * @param type - The type of prompt
11
+ * @param message - The message to display to the user
12
+ */
13
+ constructor(name, message, callback) {
14
+ super('date', name, message);
15
+ if (callback)
16
+ callback(this);
17
+ }
18
+ /**
19
+ * On render callback. Keyword this refers to the current prompt
20
+ */
21
+ onRender(onRender) {
22
+ this.data['onRender'] = onRender;
23
+ return this;
24
+ }
25
+ /**
26
+ * Default value
27
+ */
28
+ initial(initial) {
29
+ this.data['initial'] = initial;
30
+ return this;
31
+ }
32
+ /**
33
+ * Receive user input. Should return true if the value is valid, and an error message String otherwise.
34
+ * If false is returned, a default error message is shown
35
+ */
36
+ validate(validate) {
37
+ this.data['validate'] = validate;
38
+ return this;
39
+ }
40
+ /**
41
+ * Use to define custom locales. See below for an example.
42
+ * More info: https://github.com/terkelg/prompts/wiki/Date-Time-Formatting
43
+ */
44
+ locales(locales) {
45
+ this.data['locales'] = locales;
46
+ return this;
47
+ }
48
+ /**
49
+ * The format mask of the date. See below for more information.
50
+ * More info: https://github.com/terkelg/prompts/wiki/Date-Time-Formatting
51
+ */
52
+ mask(mask = 'YYYY-MM-DD HH:mm:ss') {
53
+ this.data['mask'] = mask;
54
+ return this;
55
+ }
56
+ }
57
+ exports.DatePrompt = DatePrompt;
58
+ //# sourceMappingURL=DatePrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePrompt.js","sourceRoot":"","sources":["../../../../../../packages/cli/src/prompt/core/DatePrompt.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAKzD;;GAEG;AACH,MAAa,UAAkC,SAAQ,uCAAkC;IACvF;;;OAGG;IACH,YAAY,IAAY,EAAE,OAAe,EAAE,QAAwC;QACjF,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC5B,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAmB;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAU;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAA;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,QAAsB;QAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAAqC;QAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,OAAc,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,IAAI,GAAG,qBAAqB;QAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AApDD,gCAoDC"}