@flowscripter/dynamic-cli-framework 1.4.19 → 1.5.0

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 (534) hide show
  1. package/README.md +3 -14
  2. package/cli-plugin.ts +16 -0
  3. package/dist/cli-plugin.d.ts +17 -0
  4. package/dist/cli-plugin.d.ts.map +1 -0
  5. package/dist/cli-plugin.js +69 -0
  6. package/dist/index.d.ts +115 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +105696 -0
  9. package/dist/src/api/BaseCLIFeatureOptions.d.ts +12 -0
  10. package/dist/src/api/BaseCLIFeatureOptions.d.ts.map +1 -0
  11. package/dist/src/api/CLI.d.ts +17 -0
  12. package/dist/src/api/CLI.d.ts.map +1 -0
  13. package/dist/src/api/CLIConfig.d.ts +22 -0
  14. package/dist/src/api/CLIConfig.d.ts.map +1 -0
  15. package/dist/src/api/Context.d.ts +23 -0
  16. package/dist/src/api/Context.d.ts.map +1 -0
  17. package/dist/src/api/RunResult.d.ts +128 -0
  18. package/dist/src/api/RunResult.d.ts.map +1 -0
  19. package/dist/src/api/argument/Argument.d.ts +62 -0
  20. package/dist/src/api/argument/Argument.d.ts.map +1 -0
  21. package/dist/src/api/argument/ArgumentValueTypes.d.ts +68 -0
  22. package/dist/src/api/argument/ArgumentValueTypes.d.ts.map +1 -0
  23. package/dist/src/api/argument/ComplexOption.d.ts +21 -0
  24. package/dist/src/api/argument/ComplexOption.d.ts.map +1 -0
  25. package/dist/src/api/argument/GlobalCommandArgument.d.ts +16 -0
  26. package/dist/src/api/argument/GlobalCommandArgument.d.ts.map +1 -0
  27. package/dist/src/api/argument/Option.d.ts +29 -0
  28. package/dist/src/api/argument/Option.d.ts.map +1 -0
  29. package/dist/src/api/argument/Positional.d.ts +26 -0
  30. package/dist/src/api/argument/Positional.d.ts.map +1 -0
  31. package/dist/src/api/argument/SubCommandArgument.d.ts +18 -0
  32. package/dist/src/api/argument/SubCommandArgument.d.ts.map +1 -0
  33. package/dist/src/api/command/Command.d.ts +21 -0
  34. package/dist/src/api/command/Command.d.ts.map +1 -0
  35. package/dist/src/api/command/GlobalCommand.d.ts +28 -0
  36. package/dist/src/api/command/GlobalCommand.d.ts.map +1 -0
  37. package/dist/src/api/command/GlobalModifierCommand.d.ts +12 -0
  38. package/dist/src/api/command/GlobalModifierCommand.d.ts.map +1 -0
  39. package/dist/src/api/command/GroupCommand.d.ts +19 -0
  40. package/dist/src/api/command/GroupCommand.d.ts.map +1 -0
  41. package/dist/src/api/command/SubCommand.d.ts +37 -0
  42. package/dist/src/api/command/SubCommand.d.ts.map +1 -0
  43. package/dist/src/api/command/UsageExample.d.ts +20 -0
  44. package/dist/src/api/command/UsageExample.d.ts.map +1 -0
  45. package/dist/src/api/plugin/CommandFactory.d.ts +23 -0
  46. package/dist/src/api/plugin/CommandFactory.d.ts.map +1 -0
  47. package/dist/src/api/plugin/ServiceProviderFactory.d.ts +25 -0
  48. package/dist/src/api/plugin/ServiceProviderFactory.d.ts.map +1 -0
  49. package/dist/src/api/service/ServiceProvider.d.ts +47 -0
  50. package/dist/src/api/service/ServiceProvider.d.ts.map +1 -0
  51. package/dist/src/api/service/core/ArgumentPrompterService.d.ts +6 -0
  52. package/dist/src/api/service/core/ArgumentPrompterService.d.ts.map +1 -0
  53. package/dist/src/api/service/core/AsciiBannerGeneratorService.d.ts +59 -0
  54. package/dist/src/api/service/core/AsciiBannerGeneratorService.d.ts.map +1 -0
  55. package/dist/src/api/service/core/CompletionService.d.ts +22 -0
  56. package/dist/src/api/service/core/CompletionService.d.ts.map +1 -0
  57. package/dist/src/api/service/core/DataDumpGeneratorService.d.ts +22 -0
  58. package/dist/src/api/service/core/DataDumpGeneratorService.d.ts.map +1 -0
  59. package/dist/src/api/service/core/ImagePrinterService.d.ts +21 -0
  60. package/dist/src/api/service/core/ImagePrinterService.d.ts.map +1 -0
  61. package/dist/src/api/service/core/KeyValueService.d.ts +40 -0
  62. package/dist/src/api/service/core/KeyValueService.d.ts.map +1 -0
  63. package/dist/src/api/service/core/PluginService.d.ts +55 -0
  64. package/dist/src/api/service/core/PluginService.d.ts.map +1 -0
  65. package/dist/src/api/service/core/PrettyPrinterService.d.ts +35 -0
  66. package/dist/src/api/service/core/PrettyPrinterService.d.ts.map +1 -0
  67. package/dist/src/api/service/core/PrinterService.d.ts +339 -0
  68. package/dist/src/api/service/core/PrinterService.d.ts.map +1 -0
  69. package/dist/src/api/service/core/PrompterService.d.ts +35 -0
  70. package/dist/src/api/service/core/PrompterService.d.ts.map +1 -0
  71. package/dist/src/api/service/core/SecretService.d.ts +25 -0
  72. package/dist/src/api/service/core/SecretService.d.ts.map +1 -0
  73. package/dist/src/api/service/core/ShutdownService.d.ts +24 -0
  74. package/dist/src/api/service/core/ShutdownService.d.ts.map +1 -0
  75. package/dist/src/api/service/core/SyntaxHighlighterService.d.ts +49 -0
  76. package/dist/src/api/service/core/SyntaxHighlighterService.d.ts.map +1 -0
  77. package/dist/src/api/service/core/Table.d.ts +18 -0
  78. package/dist/src/api/service/core/Table.d.ts.map +1 -0
  79. package/dist/src/api/service/core/TableGeneratorService.d.ts +31 -0
  80. package/dist/src/api/service/core/TableGeneratorService.d.ts.map +1 -0
  81. package/dist/src/api/service/core/TreePrinterService.d.ts +9 -0
  82. package/dist/src/api/service/core/TreePrinterService.d.ts.map +1 -0
  83. package/dist/src/cli/BaseCLI.d.ts +59 -0
  84. package/dist/src/cli/BaseCLI.d.ts.map +1 -0
  85. package/dist/src/cli/DefaultRuntimeCLI.d.ts +12 -0
  86. package/dist/src/cli/DefaultRuntimeCLI.d.ts.map +1 -0
  87. package/dist/src/cli/DynamicPluginRuntimeCLI.d.ts +20 -0
  88. package/dist/src/cli/DynamicPluginRuntimeCLI.d.ts.map +1 -0
  89. package/dist/src/command/CompletionCommand.d.ts +31 -0
  90. package/dist/src/command/CompletionCommand.d.ts.map +1 -0
  91. package/dist/src/command/MultiCommandCliHelpCommand.d.ts +40 -0
  92. package/dist/src/command/MultiCommandCliHelpCommand.d.ts.map +1 -0
  93. package/dist/src/command/PluginCommand.d.ts +67 -0
  94. package/dist/src/command/PluginCommand.d.ts.map +1 -0
  95. package/dist/src/command/SingleCommandCliHelpCommand.d.ts +31 -0
  96. package/dist/src/command/SingleCommandCliHelpCommand.d.ts.map +1 -0
  97. package/dist/src/command/UsageCommand.d.ts +14 -0
  98. package/dist/src/command/UsageCommand.d.ts.map +1 -0
  99. package/dist/src/command/VersionCommand.d.ts +12 -0
  100. package/dist/src/command/VersionCommand.d.ts.map +1 -0
  101. package/dist/src/launcher.d.ts +10 -0
  102. package/dist/src/launcher.d.ts.map +1 -0
  103. package/dist/src/runtime/DefaultContext.d.ts +14 -0
  104. package/dist/src/runtime/DefaultContext.d.ts.map +1 -0
  105. package/dist/src/runtime/argument/ArgumentTypeGuards.d.ts +4 -0
  106. package/dist/src/runtime/argument/ArgumentTypeGuards.d.ts.map +1 -0
  107. package/dist/src/runtime/command/CommandTypeGuards.d.ts +10 -0
  108. package/dist/src/runtime/command/CommandTypeGuards.d.ts.map +1 -0
  109. package/dist/src/runtime/command/CommandValidator.d.ts +15 -0
  110. package/dist/src/runtime/command/CommandValidator.d.ts.map +1 -0
  111. package/dist/src/runtime/parser.d.ts +48 -0
  112. package/dist/src/runtime/parser.d.ts.map +1 -0
  113. package/dist/src/runtime/registry/CommandRegistry.d.ts +89 -0
  114. package/dist/src/runtime/registry/CommandRegistry.d.ts.map +1 -0
  115. package/dist/src/runtime/registry/DefaultCommandRegistry.d.ts +51 -0
  116. package/dist/src/runtime/registry/DefaultCommandRegistry.d.ts.map +1 -0
  117. package/dist/src/runtime/registry/DefaultServiceProviderRegistry.d.ts +12 -0
  118. package/dist/src/runtime/registry/DefaultServiceProviderRegistry.d.ts.map +1 -0
  119. package/dist/src/runtime/registry/ServiceProviderRegistry.d.ts +11 -0
  120. package/dist/src/runtime/registry/ServiceProviderRegistry.d.ts.map +1 -0
  121. package/dist/src/runtime/runner.d.ts +76 -0
  122. package/dist/src/runtime/runner.d.ts.map +1 -0
  123. package/dist/src/runtime/scanner.d.ts +69 -0
  124. package/dist/src/runtime/scanner.d.ts.map +1 -0
  125. package/dist/src/runtime/values/ValuePopulationResult.d.ts +34 -0
  126. package/dist/src/runtime/values/ValuePopulationResult.d.ts.map +1 -0
  127. package/dist/src/runtime/values/argumentValueMerge.d.ts +13 -0
  128. package/dist/src/runtime/values/argumentValueMerge.d.ts.map +1 -0
  129. package/dist/src/runtime/values/argumentValueValidation.d.ts +33 -0
  130. package/dist/src/runtime/values/argumentValueValidation.d.ts.map +1 -0
  131. package/dist/src/runtime/values/globalCommandValuePopulation.d.ts +12 -0
  132. package/dist/src/runtime/values/globalCommandValuePopulation.d.ts.map +1 -0
  133. package/dist/src/runtime/values/subCommandValuePopulation.d.ts +12 -0
  134. package/dist/src/runtime/values/subCommandValuePopulation.d.ts.map +1 -0
  135. package/dist/src/service/argumentPrompter/ArgumentPrompterServiceProvider.d.ts +13 -0
  136. package/dist/src/service/argumentPrompter/ArgumentPrompterServiceProvider.d.ts.map +1 -0
  137. package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.d.ts +9 -0
  138. package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.d.ts.map +1 -0
  139. package/dist/src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.d.ts +20 -0
  140. package/dist/src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.d.ts.map +1 -0
  141. package/dist/src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.d.ts +12 -0
  142. package/dist/src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.d.ts.map +1 -0
  143. package/dist/src/service/banner/BannerServiceProvider.d.ts +29 -0
  144. package/dist/src/service/banner/BannerServiceProvider.d.ts.map +1 -0
  145. package/dist/src/service/banner/command/NoBannerCommand.d.ts +19 -0
  146. package/dist/src/service/banner/command/NoBannerCommand.d.ts.map +1 -0
  147. package/dist/src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.d.ts +22 -0
  148. package/dist/src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.d.ts.map +1 -0
  149. package/dist/src/service/completion/CompletionServiceProvider.d.ts +14 -0
  150. package/dist/src/service/completion/CompletionServiceProvider.d.ts.map +1 -0
  151. package/dist/src/service/completion/DefaultCompletionService.d.ts +17 -0
  152. package/dist/src/service/completion/DefaultCompletionService.d.ts.map +1 -0
  153. package/dist/src/service/completion/shell/ShellHandler.d.ts +13 -0
  154. package/dist/src/service/completion/shell/ShellHandler.d.ts.map +1 -0
  155. package/dist/src/service/completion/shell/bash.d.ts +11 -0
  156. package/dist/src/service/completion/shell/bash.d.ts.map +1 -0
  157. package/dist/src/service/completion/shell/fish.d.ts +11 -0
  158. package/dist/src/service/completion/shell/fish.d.ts.map +1 -0
  159. package/dist/src/service/completion/shell/powershell.d.ts +11 -0
  160. package/dist/src/service/completion/shell/powershell.d.ts.map +1 -0
  161. package/dist/src/service/completion/shell/zsh.d.ts +11 -0
  162. package/dist/src/service/completion/shell/zsh.d.ts.map +1 -0
  163. package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts +196 -0
  164. package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts.map +1 -0
  165. package/dist/src/service/configuration/DefaultKeyValueService.d.ts +14 -0
  166. package/dist/src/service/configuration/DefaultKeyValueService.d.ts.map +1 -0
  167. package/dist/src/service/configuration/DefaultSecretService.d.ts +27 -0
  168. package/dist/src/service/configuration/DefaultSecretService.d.ts.map +1 -0
  169. package/dist/src/service/configuration/command/ConfigCommand.d.ts +19 -0
  170. package/dist/src/service/configuration/command/ConfigCommand.d.ts.map +1 -0
  171. package/dist/src/service/configuration/command/DumpConfigCommand.d.ts +14 -0
  172. package/dist/src/service/configuration/command/DumpConfigCommand.d.ts.map +1 -0
  173. package/dist/src/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.d.ts +12 -0
  174. package/dist/src/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.d.ts.map +1 -0
  175. package/dist/src/service/dataDumpGenerator/DefaultDataDumpGeneratorService.d.ts +10 -0
  176. package/dist/src/service/dataDumpGenerator/DefaultDataDumpGeneratorService.d.ts.map +1 -0
  177. package/dist/src/service/imagePrinter/DefaultImagePrinterService.d.ts +8 -0
  178. package/dist/src/service/imagePrinter/DefaultImagePrinterService.d.ts.map +1 -0
  179. package/dist/src/service/imagePrinter/ImagePrinterServiceProvider.d.ts +13 -0
  180. package/dist/src/service/imagePrinter/ImagePrinterServiceProvider.d.ts.map +1 -0
  181. package/dist/src/service/plugin/DefaultPluginService.d.ts +15 -0
  182. package/dist/src/service/plugin/DefaultPluginService.d.ts.map +1 -0
  183. package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts +13 -0
  184. package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts.map +1 -0
  185. package/dist/src/service/prettyPrinter/DefaultPrettyPrinterService.d.ts +13 -0
  186. package/dist/src/service/prettyPrinter/DefaultPrettyPrinterService.d.ts.map +1 -0
  187. package/dist/src/service/prettyPrinter/PrettyPrinterServiceProvider.d.ts +20 -0
  188. package/dist/src/service/prettyPrinter/PrettyPrinterServiceProvider.d.ts.map +1 -0
  189. package/dist/src/service/printer/DefaultPrinterService.d.ts +61 -0
  190. package/dist/src/service/printer/DefaultPrinterService.d.ts.map +1 -0
  191. package/dist/src/service/printer/PrinterServiceProvider.d.ts +22 -0
  192. package/dist/src/service/printer/PrinterServiceProvider.d.ts.map +1 -0
  193. package/dist/src/service/printer/command/DarkModeCommand.d.ts +19 -0
  194. package/dist/src/service/printer/command/DarkModeCommand.d.ts.map +1 -0
  195. package/dist/src/service/printer/command/LogLevelCommand.d.ts +19 -0
  196. package/dist/src/service/printer/command/LogLevelCommand.d.ts.map +1 -0
  197. package/dist/src/service/printer/command/NoColorCommand.d.ts +19 -0
  198. package/dist/src/service/printer/command/NoColorCommand.d.ts.map +1 -0
  199. package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts +16 -0
  200. package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts.map +1 -0
  201. package/dist/src/service/printer/terminal/Color.d.ts +15 -0
  202. package/dist/src/service/printer/terminal/Color.d.ts.map +1 -0
  203. package/dist/src/service/printer/terminal/Progress.d.ts +20 -0
  204. package/dist/src/service/printer/terminal/Progress.d.ts.map +1 -0
  205. package/dist/src/service/printer/terminal/Spinner.d.ts +16 -0
  206. package/dist/src/service/printer/terminal/Spinner.d.ts.map +1 -0
  207. package/dist/src/service/printer/terminal/Theme.d.ts +3 -0
  208. package/dist/src/service/printer/terminal/Theme.d.ts.map +1 -0
  209. package/dist/src/service/prompter/DefaultPrompterService.d.ts +21 -0
  210. package/dist/src/service/prompter/DefaultPrompterService.d.ts.map +1 -0
  211. package/dist/src/service/prompter/PrompterServiceProvider.d.ts +13 -0
  212. package/dist/src/service/prompter/PrompterServiceProvider.d.ts.map +1 -0
  213. package/dist/src/service/prompter/command/NoPromptCommand.d.ts +16 -0
  214. package/dist/src/service/prompter/command/NoPromptCommand.d.ts.map +1 -0
  215. package/dist/src/service/prompter/prompt/PromptContext.d.ts +15 -0
  216. package/dist/src/service/prompter/prompt/PromptContext.d.ts.map +1 -0
  217. package/dist/src/service/prompter/prompt/promptAcknowledge.d.ts +4 -0
  218. package/dist/src/service/prompter/prompt/promptAcknowledge.d.ts.map +1 -0
  219. package/dist/src/service/prompter/prompt/promptMultiSelect.d.ts +4 -0
  220. package/dist/src/service/prompter/prompt/promptMultiSelect.d.ts.map +1 -0
  221. package/dist/src/service/prompter/prompt/promptOpenUrl.d.ts +4 -0
  222. package/dist/src/service/prompter/prompt/promptOpenUrl.d.ts.map +1 -0
  223. package/dist/src/service/prompter/prompt/promptSingleSelect.d.ts +4 -0
  224. package/dist/src/service/prompter/prompt/promptSingleSelect.d.ts.map +1 -0
  225. package/dist/src/service/prompter/prompt/promptText.d.ts +4 -0
  226. package/dist/src/service/prompter/prompt/promptText.d.ts.map +1 -0
  227. package/dist/src/service/prompter/prompt/promptToggle.d.ts +4 -0
  228. package/dist/src/service/prompter/prompt/promptToggle.d.ts.map +1 -0
  229. package/dist/src/service/shutdown/DefaultShutdownService.d.ts +9 -0
  230. package/dist/src/service/shutdown/DefaultShutdownService.d.ts.map +1 -0
  231. package/dist/src/service/shutdown/ShutdownServiceProvider.d.ts +15 -0
  232. package/dist/src/service/shutdown/ShutdownServiceProvider.d.ts.map +1 -0
  233. package/dist/src/service/shutdown/ShutdownState.d.ts +6 -0
  234. package/dist/src/service/shutdown/ShutdownState.d.ts.map +1 -0
  235. package/dist/src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.d.ts +17 -0
  236. package/dist/src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.d.ts.map +1 -0
  237. package/dist/src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.d.ts +20 -0
  238. package/dist/src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.d.ts.map +1 -0
  239. package/dist/src/service/tableGenerator/DefaultTableGeneratorService.d.ts +10 -0
  240. package/dist/src/service/tableGenerator/DefaultTableGeneratorService.d.ts.map +1 -0
  241. package/dist/src/service/tableGenerator/TableGeneratorServiceProvider.d.ts +12 -0
  242. package/dist/src/service/tableGenerator/TableGeneratorServiceProvider.d.ts.map +1 -0
  243. package/dist/src/service/treePrinter/DefaultTreePrinterService.d.ts +10 -0
  244. package/dist/src/service/treePrinter/DefaultTreePrinterService.d.ts.map +1 -0
  245. package/dist/src/service/treePrinter/TreePrinterServiceProvider.d.ts +12 -0
  246. package/dist/src/service/treePrinter/TreePrinterServiceProvider.d.ts.map +1 -0
  247. package/dist/src/terminal/Ansi.d.ts +14 -0
  248. package/dist/src/terminal/Ansi.d.ts.map +1 -0
  249. package/dist/src/terminal/ImageRenderer.d.ts +7 -0
  250. package/dist/src/terminal/ImageRenderer.d.ts.map +1 -0
  251. package/dist/src/terminal/KeyReader.d.ts +22 -0
  252. package/dist/src/terminal/KeyReader.d.ts.map +1 -0
  253. package/dist/src/terminal/PngDecoder.d.ts +6 -0
  254. package/dist/src/terminal/PngDecoder.d.ts.map +1 -0
  255. package/dist/src/terminal/Styler.d.ts +9 -0
  256. package/dist/src/terminal/Styler.d.ts.map +1 -0
  257. package/dist/src/terminal/Terminal.d.ts +10 -0
  258. package/dist/src/terminal/Terminal.d.ts.map +1 -0
  259. package/dist/src/terminal/TtyKeyReader.d.ts +11 -0
  260. package/dist/src/terminal/TtyKeyReader.d.ts.map +1 -0
  261. package/dist/src/terminal/TtyStyler.d.ts +19 -0
  262. package/dist/src/terminal/TtyStyler.d.ts.map +1 -0
  263. package/dist/src/terminal/TtyTerminal.d.ts +14 -0
  264. package/dist/src/terminal/TtyTerminal.d.ts.map +1 -0
  265. package/dist/src/terminal/supportsHyperlinks.d.ts +3 -0
  266. package/dist/src/terminal/supportsHyperlinks.d.ts.map +1 -0
  267. package/dist/src/util/configHelper.d.ts +22 -0
  268. package/dist/src/util/configHelper.d.ts.map +1 -0
  269. package/dist/src/util/envVarHelper.d.ts +21 -0
  270. package/dist/src/util/envVarHelper.d.ts.map +1 -0
  271. package/dist/src/util/helpHelper.d.ts +26 -0
  272. package/dist/src/util/helpHelper.d.ts.map +1 -0
  273. package/dist/src/util/logger.d.ts +18 -0
  274. package/dist/src/util/logger.d.ts.map +1 -0
  275. package/dist/src/util/runnerHelper.d.ts +9 -0
  276. package/dist/src/util/runnerHelper.d.ts.map +1 -0
  277. package/dist/tests/cli/BaseCLI.test.d.ts +2 -0
  278. package/dist/tests/cli/BaseCLI.test.d.ts.map +1 -0
  279. package/dist/tests/cli/DynamicPluginRuntimeCLI.test.d.ts +2 -0
  280. package/dist/tests/cli/DynamicPluginRuntimeCLI.test.d.ts.map +1 -0
  281. package/dist/tests/command/CompletionCommand.test.d.ts +2 -0
  282. package/dist/tests/command/CompletionCommand.test.d.ts.map +1 -0
  283. package/dist/tests/command/MultiCommandCliHelpCommand.test.d.ts +2 -0
  284. package/dist/tests/command/MultiCommandCliHelpCommand.test.d.ts.map +1 -0
  285. package/dist/tests/command/SingleCommandCliHelpCommand.test.d.ts +2 -0
  286. package/dist/tests/command/SingleCommandCliHelpCommand.test.d.ts.map +1 -0
  287. package/dist/tests/command/UsageCommand.test.d.ts +2 -0
  288. package/dist/tests/command/UsageCommand.test.d.ts.map +1 -0
  289. package/dist/tests/command/VersionCommand.test.d.ts +2 -0
  290. package/dist/tests/command/VersionCommand.test.d.ts.map +1 -0
  291. package/dist/tests/fixtures/CLIConfig.d.ts +3 -0
  292. package/dist/tests/fixtures/CLIConfig.d.ts.map +1 -0
  293. package/dist/tests/fixtures/Command.d.ts +20 -0
  294. package/dist/tests/fixtures/Command.d.ts.map +1 -0
  295. package/{tests/fixtures/CommandRegistry.ts → dist/tests/fixtures/CommandRegistry.d.ts} +2 -4
  296. package/dist/tests/fixtures/CommandRegistry.d.ts.map +1 -0
  297. package/dist/tests/fixtures/ConfigurationServiceProvider.d.ts +10 -0
  298. package/dist/tests/fixtures/ConfigurationServiceProvider.d.ts.map +1 -0
  299. package/dist/tests/fixtures/Context.d.ts +4 -0
  300. package/dist/tests/fixtures/Context.d.ts.map +1 -0
  301. package/dist/tests/fixtures/ServiceProviderRegistry.d.ts +4 -0
  302. package/dist/tests/fixtures/ServiceProviderRegistry.d.ts.map +1 -0
  303. package/dist/tests/fixtures/StreamString.d.ts +10 -0
  304. package/dist/tests/fixtures/StreamString.d.ts.map +1 -0
  305. package/dist/tests/fixtures/prettierPluginFoo.d.ts +4 -0
  306. package/dist/tests/fixtures/prettierPluginFoo.d.ts.map +1 -0
  307. package/dist/tests/fixtures/util.d.ts +8 -0
  308. package/dist/tests/fixtures/util.d.ts.map +1 -0
  309. package/dist/tests/runtime/DefaultContext.test.d.ts +2 -0
  310. package/dist/tests/runtime/DefaultContext.test.d.ts.map +1 -0
  311. package/dist/tests/runtime/argument/ArgumentTypeGuards.test.d.ts +2 -0
  312. package/dist/tests/runtime/argument/ArgumentTypeGuards.test.d.ts.map +1 -0
  313. package/dist/tests/runtime/command/CommandTypeGuards.test.d.ts +2 -0
  314. package/dist/tests/runtime/command/CommandTypeGuards.test.d.ts.map +1 -0
  315. package/dist/tests/runtime/command/CommandValidator.test.d.ts +2 -0
  316. package/dist/tests/runtime/command/CommandValidator.test.d.ts.map +1 -0
  317. package/dist/tests/runtime/parser.test.d.ts +2 -0
  318. package/dist/tests/runtime/parser.test.d.ts.map +1 -0
  319. package/dist/tests/runtime/registry/DefaultCommandRegistry.test.d.ts +2 -0
  320. package/dist/tests/runtime/registry/DefaultCommandRegistry.test.d.ts.map +1 -0
  321. package/dist/tests/runtime/registry/DefaultServiceProviderRegistry.test.d.ts +2 -0
  322. package/dist/tests/runtime/registry/DefaultServiceProviderRegistry.test.d.ts.map +1 -0
  323. package/dist/tests/runtime/runner.test.d.ts +2 -0
  324. package/dist/tests/runtime/runner.test.d.ts.map +1 -0
  325. package/dist/tests/runtime/scanner.test.d.ts +2 -0
  326. package/dist/tests/runtime/scanner.test.d.ts.map +1 -0
  327. package/dist/tests/runtime/values/argumentValueMerge.test.d.ts +2 -0
  328. package/dist/tests/runtime/values/argumentValueMerge.test.d.ts.map +1 -0
  329. package/dist/tests/runtime/values/argumentValueValidation.test.d.ts +2 -0
  330. package/dist/tests/runtime/values/argumentValueValidation.test.d.ts.map +1 -0
  331. package/dist/tests/runtime/values/globalCommandValuePopulation.test.d.ts +2 -0
  332. package/dist/tests/runtime/values/globalCommandValuePopulation.test.d.ts.map +1 -0
  333. package/dist/tests/runtime/values/subCommandValuePopulation.test.d.ts +2 -0
  334. package/dist/tests/runtime/values/subCommandValuePopulation.test.d.ts.map +1 -0
  335. package/dist/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.d.ts +2 -0
  336. package/dist/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.d.ts.map +1 -0
  337. package/dist/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.d.ts +2 -0
  338. package/dist/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.d.ts.map +1 -0
  339. package/dist/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.d.ts +2 -0
  340. package/dist/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.d.ts.map +1 -0
  341. package/dist/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.d.ts +2 -0
  342. package/dist/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.d.ts.map +1 -0
  343. package/dist/tests/service/banner/BannerServiceProvider.test.d.ts +2 -0
  344. package/dist/tests/service/banner/BannerServiceProvider.test.d.ts.map +1 -0
  345. package/dist/tests/service/banner/command/NoBannerCommand.test.d.ts +2 -0
  346. package/dist/tests/service/banner/command/NoBannerCommand.test.d.ts.map +1 -0
  347. package/dist/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.d.ts +2 -0
  348. package/dist/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.d.ts.map +1 -0
  349. package/dist/tests/service/completion/CompletionServiceProvider.test.d.ts +2 -0
  350. package/dist/tests/service/completion/CompletionServiceProvider.test.d.ts.map +1 -0
  351. package/dist/tests/service/completion/DefaultCompletionService.test.d.ts +2 -0
  352. package/dist/tests/service/completion/DefaultCompletionService.test.d.ts.map +1 -0
  353. package/dist/tests/service/completion/shell/bash.test.d.ts +2 -0
  354. package/dist/tests/service/completion/shell/bash.test.d.ts.map +1 -0
  355. package/dist/tests/service/completion/shell/fish.test.d.ts +2 -0
  356. package/dist/tests/service/completion/shell/fish.test.d.ts.map +1 -0
  357. package/dist/tests/service/completion/shell/powershell.test.d.ts +2 -0
  358. package/dist/tests/service/completion/shell/powershell.test.d.ts.map +1 -0
  359. package/dist/tests/service/completion/shell/zsh.test.d.ts +2 -0
  360. package/dist/tests/service/completion/shell/zsh.test.d.ts.map +1 -0
  361. package/dist/tests/service/configuration/ConfigurationServiceProvider.test.d.ts +2 -0
  362. package/dist/tests/service/configuration/ConfigurationServiceProvider.test.d.ts.map +1 -0
  363. package/dist/tests/service/configuration/DefaultKeyValueService.test.d.ts +2 -0
  364. package/dist/tests/service/configuration/DefaultKeyValueService.test.d.ts.map +1 -0
  365. package/dist/tests/service/configuration/DefaultSecretService.test.d.ts +2 -0
  366. package/dist/tests/service/configuration/DefaultSecretService.test.d.ts.map +1 -0
  367. package/dist/tests/service/configuration/command/ConfigCommand.test.d.ts +2 -0
  368. package/dist/tests/service/configuration/command/ConfigCommand.test.d.ts.map +1 -0
  369. package/dist/tests/service/configuration/command/DumpConfigCommand.test.d.ts +2 -0
  370. package/dist/tests/service/configuration/command/DumpConfigCommand.test.d.ts.map +1 -0
  371. package/dist/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.d.ts +2 -0
  372. package/dist/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.d.ts.map +1 -0
  373. package/dist/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.d.ts +2 -0
  374. package/dist/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.d.ts.map +1 -0
  375. package/dist/tests/service/imagePrinter/DefaultImagePrinterService.test.d.ts +2 -0
  376. package/dist/tests/service/imagePrinter/DefaultImagePrinterService.test.d.ts.map +1 -0
  377. package/dist/tests/service/imagePrinter/ImagePrinterServiceProvider.test.d.ts +2 -0
  378. package/dist/tests/service/imagePrinter/ImagePrinterServiceProvider.test.d.ts.map +1 -0
  379. package/dist/tests/service/plugin/DefaultPluginServiceProvider.test.d.ts +2 -0
  380. package/dist/tests/service/plugin/DefaultPluginServiceProvider.test.d.ts.map +1 -0
  381. package/dist/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.d.ts +2 -0
  382. package/dist/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.d.ts.map +1 -0
  383. package/dist/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.d.ts +2 -0
  384. package/dist/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.d.ts.map +1 -0
  385. package/dist/tests/service/printer/DefaultPrinterService.test.d.ts +2 -0
  386. package/dist/tests/service/printer/DefaultPrinterService.test.d.ts.map +1 -0
  387. package/dist/tests/service/printer/PrinterServiceProvider.test.d.ts +2 -0
  388. package/dist/tests/service/printer/PrinterServiceProvider.test.d.ts.map +1 -0
  389. package/dist/tests/service/printer/command/DarkModeCommand.test.d.ts +2 -0
  390. package/dist/tests/service/printer/command/DarkModeCommand.test.d.ts.map +1 -0
  391. package/dist/tests/service/printer/command/LogLevelCommand.test.d.ts +2 -0
  392. package/dist/tests/service/printer/command/LogLevelCommand.test.d.ts.map +1 -0
  393. package/dist/tests/service/printer/command/NoColorCommand.test.d.ts +2 -0
  394. package/dist/tests/service/printer/command/NoColorCommand.test.d.ts.map +1 -0
  395. package/dist/tests/service/printer/command/NoHyperlinksCommand.test.d.ts +2 -0
  396. package/dist/tests/service/printer/command/NoHyperlinksCommand.test.d.ts.map +1 -0
  397. package/dist/tests/service/printer/terminal/Progress.test.d.ts +2 -0
  398. package/dist/tests/service/printer/terminal/Progress.test.d.ts.map +1 -0
  399. package/dist/tests/service/printer/terminal/Spinner.test.d.ts +2 -0
  400. package/dist/tests/service/printer/terminal/Spinner.test.d.ts.map +1 -0
  401. package/dist/tests/service/prompter/DefaultPrompterService.test.d.ts +2 -0
  402. package/dist/tests/service/prompter/DefaultPrompterService.test.d.ts.map +1 -0
  403. package/dist/tests/service/prompter/PrompterServiceProvider.test.d.ts +2 -0
  404. package/dist/tests/service/prompter/PrompterServiceProvider.test.d.ts.map +1 -0
  405. package/dist/tests/service/prompter/command/NoPromptCommand.test.d.ts +2 -0
  406. package/dist/tests/service/prompter/command/NoPromptCommand.test.d.ts.map +1 -0
  407. package/dist/tests/service/prompter/prompt/PromptContext.test.d.ts +2 -0
  408. package/dist/tests/service/prompter/prompt/PromptContext.test.d.ts.map +1 -0
  409. package/dist/tests/service/shutdown/ShutdownServiceProvider.test.d.ts +2 -0
  410. package/dist/tests/service/shutdown/ShutdownServiceProvider.test.d.ts.map +1 -0
  411. package/dist/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.d.ts +2 -0
  412. package/dist/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.d.ts.map +1 -0
  413. package/dist/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.d.ts +2 -0
  414. package/dist/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.d.ts.map +1 -0
  415. package/dist/tests/service/tableGenerator/DefaultTableGeneratorService.test.d.ts +2 -0
  416. package/dist/tests/service/tableGenerator/DefaultTableGeneratorService.test.d.ts.map +1 -0
  417. package/dist/tests/service/tableGenerator/TableGeneratorServiceProvider.test.d.ts +2 -0
  418. package/dist/tests/service/tableGenerator/TableGeneratorServiceProvider.test.d.ts.map +1 -0
  419. package/dist/tests/service/treePrinter/DefaultTreePrinterService.test.d.ts +2 -0
  420. package/dist/tests/service/treePrinter/DefaultTreePrinterService.test.d.ts.map +1 -0
  421. package/dist/tests/service/treePrinter/TreePrinterServiceProvider.test.d.ts +2 -0
  422. package/dist/tests/service/treePrinter/TreePrinterServiceProvider.test.d.ts.map +1 -0
  423. package/dist/tests/terminal/ImageRenderer.test.d.ts +2 -0
  424. package/dist/tests/terminal/ImageRenderer.test.d.ts.map +1 -0
  425. package/dist/tests/terminal/PngDecoder.test.d.ts +2 -0
  426. package/dist/tests/terminal/PngDecoder.test.d.ts.map +1 -0
  427. package/dist/tests/terminal/supportsHyperlinks.test.d.ts +2 -0
  428. package/dist/tests/terminal/supportsHyperlinks.test.d.ts.map +1 -0
  429. package/dist/tests/util/configHelper.test.d.ts +2 -0
  430. package/dist/tests/util/configHelper.test.d.ts.map +1 -0
  431. package/dist/tests/util/envVarHelper.test.d.ts +2 -0
  432. package/dist/tests/util/envVarHelper.test.d.ts.map +1 -0
  433. package/dist/tests/util/logger.test.d.ts +2 -0
  434. package/dist/tests/util/logger.test.d.ts.map +1 -0
  435. package/index.ts +15 -1
  436. package/package.json +28 -2
  437. package/src/api/plugin/CommandFactory.ts +25 -0
  438. package/src/api/plugin/ServiceProviderFactory.ts +27 -0
  439. package/src/api/service/core/PluginService.ts +63 -0
  440. package/src/cli/DynamicPluginRuntimeCLI.ts +77 -0
  441. package/src/command/PluginCommand.ts +184 -0
  442. package/src/launcher.ts +35 -0
  443. package/src/service/plugin/DefaultPluginService.ts +37 -0
  444. package/src/service/plugin/DefaultPluginServiceProvider.ts +29 -0
  445. package/.github/workflows/check-bun-dependencies.yml +0 -12
  446. package/.github/workflows/lint-pr-message.yml +0 -13
  447. package/.github/workflows/release-bun-library.yml +0 -15
  448. package/.github/workflows/validate-bun-library-pr.yml +0 -10
  449. package/README/core-commands.md +0 -40
  450. package/README/core-service-providers.md +0 -198
  451. package/README/development.md +0 -57
  452. package/README/implementation-details.md +0 -474
  453. package/README/key-concepts.md +0 -751
  454. package/bun.lock +0 -156
  455. package/tests/cli/BaseCLI.test.ts +0 -283
  456. package/tests/command/CompletionCommand.test.ts +0 -63
  457. package/tests/command/MultiCommandCliHelpCommand.test.ts +0 -496
  458. package/tests/command/SingleCommandCliHelpCommand.test.ts +0 -302
  459. package/tests/command/UsageCommand.test.ts +0 -48
  460. package/tests/command/VersionCommand.test.ts +0 -37
  461. package/tests/fixtures/CLIConfig.ts +0 -9
  462. package/tests/fixtures/Command.ts +0 -248
  463. package/tests/fixtures/ConfigurationServiceProvider.ts +0 -28
  464. package/tests/fixtures/Context.ts +0 -32
  465. package/tests/fixtures/ServiceProviderRegistry.ts +0 -16
  466. package/tests/fixtures/StreamString.ts +0 -37
  467. package/tests/fixtures/prettierPluginFoo.ts +0 -31
  468. package/tests/fixtures/util.ts +0 -35
  469. package/tests/runtime/DefaultContext.test.ts +0 -20
  470. package/tests/runtime/argument/ArgumentTypeGuards.test.ts +0 -47
  471. package/tests/runtime/command/CommandTypeGuards.test.ts +0 -43
  472. package/tests/runtime/command/CommandValidator.test.ts +0 -1196
  473. package/tests/runtime/parser.test.ts +0 -744
  474. package/tests/runtime/registry/DefaultCommandRegistry.test.ts +0 -144
  475. package/tests/runtime/registry/DefaultServiceProviderRegistry.test.ts +0 -36
  476. package/tests/runtime/runner.test.ts +0 -1284
  477. package/tests/runtime/scanner.test.ts +0 -915
  478. package/tests/runtime/values/argumentValueMerge.test.ts +0 -366
  479. package/tests/runtime/values/argumentValueValidation.test.ts +0 -1090
  480. package/tests/runtime/values/globalCommandValuePopulation.test.ts +0 -480
  481. package/tests/runtime/values/subCommandValuePopulation.test.ts +0 -2430
  482. package/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.ts +0 -38
  483. package/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.ts +0 -745
  484. package/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.ts +0 -17
  485. package/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.ts +0 -208
  486. package/tests/service/asciiBannerGenerator/__snapshots__/DefaultAsciiBannerGeneratorService.test.ts.snap +0 -20
  487. package/tests/service/asciiBannerGenerator/small.flf.json +0 -3
  488. package/tests/service/banner/BannerServiceProvider.test.ts +0 -87
  489. package/tests/service/banner/__snapshots__/BannerServiceProvider.test.ts.snap +0 -16
  490. package/tests/service/banner/command/NoBannerCommand.test.ts +0 -18
  491. package/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.ts +0 -52
  492. package/tests/service/completion/CompletionServiceProvider.test.ts +0 -335
  493. package/tests/service/completion/DefaultCompletionService.test.ts +0 -216
  494. package/tests/service/completion/shell/bash.test.ts +0 -73
  495. package/tests/service/completion/shell/fish.test.ts +0 -60
  496. package/tests/service/completion/shell/powershell.test.ts +0 -59
  497. package/tests/service/completion/shell/zsh.test.ts +0 -60
  498. package/tests/service/configuration/ConfigurationServiceProvider.test.ts +0 -212
  499. package/tests/service/configuration/DefaultKeyValueService.test.ts +0 -155
  500. package/tests/service/configuration/DefaultSecretService.test.ts +0 -140
  501. package/tests/service/configuration/command/ConfigCommand.test.ts +0 -29
  502. package/tests/service/configuration/command/DumpConfigCommand.test.ts +0 -51
  503. package/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.ts +0 -51
  504. package/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.ts +0 -208
  505. package/tests/service/imagePrinter/DefaultImagePrinterService.test.ts +0 -31
  506. package/tests/service/imagePrinter/ImagePrinterServiceProvider.test.ts +0 -17
  507. package/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.ts +0 -46
  508. package/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.ts +0 -37
  509. package/tests/service/printer/DefaultPrinterService.test.ts +0 -530
  510. package/tests/service/printer/PrinterServiceProvider.test.ts +0 -34
  511. package/tests/service/printer/command/DarkModeCommand.test.ts +0 -75
  512. package/tests/service/printer/command/LogLevelCommand.test.ts +0 -47
  513. package/tests/service/printer/command/NoColorCommand.test.ts +0 -75
  514. package/tests/service/printer/command/NoHyperlinksCommand.test.ts +0 -75
  515. package/tests/service/printer/terminal/Progress.test.ts +0 -98
  516. package/tests/service/printer/terminal/Spinner.test.ts +0 -92
  517. package/tests/service/prompter/DefaultPrompterService.test.ts +0 -598
  518. package/tests/service/prompter/PrompterServiceProvider.test.ts +0 -41
  519. package/tests/service/prompter/command/NoPromptCommand.test.ts +0 -58
  520. package/tests/service/prompter/prompt/PromptContext.test.ts +0 -61
  521. package/tests/service/shutdown/ShutdownServiceProvider.test.ts +0 -13
  522. package/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.ts +0 -101
  523. package/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.ts +0 -37
  524. package/tests/service/tableGenerator/DefaultTableGeneratorService.test.ts +0 -342
  525. package/tests/service/tableGenerator/TableGeneratorServiceProvider.test.ts +0 -47
  526. package/tests/service/treePrinter/DefaultTreePrinterService.test.ts +0 -142
  527. package/tests/service/treePrinter/TreePrinterServiceProvider.test.ts +0 -51
  528. package/tests/terminal/ImageRenderer.test.ts +0 -152
  529. package/tests/terminal/PngDecoder.test.ts +0 -219
  530. package/tests/terminal/supportsHyperlinks.test.ts +0 -149
  531. package/tests/util/configHelper.test.ts +0 -193
  532. package/tests/util/envVarHelper.test.ts +0 -254
  533. package/tests/util/logger.test.ts +0 -56
  534. package/tsconfig.json +0 -32
