@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,302 +0,0 @@
1
- import { describe, test } from "bun:test";
2
- import { getCommandRegistry } from "../fixtures/CommandRegistry.ts";
3
- import {
4
- getGlobalCommand,
5
- getGlobalModifierCommand,
6
- getSubCommandWithOption,
7
- getSubCommandWithPositional,
8
- } from "../fixtures/Command.ts";
9
- import { getContext } from "../fixtures/Context.ts";
10
- import { expectStringIncludes, expectStringNotIncludes } from "../fixtures/util.ts";
11
- import { ArgumentValueTypeName } from "../../src/api/argument/ArgumentValueTypes.ts";
12
- import { SingleCommandCliHelpGlobalCommand } from "../../src/command/SingleCommandCliHelpCommand.ts";
13
- import type SubCommand from "../../src/api/command/SubCommand.ts";
14
- import StreamString from "../fixtures/StreamString.ts";
15
-
16
- describe("SingleCommandCliHelpCommand tests", () => {
17
- test("Ensure single command CLI with simple default command help is rendered correctly: simple default command", async () => {
18
- const streamString = new StreamString();
19
- const context = getContext(streamString);
20
- const help = new SingleCommandCliHelpGlobalCommand(
21
- true,
22
- getSubCommandWithOption("command_a", true, true, true),
23
- getCommandRegistry(),
24
- );
25
-
26
- await help.execute(context);
27
- expectStringIncludes(streamString.getString(), "--foo");
28
- });
29
-
30
- test("Ensure single command CLI aggregates all non-default command arguments", async () => {
31
- const streamString = new StreamString();
32
- const context = getContext(streamString);
33
- const commandRegistry = getCommandRegistry([
34
- getGlobalCommand("global1", true, true),
35
- getGlobalCommand("global2", true),
36
- getSubCommandWithOption("command_a", true, true, true, ArgumentValueTypeName.BOOLEAN),
37
- getSubCommandWithOption("command_b", true),
38
- {
39
- name: "topic",
40
- helpTopic: "topic",
41
- options: [],
42
- positionals: [],
43
- execute: async (): Promise<void> => {},
44
- } as SubCommand,
45
- ]);
46
- const help = new SingleCommandCliHelpGlobalCommand(
47
- true,
48
- getSubCommandWithOption("command_a", true, true, true),
49
- commandRegistry,
50
- );
51
-
52
- await help.execute(context);
53
- expectStringNotIncludes(streamString.getString(), "Global");
54
- expectStringNotIncludes(streamString.getString(), "Topic");
55
- expectStringIncludes(streamString.getString(), "Command Arguments");
56
- expectStringIncludes(streamString.getString(), "Other Arguments");
57
- });
58
-
59
- test("Ensure single command CLI with default and globals help is rendered correctly: default and global modifier", async () => {
60
- const streamString = new StreamString();
61
- const context = getContext(streamString);
62
- const commandRegistry = getCommandRegistry([
63
- getGlobalModifierCommand("modifier1", "m", true, true),
64
- ]);
65
- const help = new SingleCommandCliHelpGlobalCommand(
66
- true,
67
- getSubCommandWithOption("command_a", true, true, true),
68
- commandRegistry,
69
- );
70
-
71
- await help.execute(context);
72
- expectStringIncludes(streamString.getString(), "Other Arguments");
73
- });
74
-
75
- test("Ensure single command CLI with default and globals help is rendered correctly: default, global modifier and global", async () => {
76
- const streamString = new StreamString();
77
- const context = getContext(streamString);
78
- const commandRegistry = getCommandRegistry([
79
- getGlobalModifierCommand("modifier1"),
80
- getGlobalCommand("global1"),
81
- ]);
82
- const help = new SingleCommandCliHelpGlobalCommand(
83
- true,
84
- getSubCommandWithOption("command_a", true, true, true),
85
- commandRegistry,
86
- );
87
- await help.execute(context);
88
- expectStringIncludes(streamString.getString(), "Other Arguments");
89
- });
90
-
91
- test("Ensure single command CLI usage syntax is rendered correctly: simple default command", async () => {
92
- const streamString = new StreamString();
93
- const context = getContext(streamString);
94
- const help = new SingleCommandCliHelpGlobalCommand(
95
- true,
96
- getSubCommandWithOption("command_a", true, true, true),
97
- getCommandRegistry(),
98
- );
99
-
100
- await help.execute(context);
101
- expectStringIncludes(streamString.getString(), "foo --foo <string_value>...");
102
- });
103
-
104
- test("Ensure single command CLI usage syntax is rendered correctly: simple default command with non-multiple arg", async () => {
105
- const streamString = new StreamString();
106
- const context = getContext(streamString);
107
- const commandRegistry = getCommandRegistry();
108
- const help = new SingleCommandCliHelpGlobalCommand(
109
- true,
110
- getSubCommandWithOption("command_a", true, true),
111
- commandRegistry,
112
- );
113
-
114
- await help.execute(context);
115
- expectStringIncludes(streamString.getString(), "foo --foo <string_value>");
116
- });
117
-
118
- test("Ensure single command CLI usage syntax is rendered correctly: simple default command with optional arg", async () => {
119
- const streamString = new StreamString();
120
- const context = getContext(streamString);
121
- const commandRegistry = getCommandRegistry();
122
- const help = new SingleCommandCliHelpGlobalCommand(
123
- true,
124
- getSubCommandWithOption("command_a", true),
125
- commandRegistry,
126
- );
127
-
128
- await help.execute(context);
129
- expectStringIncludes(streamString.getString(), "foo [--foo <string_value>]");
130
- });
131
-
132
- test("Ensure single command CLI usage syntax is rendered correctly: with mandatory arg global modifier", async () => {
133
- const streamString = new StreamString();
134
- const context = getContext(streamString);
135
- const commandRegistry = getCommandRegistry([
136
- getGlobalModifierCommand("modifier1", "m", true, true),
137
- ]);
138
- const help = new SingleCommandCliHelpGlobalCommand(
139
- true,
140
- getSubCommandWithOption("command_a", true, true, true),
141
- commandRegistry,
142
- );
143
-
144
- await help.execute(context);
145
- expectStringIncludes(streamString.getString(), "foo --foo <string_value>...");
146
- });
147
-
148
- test("Ensure single command CLI usage syntax is rendered correctly: with global modifier with no arg", async () => {
149
- const streamString = new StreamString();
150
- const context = getContext(streamString);
151
- const commandRegistry = getCommandRegistry([getGlobalModifierCommand("modifier1")]);
152
- const help = new SingleCommandCliHelpGlobalCommand(
153
- true,
154
- getSubCommandWithOption("command_a", true, true, true),
155
- commandRegistry,
156
- );
157
-
158
- await help.execute(context);
159
- expectStringIncludes(streamString.getString(), "foo --foo <string_value>...");
160
- });
161
-
162
- test("Ensure single command CLI usage syntax is rendered correctly: with singular optional arg and global modifier", async () => {
163
- const streamString = new StreamString();
164
- const context = getContext(streamString);
165
- const commandRegistry = getCommandRegistry([getGlobalModifierCommand("modifier1")]);
166
- const help = new SingleCommandCliHelpGlobalCommand(
167
- true,
168
- getSubCommandWithOption("command_a", true),
169
- commandRegistry,
170
- );
171
-
172
- await help.execute(context);
173
- expectStringIncludes(streamString.getString(), "foo [--foo <string_value>]");
174
- });
175
-
176
- test("Ensure single command CLI usage syntax is rendered correctly: with multiple optional arg and multiple global modifiers and multiple global commands", async () => {
177
- const streamString = new StreamString();
178
- const context = getContext(streamString);
179
- const commandRegistry = getCommandRegistry([
180
- getGlobalModifierCommand("modifier1"),
181
- getGlobalModifierCommand("modifier2", "m", true, true),
182
- getGlobalCommand("global1", true, true),
183
- getGlobalCommand("global2", true, true),
184
- ]);
185
- const help = new SingleCommandCliHelpGlobalCommand(
186
- true,
187
- getSubCommandWithOption("command_a", true, false, true),
188
- commandRegistry,
189
- );
190
-
191
- await help.execute(context);
192
- expectStringIncludes(streamString.getString(), "foo [--foo <string_value>]...");
193
- });
194
-
195
- test("Ensure single command CLI usage syntax is rendered correctly: with optional arg, multiple global modifiers, multiple global commands, multiple sub-commands", async () => {
196
- const streamString = new StreamString();
197
- const context = getContext(streamString);
198
- const commandRegistry = getCommandRegistry([
199
- getGlobalModifierCommand("modifier1"),
200
- getGlobalModifierCommand("modifier2", "m", true, true),
201
- getGlobalCommand("global1", true, true),
202
- getGlobalCommand("global2", true, true),
203
- getSubCommandWithOption("sub1", true, true),
204
- ]);
205
- const help = new SingleCommandCliHelpGlobalCommand(
206
- true,
207
- getSubCommandWithOption("command_a", true, false, true),
208
- commandRegistry,
209
- );
210
-
211
- await help.execute(context);
212
- expectStringIncludes(streamString.getString(), "foo [--foo <string_value>]...");
213
- });
214
-
215
- test("Ensure single command CLI usage syntax is rendered correctly: also with boolean args", async () => {
216
- const streamString = new StreamString();
217
- const context = getContext(streamString);
218
- const commandRegistry = getCommandRegistry([
219
- getGlobalModifierCommand("modifier1"),
220
- getGlobalModifierCommand("modifier2", "m", true, true),
221
- getGlobalCommand("global1", true, true),
222
- getGlobalCommand("global2", true, true),
223
- getSubCommandWithOption("sub1", true, true, false, ArgumentValueTypeName.BOOLEAN),
224
- ]);
225
- const help = new SingleCommandCliHelpGlobalCommand(
226
- true,
227
- getSubCommandWithOption("command_a", true, false, true, ArgumentValueTypeName.BOOLEAN),
228
- commandRegistry,
229
- );
230
-
231
- await help.execute(context);
232
- expectStringIncludes(streamString.getString(), "foo [--foo [true|false]]...");
233
- });
234
-
235
- test("Ensure single command CLI usage syntax is rendered correctly: also with default value", async () => {
236
- const streamString = new StreamString();
237
- const context = getContext(streamString);
238
- const commandRegistry = getCommandRegistry();
239
- const help = new SingleCommandCliHelpGlobalCommand(
240
- true,
241
- getSubCommandWithOption("command_a", true, false, true, ArgumentValueTypeName.STRING, "foo"),
242
- commandRegistry,
243
- );
244
-
245
- await help.execute(context);
246
- expectStringIncludes(streamString.getString(), "foo [--foo <string_value>]...");
247
- });
248
-
249
- test("Ensure single command CLI usage syntax is rendered correctly: with positionals", async () => {
250
- const streamString = new StreamString();
251
- const context = getContext(streamString);
252
- const commandRegistry = getCommandRegistry();
253
- let help = new SingleCommandCliHelpGlobalCommand(
254
- true,
255
- getSubCommandWithPositional("command_a"),
256
- commandRegistry,
257
- );
258
-
259
- await help.execute(context);
260
- expectStringIncludes(streamString.getString(), "foo <foo>");
261
-
262
- help = new SingleCommandCliHelpGlobalCommand(
263
- true,
264
- getSubCommandWithPositional("command_a", true, true),
265
- commandRegistry,
266
- );
267
- await help.execute(context);
268
- expectStringIncludes(streamString.getString(), "foo [<foo>]...");
269
-
270
- help = new SingleCommandCliHelpGlobalCommand(
271
- true,
272
- getSubCommandWithPositional("command_a", true, true, ArgumentValueTypeName.BOOLEAN),
273
- commandRegistry,
274
- );
275
- await help.execute(context);
276
- expectStringIncludes(streamString.getString(), "foo [<foo>]...");
277
-
278
- help = new SingleCommandCliHelpGlobalCommand(
279
- true,
280
- getSubCommandWithPositional("command_a", true, true, ArgumentValueTypeName.STRING),
281
- commandRegistry,
282
- );
283
- await help.execute(context);
284
- expectStringIncludes(streamString.getString(), "foo [<foo>]...");
285
-
286
- help = new SingleCommandCliHelpGlobalCommand(
287
- true,
288
- getSubCommandWithPositional("command_a", false, false, ArgumentValueTypeName.STRING),
289
- commandRegistry,
290
- );
291
- await help.execute(context);
292
- expectStringIncludes(streamString.getString(), "foo <foo>");
293
-
294
- help = new SingleCommandCliHelpGlobalCommand(
295
- true,
296
- getSubCommandWithPositional("command_a", false, true, ArgumentValueTypeName.BOOLEAN),
297
- commandRegistry,
298
- );
299
- await help.execute(context);
300
- expectStringIncludes(streamString.getString(), "foo <foo>...");
301
- });
302
- });
@@ -1,48 +0,0 @@
1
- import { describe, test } from "bun:test";
2
- import DefaultContext from "../../src/runtime/DefaultContext.ts";
3
- import UsageCommand from "../../src/command/UsageCommand.ts";
4
- import { getCLIConfig } from "../fixtures/CLIConfig.ts";
5
- import { PRINTER_SERVICE_ID } from "../../src/api/service/core/PrinterService.ts";
6
- import DefaultPrinterService from "../../src/service/printer/DefaultPrinterService.ts";
7
- import type { ArgumentValues } from "../../src/api/argument/ArgumentValueTypes.ts";
8
- import type Context from "../../src/api/Context.ts";
9
- import type Command from "../../src/api/command/Command.ts";
10
- import StreamString from "../fixtures/StreamString.ts";
11
- import { expectStringEquals } from "../fixtures/util.ts";
12
- import TtyTerminal from "../../src/terminal/TtyTerminal.ts";
13
- import TtyStyler from "../../src/terminal/TtyStyler.ts";
14
-
15
- describe("UsageCommand tests", () => {
16
- test("Usage works", async () => {
17
- const dummyStdout = new StreamString();
18
- const dummyStderr = new StreamString();
19
- const printer = new DefaultPrinterService(
20
- dummyStdout.writableStream,
21
- dummyStderr.writableStream,
22
- true,
23
- true,
24
- new TtyTerminal(dummyStdout.writeStream),
25
- new TtyTerminal(dummyStderr.writeStream),
26
- new TtyStyler(3),
27
- );
28
- printer.colorEnabled = false;
29
-
30
- const context = new DefaultContext(getCLIConfig());
31
-
32
- context.addServiceInstance(PRINTER_SERVICE_ID, printer);
33
-
34
- const usageCommand = new UsageCommand(
35
- new (class implements Command {
36
- readonly name = "help";
37
-
38
- execute(_argumentValues: ArgumentValues, _context: Context): Promise<void> {
39
- return Promise.resolve(undefined);
40
- }
41
- })(),
42
- );
43
-
44
- await usageCommand.execute(context);
45
-
46
- expectStringEquals(dummyStdout.getString(), "Try running:\n\n foo --help\n\n");
47
- });
48
- });
@@ -1,37 +0,0 @@
1
- import { describe, test } from "bun:test";
2
- import DefaultContext from "../../src/runtime/DefaultContext.ts";
3
- import VersionCommand from "../../src/command/VersionCommand.ts";
4
- import { getCLIConfig } from "../fixtures/CLIConfig.ts";
5
- import { PRINTER_SERVICE_ID } from "../../src/api/service/core/PrinterService.ts";
6
- import DefaultPrinterService from "../../src/service/printer/DefaultPrinterService.ts";
7
- import StreamString from "../fixtures/StreamString.ts";
8
- import { expectStringEquals } from "../fixtures/util.ts";
9
- import TtyTerminal from "../../src/terminal/TtyTerminal.ts";
10
- import TtyStyler from "../../src/terminal/TtyStyler.ts";
11
-
12
- describe("VersionCommand tests", () => {
13
- test("Version works", async () => {
14
- const dummyStdout = new StreamString();
15
- const dummyStderr = new StreamString();
16
- const printer = new DefaultPrinterService(
17
- dummyStdout.writableStream,
18
- dummyStderr.writableStream,
19
- true,
20
- true,
21
- new TtyTerminal(dummyStdout.writeStream),
22
- new TtyTerminal(dummyStderr.writeStream),
23
- new TtyStyler(3),
24
- );
25
- printer.colorEnabled = false;
26
-
27
- const context = new DefaultContext(getCLIConfig());
28
-
29
- context.addServiceInstance(PRINTER_SERVICE_ID, printer);
30
-
31
- const versionCommand = new VersionCommand();
32
-
33
- await versionCommand.execute(context);
34
-
35
- expectStringEquals(dummyStdout.getString(), "foobar\n");
36
- });
37
- });
@@ -1,9 +0,0 @@
1
- import type CLIConfig from "../../src/api/CLIConfig.ts";
2
-
3
- export function getCLIConfig(name = "foo"): CLIConfig {
4
- return {
5
- name,
6
- description: "bar",
7
- version: "foobar",
8
- };
9
- }
@@ -1,248 +0,0 @@
1
- import type GroupCommand from "../../src/api/command/GroupCommand.ts";
2
- import type GlobalCommand from "../../src/api/command/GlobalCommand.ts";
3
- import type SubCommand from "../../src/api/command/SubCommand.ts";
4
- import {
5
- ArgumentValueTypeName,
6
- ComplexValueTypeName,
7
- } from "../../src/api/argument/ArgumentValueTypes.ts";
8
- import type ComplexOption from "../../src/api/argument/ComplexOption.ts";
9
- import type Positional from "../../src/api/argument/Positional.ts";
10
- import type GlobalCommandArgument from "../../src/api/argument/GlobalCommandArgument.ts";
11
- import type GlobalModifierCommand from "../../src/api/command/GlobalModifierCommand.ts";
12
- import type Option from "../../src/api/argument/Option.ts";
13
-
14
- export function getGroupCommand(
15
- name = "groupCommand",
16
- memberSubCommands = [getSubCommandWithOption("foo")],
17
- ): GroupCommand {
18
- return {
19
- name,
20
- memberSubCommands,
21
- execute: async (): Promise<void> => {},
22
- };
23
- }
24
-
25
- export function getGlobalModifierCommand(
26
- name = "globalModifierCommand",
27
- shortAlias: string | undefined = undefined,
28
- withArg = false,
29
- mandatoryArg = false,
30
- ): GlobalModifierCommand {
31
- return {
32
- name,
33
- shortAlias,
34
- executePriority: 1,
35
- argument: withArg
36
- ? {
37
- type: ArgumentValueTypeName.STRING,
38
- isOptional: !mandatoryArg,
39
- }
40
- : undefined,
41
- execute: async (): Promise<void> => {},
42
- };
43
- }
44
-
45
- export function getGlobalModifierCommandWithArgument(
46
- name: string,
47
- shortAlias: string,
48
- executePriority = 1,
49
- argument?: GlobalCommandArgument,
50
- enableConfiguration = false,
51
- ): GlobalModifierCommand {
52
- return {
53
- name,
54
- enableConfiguration,
55
- shortAlias,
56
- executePriority,
57
- argument,
58
- execute: async (): Promise<void> => {},
59
- };
60
- }
61
-
62
- export function getGlobalCommand(
63
- name = "globalCommand",
64
- withArg = false,
65
- mandatoryArg = false,
66
- enableConfiguration = false,
67
- configurationKey?: string,
68
- ): GlobalCommand {
69
- return {
70
- name,
71
- enableConfiguration,
72
- argument: withArg
73
- ? {
74
- type: ArgumentValueTypeName.STRING,
75
- isOptional: !mandatoryArg,
76
- configurationKey,
77
- }
78
- : undefined,
79
- execute: async (): Promise<void> => {},
80
- };
81
- }
82
-
83
- export function getGlobalCommandWithShortAlias(
84
- name: string,
85
- shortAlias: string,
86
- argument?: GlobalCommandArgument,
87
- ): GlobalCommand {
88
- return {
89
- name,
90
- shortAlias,
91
- argument,
92
- execute: async (): Promise<void> => {},
93
- };
94
- }
95
-
96
- export function getSubCommandWithOptionAndPositional(): SubCommand {
97
- return {
98
- name: "subCommand",
99
- options: [
100
- {
101
- name: "goo",
102
- shortAlias: "g",
103
- type: ArgumentValueTypeName.STRING,
104
- },
105
- ],
106
- positionals: [
107
- {
108
- name: "foo",
109
- type: ArgumentValueTypeName.STRING,
110
- },
111
- ],
112
- execute: async (): Promise<void> => {},
113
- };
114
- }
115
-
116
- export function getSubCommand(
117
- name: string,
118
- options: Array<Option | ComplexOption>,
119
- positionals: Array<Positional> = [],
120
- enableConfiguration = false,
121
- ): SubCommand {
122
- return {
123
- name,
124
- options,
125
- positionals,
126
- enableConfiguration,
127
- execute: async (): Promise<void> => {},
128
- };
129
- }
130
-
131
- export function getSubCommandWithOption(
132
- name = "subCommand",
133
- withArg = false,
134
- mandatoryArg = false,
135
- multiple = false,
136
- type: ArgumentValueTypeName = ArgumentValueTypeName.STRING,
137
- defaultValue?: string,
138
- enableConfiguration = false,
139
- configurationKey?: string,
140
- ): SubCommand {
141
- return {
142
- name,
143
- description: "good",
144
- enableConfiguration,
145
- options: withArg
146
- ? [
147
- {
148
- name: "foo",
149
- type,
150
- isOptional: !mandatoryArg,
151
- isArray: multiple,
152
- defaultValue,
153
- configurationKey,
154
- },
155
- ]
156
- : [],
157
- positionals: [],
158
- execute: async (): Promise<void> => {},
159
- };
160
- }
161
-
162
- export function getSubCommandWithPositional(
163
- name: string,
164
- optional = false,
165
- multiple = false,
166
- type: ArgumentValueTypeName = ArgumentValueTypeName.STRING,
167
- enableConfiguration = false,
168
- configurationKey?: string,
169
- ): SubCommand {
170
- return {
171
- name,
172
- description: "good",
173
- enableConfiguration,
174
- options: [],
175
- positionals: [
176
- {
177
- name: "foo",
178
- type,
179
- isVarargOptional: optional,
180
- isVarargMultiple: multiple,
181
- configurationKey,
182
- },
183
- ],
184
- execute: async (): Promise<void> => {},
185
- };
186
- }
187
-
188
- export function getSubCommandWithComplexOptions(
189
- enableConfiguration = false,
190
- betaIsArray = false,
191
- deltaIsArray = false,
192
- ): SubCommand {
193
- return {
194
- name: "subCommand",
195
- enableConfiguration,
196
- options: [
197
- {
198
- name: "alpha",
199
- shortAlias: "a",
200
- type: ComplexValueTypeName.COMPLEX,
201
- isArray: true,
202
- properties: [
203
- {
204
- name: "beta",
205
- shortAlias: "b",
206
- type: ComplexValueTypeName.COMPLEX,
207
- isArray: betaIsArray,
208
- properties: [
209
- {
210
- name: "gamma",
211
- shortAlias: "g",
212
- type: ArgumentValueTypeName.STRING,
213
- },
214
- {
215
- name: "delta",
216
- shortAlias: "d",
217
- type: ArgumentValueTypeName.NUMBER,
218
- isArray: true,
219
- },
220
- ],
221
- },
222
- ],
223
- },
224
- {
225
- name: "epsilon",
226
- shortAlias: "e",
227
- type: ComplexValueTypeName.COMPLEX,
228
- properties: [
229
- {
230
- name: "gamma",
231
- shortAlias: "g",
232
- type: ArgumentValueTypeName.STRING,
233
- configurationKey: "FOO_BAR_A",
234
- },
235
- {
236
- name: "delta",
237
- shortAlias: "d",
238
- type: ArgumentValueTypeName.NUMBER,
239
- configurationKey: "FOO_BAR_B",
240
- isArray: deltaIsArray,
241
- },
242
- ],
243
- },
244
- ],
245
- positionals: [],
246
- execute: async (): Promise<void> => {},
247
- };
248
- }
@@ -1,28 +0,0 @@
1
- import ConfigurationServiceProvider from "../../src/service/configuration/ConfigurationServiceProvider.ts";
2
- import type {
3
- ArgumentSingleValueType,
4
- ArgumentValues,
5
- } from "../../src/api/argument/ArgumentValueTypes.ts";
6
- import type Context from "../../src/api/Context.ts";
7
-
8
- class DummyConfigurationServiceProvider extends ConfigurationServiceProvider {
9
- constructor(
10
- servicePriority: number,
11
- defaultsData: Map<string, ArgumentValues | ArgumentSingleValueType>,
12
- ) {
13
- super(servicePriority, false, true);
14
-
15
- this.defaultsData = defaultsData;
16
- }
17
-
18
- public override initService(_context: Context): Promise<void> {
19
- return Promise.resolve();
20
- }
21
- }
22
-
23
- export function getConfigurationServiceProvider(
24
- servicePriority: number,
25
- defaultsData: Map<string, ArgumentValues | ArgumentSingleValueType>,
26
- ) {
27
- return new DummyConfigurationServiceProvider(servicePriority, defaultsData);
28
- }