@@ -1,744 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import {
3
- getGlobalCommand,
4
- getGlobalModifierCommand,
5
- getSubCommandWithComplexOptions,
6
- getSubCommandWithOptionAndPositional,
7
- } from "../fixtures/Command.ts";
8
- import {
9
- parseGlobalCommandClause,
10
- type ParseResult,
11
- parseSubCommandClause,
12
- } from "../../src/runtime/parser.ts";
13
- import { InvalidArgumentReason } from "../../src/api/RunResult.ts";
14
- import type ComplexOption from "../../src/api/argument/ComplexOption.ts";
15
- import {
16
- type ArgumentValueType,
17
- ArgumentValueTypeName,
18
- ComplexValueTypeName,
19
- type PopulatedArgumentValues,
20
- } from "../../src/api/argument/ArgumentValueTypes.ts";
21
- import type SubCommand from "../../src/api/command/SubCommand.ts";
22
-
23
- function expectParseResult(result: ParseResult, expected: ParseResult) {
24
- expect(result.populatedArgumentValues).toEqual(expected.populatedArgumentValues!);
25
- expect(result.unusedArgs).toEqual(expected.unusedArgs);
26
- expect(result.invalidArguments).toEqual(expected.invalidArguments);
27
- }
28
-
29
- describe("parser tests", () => {
30
- test("Arguments parsed for sub-command", () => {
31
- const subCommand = getSubCommandWithOptionAndPositional();
32
-
33
- let parseResult = parseSubCommandClause({
34
- command: subCommand,
35
- potentialArgs: ["bar", "--goo", "g"],
36
- });
37
- expectParseResult(parseResult, {
38
- command: subCommand,
39
- populatedArgumentValues: {
40
- goo: "g",
41
- foo: "bar",
42
- },
43
- unusedArgs: [],
44
- invalidArguments: [],
45
- });
46
-
47
- parseResult = parseSubCommandClause({
48
- command: subCommand,
49
- potentialArgs: ["bar", "-g=g"],
50
- });
51
- expectParseResult(parseResult, {
52
- command: subCommand,
53
- populatedArgumentValues: {
54
- goo: "g",
55
- foo: "bar",
56
- },
57
- unusedArgs: [],
58
- invalidArguments: [],
59
- });
60
- });
61
-
62
- test("Quoted string parsing works", () => {
63
- const subCommand = getSubCommandWithOptionAndPositional();
64
-
65
- let parseResult = parseSubCommandClause({
66
- command: subCommand,
67
- potentialArgs: ["bar with more", "--goo", "g with more"],
68
- });
69
- expectParseResult(parseResult, {
70
- command: subCommand,
71
- populatedArgumentValues: {
72
- goo: "g with more",
73
- foo: "bar with more",
74
- },
75
- unusedArgs: [],
76
- invalidArguments: [],
77
- });
78
-
79
- parseResult = parseSubCommandClause({
80
- command: subCommand,
81
- potentialArgs: ["bar with more", "-g=g with more"],
82
- });
83
- expectParseResult(parseResult, {
84
- command: subCommand,
85
- populatedArgumentValues: {
86
- goo: "g with more",
87
- foo: "bar with more",
88
- },
89
- unusedArgs: [],
90
- invalidArguments: [],
91
- });
92
- });
93
-
94
- test("Arguments parsed for global command", () => {
95
- const globalCommand = getGlobalCommand("globalCommand", true);
96
-
97
- const parseResult = parseGlobalCommandClause({
98
- command: globalCommand,
99
- potentialArgs: ["foo"],
100
- });
101
- expectParseResult(parseResult, {
102
- command: globalCommand,
103
- populatedArgumentValues: "foo",
104
- unusedArgs: [],
105
- invalidArguments: [],
106
- });
107
- });
108
-
109
- test("Arguments parsed for global modifier command", () => {
110
- const globalModifierCommand = getGlobalModifierCommand("modifierCommand", "m", true, true);
111
-
112
- const parseResult = parseGlobalCommandClause({
113
- command: globalModifierCommand,
114
- potentialArgs: ["foo"],
115
- });
116
- expectParseResult(parseResult, {
117
- command: globalModifierCommand,
118
- populatedArgumentValues: "foo",
119
- unusedArgs: [],
120
- invalidArguments: [],
121
- });
122
- });
123
-
124
- test("Arguments parsed with trailing args", () => {
125
- const subCommand = getSubCommandWithOptionAndPositional();
126
-
127
- const parseResult = parseSubCommandClause({
128
- command: subCommand,
129
- potentialArgs: ["bar", "--goo", "g", "hello", "--world"],
130
- });
131
- expectParseResult(parseResult, {
132
- command: subCommand,
133
- populatedArgumentValues: {
134
- goo: "g",
135
- foo: "bar",
136
- },
137
- unusedArgs: ["hello", "--world"],
138
- invalidArguments: [],
139
- });
140
- });
141
-
142
- test("All arguments provided in config", () => {
143
- const subCommand = getSubCommandWithOptionAndPositional();
144
-
145
- const parseResult = parseSubCommandClause(
146
- {
147
- command: subCommand,
148
- potentialArgs: [],
149
- },
150
- {
151
- goo: "g",
152
- foo: "bar",
153
- },
154
- );
155
- expectParseResult(parseResult, {
156
- command: subCommand,
157
- populatedArgumentValues: {
158
- goo: "g",
159
- foo: "bar",
160
- },
161
- unusedArgs: [],
162
- invalidArguments: [],
163
- });
164
- });
165
-
166
- test("Some arguments provided in config", () => {
167
- const subCommand = getSubCommandWithOptionAndPositional();
168
-
169
- let parseResult = parseSubCommandClause(
170
- {
171
- command: subCommand,
172
- potentialArgs: ["--goo", "g"],
173
- },
174
- {
175
- foo: "bar",
176
- },
177
- );
178
- expectParseResult(parseResult, {
179
- command: subCommand,
180
- populatedArgumentValues: {
181
- goo: "g",
182
- foo: "bar",
183
- },
184
- unusedArgs: [],
185
- invalidArguments: [],
186
- });
187
-
188
- parseResult = parseSubCommandClause(
189
- {
190
- command: subCommand,
191
- potentialArgs: ["bar"],
192
- },
193
- {
194
- goo: "g",
195
- },
196
- );
197
- expectParseResult(parseResult, {
198
- command: subCommand,
199
- populatedArgumentValues: {
200
- goo: "g",
201
- foo: "bar",
202
- },
203
- unusedArgs: [],
204
- invalidArguments: [],
205
- });
206
- });
207
-
208
- test("Extra config provided", () => {
209
- const subCommand = getSubCommandWithOptionAndPositional();
210
-
211
- const parseResult = parseSubCommandClause(
212
- {
213
- command: subCommand,
214
- potentialArgs: ["--goo", "g"],
215
- },
216
- {
217
- foo: "bar",
218
- yee: "ha",
219
- },
220
- );
221
- expectParseResult(parseResult, {
222
- command: subCommand,
223
- populatedArgumentValues: {
224
- goo: "g",
225
- foo: "bar",
226
- yee: "ha",
227
- },
228
- unusedArgs: [],
229
- invalidArguments: [],
230
- });
231
- });
232
-
233
- test("Arguments parsed for sub-command with complex options", () => {
234
- const subCommand = getSubCommandWithComplexOptions(false, true);
235
-
236
- const parseResult = parseSubCommandClause({
237
- command: subCommand,
238
- potentialArgs: [
239
- "-e.g=bar",
240
- "-e.d=1",
241
- "-a.b[1].g=foo2",
242
- "--alpha.beta[0].gamma=foo1",
243
- "-a.b[1].d[1]=2",
244
- "-a.b[0].d=1",
245
- "-a.b[1].d[0]=3",
246
- ],
247
- });
248
- expectParseResult(parseResult, {
249
- command: subCommand,
250
- populatedArgumentValues: {
251
- alpha: [
252
- {
253
- beta: [
254
- {
255
- delta: [1],
256
- gamma: "foo1",
257
- },
258
- {
259
- delta: [3, 2],
260
- gamma: "foo2",
261
- },
262
- ],
263
- },
264
- ],
265
- epsilon: {
266
- gamma: "bar",
267
- delta: 1,
268
- },
269
- },
270
- unusedArgs: [],
271
- invalidArguments: [],
272
- });
273
- });
274
-
275
- test("Arguments parsed for sub-command with complex options (illegal scenarios)", () => {
276
- const subCommand = getSubCommandWithComplexOptions();
277
-
278
- let parseResult = parseSubCommandClause({
279
- command: subCommand,
280
- potentialArgs: [
281
- "-a.b.g=foo1",
282
- "-a.b.d=1",
283
- "-a.b.g=foo2",
284
- "-a.b.d=2",
285
- "-a.b.d=3",
286
- "-e.g=bar",
287
- "-e.d=1",
288
- ],
289
- });
290
- expectParseResult(parseResult, {
291
- command: subCommand,
292
- populatedArgumentValues: {
293
- alpha: [
294
- {
295
- beta: {
296
- delta: ["1"],
297
- gamma: "foo1",
298
- },
299
- },
300
- ],
301
- },
302
- unusedArgs: ["-a.b.d=2", "-a.b.d=3", "-e.g=bar", "-e.d=1"],
303
- invalidArguments: [
304
- {
305
- argument: ((subCommand.options[0] as ComplexOption).properties[0] as ComplexOption)
306
- .properties[0],
307
- reason: InvalidArgumentReason.ILLEGAL_MULTIPLE_VALUES,
308
- name: "gamma",
309
- },
310
- ],
311
- });
312
-
313
- parseResult = parseSubCommandClause({
314
- command: subCommand,
315
- potentialArgs: [
316
- "--alpha.beta.gamma=foo1",
317
- "-a.b.d=1",
318
- "-a.b.d=2",
319
- "-a.b.d=3",
320
- "-e.g=bar",
321
- "-e.d=1",
322
- "-e.d=2",
323
- ],
324
- });
325
- expectParseResult(parseResult, {
326
- command: subCommand,
327
- populatedArgumentValues: {
328
- alpha: [
329
- {
330
- beta: {
331
- delta: ["1", "2", "3"],
332
- gamma: "foo1",
333
- },
334
- },
335
- ],
336
- epsilon: {
337
- gamma: "bar",
338
- delta: "1",
339
- },
340
- },
341
- unusedArgs: [],
342
- invalidArguments: [
343
- {
344
- name: "delta",
345
- argument: (subCommand.options[1] as ComplexOption).properties[1],
346
- reason: InvalidArgumentReason.ILLEGAL_MULTIPLE_VALUES,
347
- },
348
- ],
349
- });
350
- });
351
-
352
- test("Arguments parsed for sub-command with complex options and sparse array", () => {
353
- const subCommand = getSubCommandWithComplexOptions(false, true);
354
-
355
- let parseResult = parseSubCommandClause({
356
- command: subCommand,
357
- potentialArgs: ["-e.g=bar", "-e.d=1", "-a.b[1].g=foo2", "-a.b[1].d[1]=2", "-a.b[1].d[0]=3"],
358
- });
359
-
360
- let argumentValues: PopulatedArgumentValues = {
361
- alpha: [
362
- {
363
- beta: [],
364
- },
365
- ],
366
- epsilon: {
367
- gamma: "bar",
368
- delta: 1,
369
- },
370
- };
371
-
372
- (
373
- (argumentValues.alpha as Array<PopulatedArgumentValues>)[0]!
374
- .beta as Array<PopulatedArgumentValues>
375
- )[1] = {
376
- gamma: "foo2",
377
- delta: ["3", "2"], // these are still stored as strings as the validation (and type conversion) failed fast
378
- };
379
-
380
- expectParseResult(parseResult, {
381
- command: subCommand,
382
- populatedArgumentValues: argumentValues,
383
- unusedArgs: [],
384
- invalidArguments: [
385
- {
386
- argument: (subCommand.options[0] as ComplexOption).properties[0],
387
- name: "alpha[0].beta[0]",
388
- reason: InvalidArgumentReason.ILLEGAL_SPARSE_ARRAY,
389
- },
390
- ],
391
- });
392
-
393
- parseResult = parseSubCommandClause({
394
- command: subCommand,
395
- potentialArgs: [
396
- "-e.g=bar",
397
- "-e.d=1",
398
- "-a.b[1].g=foo2",
399
- "--alpha.beta[0].gamma=foo1",
400
- "-a.b[1].d[2]=2",
401
- "-a.b[1].d[0]=0",
402
- "-a.b[0].d=1",
403
- ],
404
- });
405
-
406
- argumentValues = {
407
- alpha: [
408
- {
409
- beta: [
410
- {
411
- gamma: "foo1",
412
- delta: ["1"], // this is still stored as strings as the validation (and type conversion) failed fast
413
- },
414
- {
415
- gamma: "foo2",
416
- delta: [],
417
- },
418
- ],
419
- },
420
- ],
421
- epsilon: {
422
- gamma: "bar",
423
- delta: 1,
424
- },
425
- };
426
-
427
- // these are still stored as strings as the validation (and type conversion) failed fast
428
- (
429
- (
430
- (argumentValues.alpha as Array<PopulatedArgumentValues>)[0]!
431
- .beta as Array<PopulatedArgumentValues>
432
- )[1]!.delta as Array<ArgumentValueType>
433
- )[0] = "0";
434
- (
435
- (
436
- (argumentValues.alpha as Array<PopulatedArgumentValues>)[0]!
437
- .beta as Array<PopulatedArgumentValues>
438
- )[1]!.delta as Array<ArgumentValueType>
439
- )[2] = "2";
440
-
441
- expectParseResult(parseResult, {
442
- command: subCommand,
443
- populatedArgumentValues: argumentValues,
444
- unusedArgs: [],
445
- invalidArguments: [
446
- {
447
- argument: ((subCommand.options[0] as ComplexOption).properties[0] as ComplexOption)
448
- .properties[1],
449
- name: "alpha[0].beta[1].delta[1]",
450
- reason: InvalidArgumentReason.ILLEGAL_SPARSE_ARRAY,
451
- },
452
- ],
453
- });
454
- });
455
-
456
- test("Arguments parsed for sub-command with complex options and missing property values", () => {
457
- const subCommand = getSubCommandWithComplexOptions(false, false);
458
-
459
- const parseResult = parseSubCommandClause({
460
- command: subCommand,
461
- potentialArgs: ["-a.b.g=foo1", "-a.b.d=1", "-a.b.d=2", "-a.b.d=3", "-e.d=1"],
462
- });
463
- expectParseResult(parseResult, {
464
- command: subCommand,
465
- populatedArgumentValues: {
466
- alpha: [
467
- {
468
- beta: {
469
- gamma: "foo1",
470
- delta: [1, 2, 3],
471
- },
472
- },
473
- ],
474
- epsilon: {
475
- delta: "1",
476
- },
477
- },
478
- unusedArgs: [],
479
- invalidArguments: [
480
- {
481
- argument: (subCommand.options[1] as ComplexOption).properties[0],
482
- name: "epsilon.gamma",
483
- reason: InvalidArgumentReason.MISSING_VALUE,
484
- },
485
- ],
486
- });
487
- });
488
-
489
- test("Arguments parsed for sub-command with complex options and some values provided by config", () => {
490
- const subCommand = getSubCommandWithComplexOptions(false, true);
491
-
492
- const parseResult = parseSubCommandClause(
493
- {
494
- command: subCommand,
495
- potentialArgs: [
496
- "-a.b[1].g=foo2",
497
- "--alpha.beta[0].gamma=foo1",
498
- "-a.b[1].d[1]=2",
499
- "-a.b[0].d=1",
500
- "-a.b[1].d[0]=3",
501
- ],
502
- },
503
- {
504
- epsilon: {
505
- gamma: "bar",
506
- delta: 1,
507
- },
508
- },
509
- );
510
- expectParseResult(parseResult, {
511
- command: subCommand,
512
- populatedArgumentValues: {
513
- alpha: [
514
- {
515
- beta: [
516
- {
517
- delta: [1],
518
- gamma: "foo1",
519
- },
520
- {
521
- delta: [3, 2],
522
- gamma: "foo2",
523
- },
524
- ],
525
- },
526
- ],
527
- epsilon: {
528
- gamma: "bar",
529
- delta: 1,
530
- },
531
- },
532
- unusedArgs: [],
533
- invalidArguments: [],
534
- });
535
- });
536
-
537
- test("Arguments parsed for sub-command with complex options and some values provided by config but overridden", () => {
538
- const subCommand = getSubCommandWithComplexOptions(false, true);
539
-
540
- const parseResult = parseSubCommandClause(
541
- {
542
- command: subCommand,
543
- potentialArgs: [
544
- "-e.g=bar2",
545
- "-e.d=2",
546
- "-a.b[1].g=foo2",
547
- "--alpha.beta[0].gamma=foo1",
548
- "-a.b[1].d[1]=2",
549
- "-a.b[0].d=1",
550
- "-a.b[1].d[0]=3",
551
- ],
552
- },
553
- {
554
- epsilon: {
555
- gamma: "bar",
556
- delta: 1,
557
- },
558
- },
559
- );
560
- expectParseResult(parseResult, {
561
- command: subCommand,
562
- populatedArgumentValues: {
563
- alpha: [
564
- {
565
- beta: [
566
- {
567
- delta: [1],
568
- gamma: "foo1",
569
- },
570
- {
571
- delta: [3, 2],
572
- gamma: "foo2",
573
- },
574
- ],
575
- },
576
- ],
577
- epsilon: {
578
- gamma: "bar2",
579
- delta: 2,
580
- },
581
- },
582
- unusedArgs: [],
583
- invalidArguments: [],
584
- });
585
- });
586
-
587
- test("Arguments parsed for sub-command with complex options and all values provided by config", () => {
588
- const subCommand = getSubCommandWithComplexOptions(false, true);
589
-
590
- const parseResult = parseSubCommandClause(
591
- {
592
- command: subCommand,
593
- potentialArgs: [],
594
- },
595
- {
596
- alpha: [
597
- {
598
- beta: [
599
- {
600
- delta: [1],
601
- gamma: "foo1",
602
- },
603
- {
604
- delta: [3, 2],
605
- gamma: "foo2",
606
- },
607
- ],
608
- },
609
- ],
610
- epsilon: {
611
- gamma: "bar",
612
- delta: 1,
613
- },
614
- },
615
- );
616
- expectParseResult(parseResult, {
617
- command: subCommand,
618
- populatedArgumentValues: {
619
- alpha: [
620
- {
621
- beta: [
622
- {
623
- delta: [1],
624
- gamma: "foo1",
625
- },
626
- {
627
- delta: [3, 2],
628
- gamma: "foo2",
629
- },
630
- ],
631
- },
632
- ],
633
- epsilon: {
634
- gamma: "bar",
635
- delta: 1,
636
- },
637
- },
638
- unusedArgs: [],
639
- invalidArguments: [],
640
- });
641
- });
642
-
643
- test("Arguments parsed for sub-command with complex options and all values provided by default value", () => {
644
- const subCommand: SubCommand = {
645
- name: "subCommand",
646
- options: [
647
- {
648
- name: "alpha",
649
- shortAlias: "a",
650
- type: ComplexValueTypeName.COMPLEX,
651
- isArray: true,
652
- defaultValue: [
653
- {
654
- beta: [
655
- {
656
- delta: [1],
657
- gamma: "foo1",
658
- },
659
- {
660
- delta: [3, 2],
661
- gamma: "foo2",
662
- },
663
- ],
664
- },
665
- ],
666
- properties: [
667
- {
668
- name: "beta",
669
- shortAlias: "b",
670
- type: ComplexValueTypeName.COMPLEX,
671
- isArray: true,
672
- properties: [
673
- {
674
- name: "gamma",
675
- shortAlias: "g",
676
- type: ArgumentValueTypeName.STRING,
677
- },
678
- {
679
- name: "delta",
680
- shortAlias: "d",
681
- type: ArgumentValueTypeName.NUMBER,
682
- isArray: true,
683
- },
684
- ],
685
- },
686
- ],
687
- },
688
- {
689
- name: "epsilon",
690
- shortAlias: "e",
691
- type: ComplexValueTypeName.COMPLEX,
692
- defaultValue: {
693
- gamma: "bar",
694
- delta: 1,
695
- },
696
- properties: [
697
- {
698
- name: "gamma",
699
- shortAlias: "g",
700
- type: ArgumentValueTypeName.STRING,
701
- },
702
- {
703
- name: "delta",
704
- shortAlias: "d",
705
- type: ArgumentValueTypeName.NUMBER,
706
- },
707
- ],
708
- },
709
- ],
710
- positionals: [],
711
- execute: async (): Promise<void> => {},
712
- };
713
-
714
- const parseResult = parseSubCommandClause({
715
- command: subCommand,
716
- potentialArgs: [],
717
- });
718
- expectParseResult(parseResult, {
719
- command: subCommand,
720
- populatedArgumentValues: {
721
- alpha: [
722
- {
723
- beta: [
724
- {
725
- delta: [1],
726
- gamma: "foo1",
727
- },
728
- {
729
- delta: [3, 2],
730
- gamma: "foo2",
731
- },
732
- ],
733
- },
734
- ],
735
- epsilon: {
736
- gamma: "bar",
737
- delta: 1,
738
- },
739
- },
740
- unusedArgs: [],
741
- invalidArguments: [],
742
- });
743
- });
744
- });