@flowscripter/dynamic-cli-framework 1.4.18 → 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.
- package/README.md +3 -14
- package/cli-plugin.ts +16 -0
- package/dist/cli-plugin.d.ts +17 -0
- package/dist/cli-plugin.d.ts.map +1 -0
- package/dist/cli-plugin.js +69 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +105696 -0
- package/dist/src/api/BaseCLIFeatureOptions.d.ts +12 -0
- package/dist/src/api/BaseCLIFeatureOptions.d.ts.map +1 -0
- package/dist/src/api/CLI.d.ts +17 -0
- package/dist/src/api/CLI.d.ts.map +1 -0
- package/dist/src/api/CLIConfig.d.ts +22 -0
- package/dist/src/api/CLIConfig.d.ts.map +1 -0
- package/dist/src/api/Context.d.ts +23 -0
- package/dist/src/api/Context.d.ts.map +1 -0
- package/dist/src/api/RunResult.d.ts +128 -0
- package/dist/src/api/RunResult.d.ts.map +1 -0
- package/dist/src/api/argument/Argument.d.ts +62 -0
- package/dist/src/api/argument/Argument.d.ts.map +1 -0
- package/dist/src/api/argument/ArgumentValueTypes.d.ts +68 -0
- package/dist/src/api/argument/ArgumentValueTypes.d.ts.map +1 -0
- package/dist/src/api/argument/ComplexOption.d.ts +21 -0
- package/dist/src/api/argument/ComplexOption.d.ts.map +1 -0
- package/dist/src/api/argument/GlobalCommandArgument.d.ts +16 -0
- package/dist/src/api/argument/GlobalCommandArgument.d.ts.map +1 -0
- package/dist/src/api/argument/Option.d.ts +29 -0
- package/dist/src/api/argument/Option.d.ts.map +1 -0
- package/dist/src/api/argument/Positional.d.ts +26 -0
- package/dist/src/api/argument/Positional.d.ts.map +1 -0
- package/dist/src/api/argument/SubCommandArgument.d.ts +18 -0
- package/dist/src/api/argument/SubCommandArgument.d.ts.map +1 -0
- package/dist/src/api/command/Command.d.ts +21 -0
- package/dist/src/api/command/Command.d.ts.map +1 -0
- package/dist/src/api/command/GlobalCommand.d.ts +28 -0
- package/dist/src/api/command/GlobalCommand.d.ts.map +1 -0
- package/dist/src/api/command/GlobalModifierCommand.d.ts +12 -0
- package/dist/src/api/command/GlobalModifierCommand.d.ts.map +1 -0
- package/dist/src/api/command/GroupCommand.d.ts +19 -0
- package/dist/src/api/command/GroupCommand.d.ts.map +1 -0
- package/dist/src/api/command/SubCommand.d.ts +37 -0
- package/dist/src/api/command/SubCommand.d.ts.map +1 -0
- package/dist/src/api/command/UsageExample.d.ts +20 -0
- package/dist/src/api/command/UsageExample.d.ts.map +1 -0
- package/dist/src/api/plugin/CommandFactory.d.ts +23 -0
- package/dist/src/api/plugin/CommandFactory.d.ts.map +1 -0
- package/dist/src/api/plugin/ServiceProviderFactory.d.ts +25 -0
- package/dist/src/api/plugin/ServiceProviderFactory.d.ts.map +1 -0
- package/dist/src/api/service/ServiceProvider.d.ts +47 -0
- package/dist/src/api/service/ServiceProvider.d.ts.map +1 -0
- package/dist/src/api/service/core/ArgumentPrompterService.d.ts +6 -0
- package/dist/src/api/service/core/ArgumentPrompterService.d.ts.map +1 -0
- package/dist/src/api/service/core/AsciiBannerGeneratorService.d.ts +59 -0
- package/dist/src/api/service/core/AsciiBannerGeneratorService.d.ts.map +1 -0
- package/dist/src/api/service/core/CompletionService.d.ts +22 -0
- package/dist/src/api/service/core/CompletionService.d.ts.map +1 -0
- package/dist/src/api/service/core/DataDumpGeneratorService.d.ts +22 -0
- package/dist/src/api/service/core/DataDumpGeneratorService.d.ts.map +1 -0
- package/dist/src/api/service/core/ImagePrinterService.d.ts +21 -0
- package/dist/src/api/service/core/ImagePrinterService.d.ts.map +1 -0
- package/dist/src/api/service/core/KeyValueService.d.ts +40 -0
- package/dist/src/api/service/core/KeyValueService.d.ts.map +1 -0
- package/dist/src/api/service/core/PluginService.d.ts +55 -0
- package/dist/src/api/service/core/PluginService.d.ts.map +1 -0
- package/dist/src/api/service/core/PrettyPrinterService.d.ts +35 -0
- package/dist/src/api/service/core/PrettyPrinterService.d.ts.map +1 -0
- package/dist/src/api/service/core/PrinterService.d.ts +339 -0
- package/dist/src/api/service/core/PrinterService.d.ts.map +1 -0
- package/dist/src/api/service/core/PrompterService.d.ts +35 -0
- package/dist/src/api/service/core/PrompterService.d.ts.map +1 -0
- package/dist/src/api/service/core/SecretService.d.ts +25 -0
- package/dist/src/api/service/core/SecretService.d.ts.map +1 -0
- package/dist/src/api/service/core/ShutdownService.d.ts +24 -0
- package/dist/src/api/service/core/ShutdownService.d.ts.map +1 -0
- package/dist/src/api/service/core/SyntaxHighlighterService.d.ts +49 -0
- package/dist/src/api/service/core/SyntaxHighlighterService.d.ts.map +1 -0
- package/dist/src/api/service/core/Table.d.ts +18 -0
- package/dist/src/api/service/core/Table.d.ts.map +1 -0
- package/dist/src/api/service/core/TableGeneratorService.d.ts +31 -0
- package/dist/src/api/service/core/TableGeneratorService.d.ts.map +1 -0
- package/dist/src/api/service/core/TreePrinterService.d.ts +9 -0
- package/dist/src/api/service/core/TreePrinterService.d.ts.map +1 -0
- package/dist/src/cli/BaseCLI.d.ts +59 -0
- package/dist/src/cli/BaseCLI.d.ts.map +1 -0
- package/dist/src/cli/DefaultRuntimeCLI.d.ts +12 -0
- package/dist/src/cli/DefaultRuntimeCLI.d.ts.map +1 -0
- package/dist/src/cli/DynamicPluginRuntimeCLI.d.ts +20 -0
- package/dist/src/cli/DynamicPluginRuntimeCLI.d.ts.map +1 -0
- package/dist/src/command/CompletionCommand.d.ts +31 -0
- package/dist/src/command/CompletionCommand.d.ts.map +1 -0
- package/dist/src/command/MultiCommandCliHelpCommand.d.ts +40 -0
- package/dist/src/command/MultiCommandCliHelpCommand.d.ts.map +1 -0
- package/dist/src/command/PluginCommand.d.ts +67 -0
- package/dist/src/command/PluginCommand.d.ts.map +1 -0
- package/dist/src/command/SingleCommandCliHelpCommand.d.ts +31 -0
- package/dist/src/command/SingleCommandCliHelpCommand.d.ts.map +1 -0
- package/dist/src/command/UsageCommand.d.ts +14 -0
- package/dist/src/command/UsageCommand.d.ts.map +1 -0
- package/dist/src/command/VersionCommand.d.ts +12 -0
- package/dist/src/command/VersionCommand.d.ts.map +1 -0
- package/dist/src/launcher.d.ts +10 -0
- package/dist/src/launcher.d.ts.map +1 -0
- package/dist/src/runtime/DefaultContext.d.ts +14 -0
- package/dist/src/runtime/DefaultContext.d.ts.map +1 -0
- package/dist/src/runtime/argument/ArgumentTypeGuards.d.ts +4 -0
- package/dist/src/runtime/argument/ArgumentTypeGuards.d.ts.map +1 -0
- package/dist/src/runtime/command/CommandTypeGuards.d.ts +10 -0
- package/dist/src/runtime/command/CommandTypeGuards.d.ts.map +1 -0
- package/dist/src/runtime/command/CommandValidator.d.ts +15 -0
- package/dist/src/runtime/command/CommandValidator.d.ts.map +1 -0
- package/dist/src/runtime/parser.d.ts +48 -0
- package/dist/src/runtime/parser.d.ts.map +1 -0
- package/dist/src/runtime/registry/CommandRegistry.d.ts +89 -0
- package/dist/src/runtime/registry/CommandRegistry.d.ts.map +1 -0
- package/dist/src/runtime/registry/DefaultCommandRegistry.d.ts +51 -0
- package/dist/src/runtime/registry/DefaultCommandRegistry.d.ts.map +1 -0
- package/dist/src/runtime/registry/DefaultServiceProviderRegistry.d.ts +12 -0
- package/dist/src/runtime/registry/DefaultServiceProviderRegistry.d.ts.map +1 -0
- package/dist/src/runtime/registry/ServiceProviderRegistry.d.ts +11 -0
- package/dist/src/runtime/registry/ServiceProviderRegistry.d.ts.map +1 -0
- package/dist/src/runtime/runner.d.ts +76 -0
- package/dist/src/runtime/runner.d.ts.map +1 -0
- package/dist/src/runtime/scanner.d.ts +69 -0
- package/dist/src/runtime/scanner.d.ts.map +1 -0
- package/dist/src/runtime/values/ValuePopulationResult.d.ts +34 -0
- package/dist/src/runtime/values/ValuePopulationResult.d.ts.map +1 -0
- package/dist/src/runtime/values/argumentValueMerge.d.ts +13 -0
- package/dist/src/runtime/values/argumentValueMerge.d.ts.map +1 -0
- package/dist/src/runtime/values/argumentValueValidation.d.ts +33 -0
- package/dist/src/runtime/values/argumentValueValidation.d.ts.map +1 -0
- package/dist/src/runtime/values/globalCommandValuePopulation.d.ts +12 -0
- package/dist/src/runtime/values/globalCommandValuePopulation.d.ts.map +1 -0
- package/dist/src/runtime/values/subCommandValuePopulation.d.ts +12 -0
- package/dist/src/runtime/values/subCommandValuePopulation.d.ts.map +1 -0
- package/dist/src/service/argumentPrompter/ArgumentPrompterServiceProvider.d.ts +13 -0
- package/dist/src/service/argumentPrompter/ArgumentPrompterServiceProvider.d.ts.map +1 -0
- package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.d.ts +9 -0
- package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.d.ts.map +1 -0
- package/dist/src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.d.ts +20 -0
- package/dist/src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.d.ts.map +1 -0
- package/dist/src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.d.ts +12 -0
- package/dist/src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.d.ts.map +1 -0
- package/dist/src/service/banner/BannerServiceProvider.d.ts +29 -0
- package/dist/src/service/banner/BannerServiceProvider.d.ts.map +1 -0
- package/dist/src/service/banner/command/NoBannerCommand.d.ts +19 -0
- package/dist/src/service/banner/command/NoBannerCommand.d.ts.map +1 -0
- package/dist/src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.d.ts +22 -0
- package/dist/src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.d.ts.map +1 -0
- package/dist/src/service/completion/CompletionServiceProvider.d.ts +14 -0
- package/dist/src/service/completion/CompletionServiceProvider.d.ts.map +1 -0
- package/dist/src/service/completion/DefaultCompletionService.d.ts +17 -0
- package/dist/src/service/completion/DefaultCompletionService.d.ts.map +1 -0
- package/dist/src/service/completion/shell/ShellHandler.d.ts +13 -0
- package/dist/src/service/completion/shell/ShellHandler.d.ts.map +1 -0
- package/dist/src/service/completion/shell/bash.d.ts +11 -0
- package/dist/src/service/completion/shell/bash.d.ts.map +1 -0
- package/dist/src/service/completion/shell/fish.d.ts +11 -0
- package/dist/src/service/completion/shell/fish.d.ts.map +1 -0
- package/dist/src/service/completion/shell/powershell.d.ts +11 -0
- package/dist/src/service/completion/shell/powershell.d.ts.map +1 -0
- package/dist/src/service/completion/shell/zsh.d.ts +11 -0
- package/dist/src/service/completion/shell/zsh.d.ts.map +1 -0
- package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts +196 -0
- package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts.map +1 -0
- package/dist/src/service/configuration/DefaultKeyValueService.d.ts +14 -0
- package/dist/src/service/configuration/DefaultKeyValueService.d.ts.map +1 -0
- package/dist/src/service/configuration/DefaultSecretService.d.ts +27 -0
- package/dist/src/service/configuration/DefaultSecretService.d.ts.map +1 -0
- package/dist/src/service/configuration/command/ConfigCommand.d.ts +19 -0
- package/dist/src/service/configuration/command/ConfigCommand.d.ts.map +1 -0
- package/dist/src/service/configuration/command/DumpConfigCommand.d.ts +14 -0
- package/dist/src/service/configuration/command/DumpConfigCommand.d.ts.map +1 -0
- package/dist/src/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.d.ts +12 -0
- package/dist/src/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.d.ts.map +1 -0
- package/dist/src/service/dataDumpGenerator/DefaultDataDumpGeneratorService.d.ts +10 -0
- package/dist/src/service/dataDumpGenerator/DefaultDataDumpGeneratorService.d.ts.map +1 -0
- package/dist/src/service/imagePrinter/DefaultImagePrinterService.d.ts +8 -0
- package/dist/src/service/imagePrinter/DefaultImagePrinterService.d.ts.map +1 -0
- package/dist/src/service/imagePrinter/ImagePrinterServiceProvider.d.ts +13 -0
- package/dist/src/service/imagePrinter/ImagePrinterServiceProvider.d.ts.map +1 -0
- package/dist/src/service/plugin/DefaultPluginService.d.ts +15 -0
- package/dist/src/service/plugin/DefaultPluginService.d.ts.map +1 -0
- package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts +13 -0
- package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts.map +1 -0
- package/dist/src/service/prettyPrinter/DefaultPrettyPrinterService.d.ts +13 -0
- package/dist/src/service/prettyPrinter/DefaultPrettyPrinterService.d.ts.map +1 -0
- package/dist/src/service/prettyPrinter/PrettyPrinterServiceProvider.d.ts +20 -0
- package/dist/src/service/prettyPrinter/PrettyPrinterServiceProvider.d.ts.map +1 -0
- package/dist/src/service/printer/DefaultPrinterService.d.ts +61 -0
- package/dist/src/service/printer/DefaultPrinterService.d.ts.map +1 -0
- package/dist/src/service/printer/PrinterServiceProvider.d.ts +22 -0
- package/dist/src/service/printer/PrinterServiceProvider.d.ts.map +1 -0
- package/dist/src/service/printer/command/DarkModeCommand.d.ts +19 -0
- package/dist/src/service/printer/command/DarkModeCommand.d.ts.map +1 -0
- package/dist/src/service/printer/command/LogLevelCommand.d.ts +19 -0
- package/dist/src/service/printer/command/LogLevelCommand.d.ts.map +1 -0
- package/dist/src/service/printer/command/NoColorCommand.d.ts +19 -0
- package/dist/src/service/printer/command/NoColorCommand.d.ts.map +1 -0
- package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts +16 -0
- package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts.map +1 -0
- package/dist/src/service/printer/terminal/Color.d.ts +15 -0
- package/dist/src/service/printer/terminal/Color.d.ts.map +1 -0
- package/dist/src/service/printer/terminal/Progress.d.ts +20 -0
- package/dist/src/service/printer/terminal/Progress.d.ts.map +1 -0
- package/dist/src/service/printer/terminal/Spinner.d.ts +16 -0
- package/dist/src/service/printer/terminal/Spinner.d.ts.map +1 -0
- package/dist/src/service/printer/terminal/Theme.d.ts +3 -0
- package/dist/src/service/printer/terminal/Theme.d.ts.map +1 -0
- package/dist/src/service/prompter/DefaultPrompterService.d.ts +21 -0
- package/dist/src/service/prompter/DefaultPrompterService.d.ts.map +1 -0
- package/dist/src/service/prompter/PrompterServiceProvider.d.ts +13 -0
- package/dist/src/service/prompter/PrompterServiceProvider.d.ts.map +1 -0
- package/dist/src/service/prompter/command/NoPromptCommand.d.ts +16 -0
- package/dist/src/service/prompter/command/NoPromptCommand.d.ts.map +1 -0
- package/dist/src/service/prompter/prompt/PromptContext.d.ts +15 -0
- package/dist/src/service/prompter/prompt/PromptContext.d.ts.map +1 -0
- package/dist/src/service/prompter/prompt/promptAcknowledge.d.ts +4 -0
- package/dist/src/service/prompter/prompt/promptAcknowledge.d.ts.map +1 -0
- package/dist/src/service/prompter/prompt/promptMultiSelect.d.ts +4 -0
- package/dist/src/service/prompter/prompt/promptMultiSelect.d.ts.map +1 -0
- package/dist/src/service/prompter/prompt/promptOpenUrl.d.ts +4 -0
- package/dist/src/service/prompter/prompt/promptOpenUrl.d.ts.map +1 -0
- package/dist/src/service/prompter/prompt/promptSingleSelect.d.ts +4 -0
- package/dist/src/service/prompter/prompt/promptSingleSelect.d.ts.map +1 -0
- package/dist/src/service/prompter/prompt/promptText.d.ts +4 -0
- package/dist/src/service/prompter/prompt/promptText.d.ts.map +1 -0
- package/dist/src/service/prompter/prompt/promptToggle.d.ts +4 -0
- package/dist/src/service/prompter/prompt/promptToggle.d.ts.map +1 -0
- package/dist/src/service/shutdown/DefaultShutdownService.d.ts +9 -0
- package/dist/src/service/shutdown/DefaultShutdownService.d.ts.map +1 -0
- package/dist/src/service/shutdown/ShutdownServiceProvider.d.ts +15 -0
- package/dist/src/service/shutdown/ShutdownServiceProvider.d.ts.map +1 -0
- package/dist/src/service/shutdown/ShutdownState.d.ts +6 -0
- package/dist/src/service/shutdown/ShutdownState.d.ts.map +1 -0
- package/dist/src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.d.ts +17 -0
- package/dist/src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.d.ts.map +1 -0
- package/dist/src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.d.ts +20 -0
- package/dist/src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.d.ts.map +1 -0
- package/dist/src/service/tableGenerator/DefaultTableGeneratorService.d.ts +10 -0
- package/dist/src/service/tableGenerator/DefaultTableGeneratorService.d.ts.map +1 -0
- package/dist/src/service/tableGenerator/TableGeneratorServiceProvider.d.ts +12 -0
- package/dist/src/service/tableGenerator/TableGeneratorServiceProvider.d.ts.map +1 -0
- package/dist/src/service/treePrinter/DefaultTreePrinterService.d.ts +10 -0
- package/dist/src/service/treePrinter/DefaultTreePrinterService.d.ts.map +1 -0
- package/dist/src/service/treePrinter/TreePrinterServiceProvider.d.ts +12 -0
- package/dist/src/service/treePrinter/TreePrinterServiceProvider.d.ts.map +1 -0
- package/dist/src/terminal/Ansi.d.ts +14 -0
- package/dist/src/terminal/Ansi.d.ts.map +1 -0
- package/dist/src/terminal/ImageRenderer.d.ts +7 -0
- package/dist/src/terminal/ImageRenderer.d.ts.map +1 -0
- package/dist/src/terminal/KeyReader.d.ts +22 -0
- package/dist/src/terminal/KeyReader.d.ts.map +1 -0
- package/dist/src/terminal/PngDecoder.d.ts +6 -0
- package/dist/src/terminal/PngDecoder.d.ts.map +1 -0
- package/dist/src/terminal/Styler.d.ts +9 -0
- package/dist/src/terminal/Styler.d.ts.map +1 -0
- package/dist/src/terminal/Terminal.d.ts +10 -0
- package/dist/src/terminal/Terminal.d.ts.map +1 -0
- package/dist/src/terminal/TtyKeyReader.d.ts +11 -0
- package/dist/src/terminal/TtyKeyReader.d.ts.map +1 -0
- package/dist/src/terminal/TtyStyler.d.ts +19 -0
- package/dist/src/terminal/TtyStyler.d.ts.map +1 -0
- package/dist/src/terminal/TtyTerminal.d.ts +14 -0
- package/dist/src/terminal/TtyTerminal.d.ts.map +1 -0
- package/dist/src/terminal/supportsHyperlinks.d.ts +3 -0
- package/dist/src/terminal/supportsHyperlinks.d.ts.map +1 -0
- package/dist/src/util/configHelper.d.ts +22 -0
- package/dist/src/util/configHelper.d.ts.map +1 -0
- package/dist/src/util/envVarHelper.d.ts +21 -0
- package/dist/src/util/envVarHelper.d.ts.map +1 -0
- package/dist/src/util/helpHelper.d.ts +26 -0
- package/dist/src/util/helpHelper.d.ts.map +1 -0
- package/dist/src/util/logger.d.ts +18 -0
- package/dist/src/util/logger.d.ts.map +1 -0
- package/dist/src/util/runnerHelper.d.ts +9 -0
- package/dist/src/util/runnerHelper.d.ts.map +1 -0
- package/dist/tests/cli/BaseCLI.test.d.ts +2 -0
- package/dist/tests/cli/BaseCLI.test.d.ts.map +1 -0
- package/dist/tests/cli/DynamicPluginRuntimeCLI.test.d.ts +2 -0
- package/dist/tests/cli/DynamicPluginRuntimeCLI.test.d.ts.map +1 -0
- package/dist/tests/command/CompletionCommand.test.d.ts +2 -0
- package/dist/tests/command/CompletionCommand.test.d.ts.map +1 -0
- package/dist/tests/command/MultiCommandCliHelpCommand.test.d.ts +2 -0
- package/dist/tests/command/MultiCommandCliHelpCommand.test.d.ts.map +1 -0
- package/dist/tests/command/SingleCommandCliHelpCommand.test.d.ts +2 -0
- package/dist/tests/command/SingleCommandCliHelpCommand.test.d.ts.map +1 -0
- package/dist/tests/command/UsageCommand.test.d.ts +2 -0
- package/dist/tests/command/UsageCommand.test.d.ts.map +1 -0
- package/dist/tests/command/VersionCommand.test.d.ts +2 -0
- package/dist/tests/command/VersionCommand.test.d.ts.map +1 -0
- package/dist/tests/fixtures/CLIConfig.d.ts +3 -0
- package/dist/tests/fixtures/CLIConfig.d.ts.map +1 -0
- package/dist/tests/fixtures/Command.d.ts +20 -0
- package/dist/tests/fixtures/Command.d.ts.map +1 -0
- package/{tests/fixtures/CommandRegistry.ts → dist/tests/fixtures/CommandRegistry.d.ts} +2 -4
- package/dist/tests/fixtures/CommandRegistry.d.ts.map +1 -0
- package/dist/tests/fixtures/ConfigurationServiceProvider.d.ts +10 -0
- package/dist/tests/fixtures/ConfigurationServiceProvider.d.ts.map +1 -0
- package/dist/tests/fixtures/Context.d.ts +4 -0
- package/dist/tests/fixtures/Context.d.ts.map +1 -0
- package/dist/tests/fixtures/ServiceProviderRegistry.d.ts +4 -0
- package/dist/tests/fixtures/ServiceProviderRegistry.d.ts.map +1 -0
- package/dist/tests/fixtures/StreamString.d.ts +10 -0
- package/dist/tests/fixtures/StreamString.d.ts.map +1 -0
- package/dist/tests/fixtures/prettierPluginFoo.d.ts +4 -0
- package/dist/tests/fixtures/prettierPluginFoo.d.ts.map +1 -0
- package/dist/tests/fixtures/util.d.ts +8 -0
- package/dist/tests/fixtures/util.d.ts.map +1 -0
- package/dist/tests/runtime/DefaultContext.test.d.ts +2 -0
- package/dist/tests/runtime/DefaultContext.test.d.ts.map +1 -0
- package/dist/tests/runtime/argument/ArgumentTypeGuards.test.d.ts +2 -0
- package/dist/tests/runtime/argument/ArgumentTypeGuards.test.d.ts.map +1 -0
- package/dist/tests/runtime/command/CommandTypeGuards.test.d.ts +2 -0
- package/dist/tests/runtime/command/CommandTypeGuards.test.d.ts.map +1 -0
- package/dist/tests/runtime/command/CommandValidator.test.d.ts +2 -0
- package/dist/tests/runtime/command/CommandValidator.test.d.ts.map +1 -0
- package/dist/tests/runtime/parser.test.d.ts +2 -0
- package/dist/tests/runtime/parser.test.d.ts.map +1 -0
- package/dist/tests/runtime/registry/DefaultCommandRegistry.test.d.ts +2 -0
- package/dist/tests/runtime/registry/DefaultCommandRegistry.test.d.ts.map +1 -0
- package/dist/tests/runtime/registry/DefaultServiceProviderRegistry.test.d.ts +2 -0
- package/dist/tests/runtime/registry/DefaultServiceProviderRegistry.test.d.ts.map +1 -0
- package/dist/tests/runtime/runner.test.d.ts +2 -0
- package/dist/tests/runtime/runner.test.d.ts.map +1 -0
- package/dist/tests/runtime/scanner.test.d.ts +2 -0
- package/dist/tests/runtime/scanner.test.d.ts.map +1 -0
- package/dist/tests/runtime/values/argumentValueMerge.test.d.ts +2 -0
- package/dist/tests/runtime/values/argumentValueMerge.test.d.ts.map +1 -0
- package/dist/tests/runtime/values/argumentValueValidation.test.d.ts +2 -0
- package/dist/tests/runtime/values/argumentValueValidation.test.d.ts.map +1 -0
- package/dist/tests/runtime/values/globalCommandValuePopulation.test.d.ts +2 -0
- package/dist/tests/runtime/values/globalCommandValuePopulation.test.d.ts.map +1 -0
- package/dist/tests/runtime/values/subCommandValuePopulation.test.d.ts +2 -0
- package/dist/tests/runtime/values/subCommandValuePopulation.test.d.ts.map +1 -0
- package/dist/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.d.ts +2 -0
- package/dist/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.d.ts.map +1 -0
- package/dist/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.d.ts +2 -0
- package/dist/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.d.ts.map +1 -0
- package/dist/tests/service/banner/BannerServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/banner/BannerServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/banner/command/NoBannerCommand.test.d.ts +2 -0
- package/dist/tests/service/banner/command/NoBannerCommand.test.d.ts.map +1 -0
- package/dist/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.d.ts +2 -0
- package/dist/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.d.ts.map +1 -0
- package/dist/tests/service/completion/CompletionServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/completion/CompletionServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/completion/DefaultCompletionService.test.d.ts +2 -0
- package/dist/tests/service/completion/DefaultCompletionService.test.d.ts.map +1 -0
- package/dist/tests/service/completion/shell/bash.test.d.ts +2 -0
- package/dist/tests/service/completion/shell/bash.test.d.ts.map +1 -0
- package/dist/tests/service/completion/shell/fish.test.d.ts +2 -0
- package/dist/tests/service/completion/shell/fish.test.d.ts.map +1 -0
- package/dist/tests/service/completion/shell/powershell.test.d.ts +2 -0
- package/dist/tests/service/completion/shell/powershell.test.d.ts.map +1 -0
- package/dist/tests/service/completion/shell/zsh.test.d.ts +2 -0
- package/dist/tests/service/completion/shell/zsh.test.d.ts.map +1 -0
- package/dist/tests/service/configuration/ConfigurationServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/configuration/ConfigurationServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/configuration/DefaultKeyValueService.test.d.ts +2 -0
- package/dist/tests/service/configuration/DefaultKeyValueService.test.d.ts.map +1 -0
- package/dist/tests/service/configuration/DefaultSecretService.test.d.ts +2 -0
- package/dist/tests/service/configuration/DefaultSecretService.test.d.ts.map +1 -0
- package/dist/tests/service/configuration/command/ConfigCommand.test.d.ts +2 -0
- package/dist/tests/service/configuration/command/ConfigCommand.test.d.ts.map +1 -0
- package/dist/tests/service/configuration/command/DumpConfigCommand.test.d.ts +2 -0
- package/dist/tests/service/configuration/command/DumpConfigCommand.test.d.ts.map +1 -0
- package/dist/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.d.ts +2 -0
- package/dist/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.d.ts.map +1 -0
- package/dist/tests/service/imagePrinter/DefaultImagePrinterService.test.d.ts +2 -0
- package/dist/tests/service/imagePrinter/DefaultImagePrinterService.test.d.ts.map +1 -0
- package/dist/tests/service/imagePrinter/ImagePrinterServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/imagePrinter/ImagePrinterServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/plugin/DefaultPluginServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/plugin/DefaultPluginServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.d.ts +2 -0
- package/dist/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.d.ts.map +1 -0
- package/dist/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/printer/DefaultPrinterService.test.d.ts +2 -0
- package/dist/tests/service/printer/DefaultPrinterService.test.d.ts.map +1 -0
- package/dist/tests/service/printer/PrinterServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/printer/PrinterServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/printer/command/DarkModeCommand.test.d.ts +2 -0
- package/dist/tests/service/printer/command/DarkModeCommand.test.d.ts.map +1 -0
- package/dist/tests/service/printer/command/LogLevelCommand.test.d.ts +2 -0
- package/dist/tests/service/printer/command/LogLevelCommand.test.d.ts.map +1 -0
- package/dist/tests/service/printer/command/NoColorCommand.test.d.ts +2 -0
- package/dist/tests/service/printer/command/NoColorCommand.test.d.ts.map +1 -0
- package/dist/tests/service/printer/command/NoHyperlinksCommand.test.d.ts +2 -0
- package/dist/tests/service/printer/command/NoHyperlinksCommand.test.d.ts.map +1 -0
- package/dist/tests/service/printer/terminal/Progress.test.d.ts +2 -0
- package/dist/tests/service/printer/terminal/Progress.test.d.ts.map +1 -0
- package/dist/tests/service/printer/terminal/Spinner.test.d.ts +2 -0
- package/dist/tests/service/printer/terminal/Spinner.test.d.ts.map +1 -0
- package/dist/tests/service/prompter/DefaultPrompterService.test.d.ts +2 -0
- package/dist/tests/service/prompter/DefaultPrompterService.test.d.ts.map +1 -0
- package/dist/tests/service/prompter/PrompterServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/prompter/PrompterServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/prompter/command/NoPromptCommand.test.d.ts +2 -0
- package/dist/tests/service/prompter/command/NoPromptCommand.test.d.ts.map +1 -0
- package/dist/tests/service/prompter/prompt/PromptContext.test.d.ts +2 -0
- package/dist/tests/service/prompter/prompt/PromptContext.test.d.ts.map +1 -0
- package/dist/tests/service/shutdown/ShutdownServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/shutdown/ShutdownServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.d.ts +2 -0
- package/dist/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.d.ts.map +1 -0
- package/dist/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/tableGenerator/DefaultTableGeneratorService.test.d.ts +2 -0
- package/dist/tests/service/tableGenerator/DefaultTableGeneratorService.test.d.ts.map +1 -0
- package/dist/tests/service/tableGenerator/TableGeneratorServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/tableGenerator/TableGeneratorServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/service/treePrinter/DefaultTreePrinterService.test.d.ts +2 -0
- package/dist/tests/service/treePrinter/DefaultTreePrinterService.test.d.ts.map +1 -0
- package/dist/tests/service/treePrinter/TreePrinterServiceProvider.test.d.ts +2 -0
- package/dist/tests/service/treePrinter/TreePrinterServiceProvider.test.d.ts.map +1 -0
- package/dist/tests/terminal/ImageRenderer.test.d.ts +2 -0
- package/dist/tests/terminal/ImageRenderer.test.d.ts.map +1 -0
- package/dist/tests/terminal/PngDecoder.test.d.ts +2 -0
- package/dist/tests/terminal/PngDecoder.test.d.ts.map +1 -0
- package/dist/tests/terminal/supportsHyperlinks.test.d.ts +2 -0
- package/dist/tests/terminal/supportsHyperlinks.test.d.ts.map +1 -0
- package/dist/tests/util/configHelper.test.d.ts +2 -0
- package/dist/tests/util/configHelper.test.d.ts.map +1 -0
- package/dist/tests/util/envVarHelper.test.d.ts +2 -0
- package/dist/tests/util/envVarHelper.test.d.ts.map +1 -0
- package/dist/tests/util/logger.test.d.ts +2 -0
- package/dist/tests/util/logger.test.d.ts.map +1 -0
- package/index.ts +15 -1
- package/package.json +28 -2
- package/src/api/plugin/CommandFactory.ts +25 -0
- package/src/api/plugin/ServiceProviderFactory.ts +27 -0
- package/src/api/service/core/PluginService.ts +63 -0
- package/src/cli/DynamicPluginRuntimeCLI.ts +77 -0
- package/src/command/PluginCommand.ts +184 -0
- package/src/launcher.ts +35 -0
- package/src/service/plugin/DefaultPluginService.ts +37 -0
- package/src/service/plugin/DefaultPluginServiceProvider.ts +29 -0
- package/.github/workflows/check-bun-dependencies.yml +0 -12
- package/.github/workflows/lint-pr-message.yml +0 -13
- package/.github/workflows/release-bun-library.yml +0 -15
- package/.github/workflows/validate-bun-library-pr.yml +0 -10
- package/README/core-commands.md +0 -40
- package/README/core-service-providers.md +0 -198
- package/README/development.md +0 -57
- package/README/implementation-details.md +0 -474
- package/README/key-concepts.md +0 -751
- package/bun.lock +0 -156
- package/tests/cli/BaseCLI.test.ts +0 -283
- package/tests/command/CompletionCommand.test.ts +0 -63
- package/tests/command/MultiCommandCliHelpCommand.test.ts +0 -496
- package/tests/command/SingleCommandCliHelpCommand.test.ts +0 -302
- package/tests/command/UsageCommand.test.ts +0 -48
- package/tests/command/VersionCommand.test.ts +0 -37
- package/tests/fixtures/CLIConfig.ts +0 -9
- package/tests/fixtures/Command.ts +0 -248
- package/tests/fixtures/ConfigurationServiceProvider.ts +0 -28
- package/tests/fixtures/Context.ts +0 -32
- package/tests/fixtures/ServiceProviderRegistry.ts +0 -16
- package/tests/fixtures/StreamString.ts +0 -37
- package/tests/fixtures/prettierPluginFoo.ts +0 -31
- package/tests/fixtures/util.ts +0 -35
- package/tests/runtime/DefaultContext.test.ts +0 -20
- package/tests/runtime/argument/ArgumentTypeGuards.test.ts +0 -47
- package/tests/runtime/command/CommandTypeGuards.test.ts +0 -43
- package/tests/runtime/command/CommandValidator.test.ts +0 -1196
- package/tests/runtime/parser.test.ts +0 -744
- package/tests/runtime/registry/DefaultCommandRegistry.test.ts +0 -144
- package/tests/runtime/registry/DefaultServiceProviderRegistry.test.ts +0 -36
- package/tests/runtime/runner.test.ts +0 -1284
- package/tests/runtime/scanner.test.ts +0 -915
- package/tests/runtime/values/argumentValueMerge.test.ts +0 -366
- package/tests/runtime/values/argumentValueValidation.test.ts +0 -1090
- package/tests/runtime/values/globalCommandValuePopulation.test.ts +0 -480
- package/tests/runtime/values/subCommandValuePopulation.test.ts +0 -2430
- package/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.ts +0 -38
- package/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.ts +0 -745
- package/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.ts +0 -17
- package/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.ts +0 -208
- package/tests/service/asciiBannerGenerator/__snapshots__/DefaultAsciiBannerGeneratorService.test.ts.snap +0 -20
- package/tests/service/asciiBannerGenerator/small.flf.json +0 -3
- package/tests/service/banner/BannerServiceProvider.test.ts +0 -87
- package/tests/service/banner/__snapshots__/BannerServiceProvider.test.ts.snap +0 -16
- package/tests/service/banner/command/NoBannerCommand.test.ts +0 -18
- package/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.ts +0 -52
- package/tests/service/completion/CompletionServiceProvider.test.ts +0 -335
- package/tests/service/completion/DefaultCompletionService.test.ts +0 -216
- package/tests/service/completion/shell/bash.test.ts +0 -73
- package/tests/service/completion/shell/fish.test.ts +0 -60
- package/tests/service/completion/shell/powershell.test.ts +0 -59
- package/tests/service/completion/shell/zsh.test.ts +0 -60
- package/tests/service/configuration/ConfigurationServiceProvider.test.ts +0 -212
- package/tests/service/configuration/DefaultKeyValueService.test.ts +0 -155
- package/tests/service/configuration/DefaultSecretService.test.ts +0 -140
- package/tests/service/configuration/command/ConfigCommand.test.ts +0 -29
- package/tests/service/configuration/command/DumpConfigCommand.test.ts +0 -51
- package/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.ts +0 -51
- package/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.ts +0 -208
- package/tests/service/imagePrinter/DefaultImagePrinterService.test.ts +0 -31
- package/tests/service/imagePrinter/ImagePrinterServiceProvider.test.ts +0 -17
- package/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.ts +0 -46
- package/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.ts +0 -37
- package/tests/service/printer/DefaultPrinterService.test.ts +0 -530
- package/tests/service/printer/PrinterServiceProvider.test.ts +0 -34
- package/tests/service/printer/command/DarkModeCommand.test.ts +0 -75
- package/tests/service/printer/command/LogLevelCommand.test.ts +0 -47
- package/tests/service/printer/command/NoColorCommand.test.ts +0 -75
- package/tests/service/printer/command/NoHyperlinksCommand.test.ts +0 -75
- package/tests/service/printer/terminal/Progress.test.ts +0 -98
- package/tests/service/printer/terminal/Spinner.test.ts +0 -92
- package/tests/service/prompter/DefaultPrompterService.test.ts +0 -598
- package/tests/service/prompter/PrompterServiceProvider.test.ts +0 -41
- package/tests/service/prompter/command/NoPromptCommand.test.ts +0 -58
- package/tests/service/prompter/prompt/PromptContext.test.ts +0 -61
- package/tests/service/shutdown/ShutdownServiceProvider.test.ts +0 -13
- package/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.ts +0 -101
- package/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.ts +0 -37
- package/tests/service/tableGenerator/DefaultTableGeneratorService.test.ts +0 -342
- package/tests/service/tableGenerator/TableGeneratorServiceProvider.test.ts +0 -47
- package/tests/service/treePrinter/DefaultTreePrinterService.test.ts +0 -142
- package/tests/service/treePrinter/TreePrinterServiceProvider.test.ts +0 -51
- package/tests/terminal/ImageRenderer.test.ts +0 -152
- package/tests/terminal/PngDecoder.test.ts +0 -219
- package/tests/terminal/supportsHyperlinks.test.ts +0 -149
- package/tests/util/configHelper.test.ts +0 -193
- package/tests/util/envVarHelper.test.ts +0 -254
- package/tests/util/logger.test.ts +0 -56
- package/tsconfig.json +0 -32
|
@@ -1,496 +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
|
-
} from "../fixtures/Command.ts";
|
|
8
|
-
import { expectStringIncludes, expectStringNotIncludes } from "../fixtures/util.ts";
|
|
9
|
-
import { getContext } from "../fixtures/Context.ts";
|
|
10
|
-
import {
|
|
11
|
-
MultiCommandCliHelpGlobalCommand,
|
|
12
|
-
MultiCommandCliHelpSubCommand,
|
|
13
|
-
} from "../../src/command/MultiCommandCliHelpCommand.ts";
|
|
14
|
-
import type SubCommand from "../../src/api/command/SubCommand.ts";
|
|
15
|
-
import type GroupCommand from "../../src/api/command/GroupCommand.ts";
|
|
16
|
-
import { ArgumentValueTypeName } from "../../src/api/argument/ArgumentValueTypes.ts";
|
|
17
|
-
import StreamString from "../fixtures/StreamString.ts";
|
|
18
|
-
|
|
19
|
-
describe("MultiCommandCliHelpCommand tests", () => {
|
|
20
|
-
test("MultiCommandCliHelpGlobalCommand works", async () => {
|
|
21
|
-
const streamString = new StreamString();
|
|
22
|
-
const context = getContext(streamString);
|
|
23
|
-
const commandRegistry = getCommandRegistry();
|
|
24
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
25
|
-
|
|
26
|
-
commandRegistry.addCommand(help);
|
|
27
|
-
|
|
28
|
-
await help.execute(context);
|
|
29
|
-
expectStringIncludes(streamString.getString(), "Usage");
|
|
30
|
-
expectStringIncludes(streamString.getString(), "foo <command>");
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test("MultiCommandCliHelpSubCommand works", async () => {
|
|
34
|
-
const streamString = new StreamString();
|
|
35
|
-
const context = getContext(streamString);
|
|
36
|
-
const commandRegistry = getCommandRegistry();
|
|
37
|
-
const help = new MultiCommandCliHelpSubCommand(true, commandRegistry);
|
|
38
|
-
|
|
39
|
-
commandRegistry.addCommand(help);
|
|
40
|
-
|
|
41
|
-
await help.execute(context, {});
|
|
42
|
-
expectStringIncludes(streamString.getString(), "Usage");
|
|
43
|
-
expectStringIncludes(streamString.getString(), "foo <command>");
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
test("MultiCommandCliHelpGlobalCommand with command specified works", async () => {
|
|
47
|
-
const streamString = new StreamString();
|
|
48
|
-
const context = getContext(streamString);
|
|
49
|
-
const subCommand = getSubCommandWithOption("command_a");
|
|
50
|
-
const commandRegistry = getCommandRegistry([subCommand]);
|
|
51
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
52
|
-
|
|
53
|
-
commandRegistry.addCommand(help);
|
|
54
|
-
|
|
55
|
-
await help.execute(context, "command_a");
|
|
56
|
-
expectStringIncludes(streamString.getString(), "Usage");
|
|
57
|
-
expectStringIncludes(streamString.getString(), subCommand.description!);
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
test("MultiCommandCliHelpSubCommand with command specified works", async () => {
|
|
61
|
-
const streamString = new StreamString();
|
|
62
|
-
const context = getContext(streamString);
|
|
63
|
-
const subCommand = getSubCommandWithOption("command_a");
|
|
64
|
-
const commandRegistry = getCommandRegistry([subCommand]);
|
|
65
|
-
const help = new MultiCommandCliHelpSubCommand(true, commandRegistry);
|
|
66
|
-
|
|
67
|
-
commandRegistry.addCommand(help);
|
|
68
|
-
|
|
69
|
-
await help.execute(context, { command: "command_a" });
|
|
70
|
-
expectStringIncludes(streamString.getString(), "Usage");
|
|
71
|
-
expectStringIncludes(streamString.getString(), subCommand.description!);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
test("MultiCommandCliHelpGlobalCommand with unknown command specified error warning and generic help", async () => {
|
|
75
|
-
const streamString = new StreamString();
|
|
76
|
-
const context = getContext(streamString);
|
|
77
|
-
const commandRegistry = getCommandRegistry();
|
|
78
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
79
|
-
|
|
80
|
-
commandRegistry.addCommand(help);
|
|
81
|
-
|
|
82
|
-
await help.execute(context, "hello");
|
|
83
|
-
expectStringIncludes(streamString.getString(), "Unknown command: hello");
|
|
84
|
-
expectStringIncludes(streamString.getString(), "Usage");
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
test("MultiCommandCliHelpSubCommand with unknown command specified displays error and generic help", async () => {
|
|
88
|
-
const streamString = new StreamString();
|
|
89
|
-
const context = getContext(streamString);
|
|
90
|
-
const commandRegistry = getCommandRegistry();
|
|
91
|
-
const help = new MultiCommandCliHelpSubCommand(true, commandRegistry);
|
|
92
|
-
|
|
93
|
-
commandRegistry.addCommand(help);
|
|
94
|
-
|
|
95
|
-
await help.execute(context, { command: "hello" });
|
|
96
|
-
expectStringIncludes(streamString.getString(), "Unknown command: hello");
|
|
97
|
-
expectStringIncludes(streamString.getString(), "Usage");
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test("MultiCommandCliHelpSubCommand with mistyped command specified proposes matches", async () => {
|
|
101
|
-
const streamString = new StreamString();
|
|
102
|
-
const context = getContext(streamString);
|
|
103
|
-
const commandRegistry = getCommandRegistry([
|
|
104
|
-
getSubCommandWithOption("other1"),
|
|
105
|
-
getSubCommandWithOption("command_a"),
|
|
106
|
-
getSubCommandWithOption("other2"),
|
|
107
|
-
]);
|
|
108
|
-
const help = new MultiCommandCliHelpSubCommand(true, commandRegistry);
|
|
109
|
-
|
|
110
|
-
commandRegistry.addCommand(help);
|
|
111
|
-
|
|
112
|
-
await help.execute(context, { command: "command_b" });
|
|
113
|
-
expectStringIncludes(streamString.getString(), "Possible matches: command_a");
|
|
114
|
-
expectStringIncludes(streamString.getString(), "Unknown command: command_b");
|
|
115
|
-
expectStringIncludes(streamString.getString(), "Usage");
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
test("Ensure global options are ordered", async () => {
|
|
119
|
-
const streamString = new StreamString();
|
|
120
|
-
const context = getContext(streamString);
|
|
121
|
-
const commandRegistry = getCommandRegistry([
|
|
122
|
-
getGlobalModifierCommand("zzz", "z", true),
|
|
123
|
-
getGlobalModifierCommand("aaa", "a", true),
|
|
124
|
-
]);
|
|
125
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
126
|
-
|
|
127
|
-
commandRegistry.addCommand(help);
|
|
128
|
-
|
|
129
|
-
await help.execute(context);
|
|
130
|
-
expectStringIncludes(streamString.getString(), "--aaa");
|
|
131
|
-
expectStringIncludes(streamString.getString(), "--zzz");
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
test("Ensure commands are sectioned by topic and group", async () => {
|
|
135
|
-
const streamString = new StreamString();
|
|
136
|
-
const context = getContext(streamString);
|
|
137
|
-
const commandRegistry = getCommandRegistry([
|
|
138
|
-
{
|
|
139
|
-
name: "topic",
|
|
140
|
-
helpTopic: "topic",
|
|
141
|
-
options: [],
|
|
142
|
-
positionals: [],
|
|
143
|
-
execute: async (): Promise<void> => {},
|
|
144
|
-
} as SubCommand,
|
|
145
|
-
{
|
|
146
|
-
name: "goo",
|
|
147
|
-
memberSubCommands: [getSubCommandWithOption("gar")],
|
|
148
|
-
execute: async (): Promise<void> => {},
|
|
149
|
-
} as GroupCommand,
|
|
150
|
-
]);
|
|
151
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
152
|
-
|
|
153
|
-
commandRegistry.addCommand(help);
|
|
154
|
-
|
|
155
|
-
await help.execute(context);
|
|
156
|
-
expectStringIncludes(streamString.getString(), "Topic");
|
|
157
|
-
expectStringIncludes(streamString.getString(), "Goo");
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
test("Ensure non-topic commands are referred to as 'Other Commands' if there are topic commands", async () => {
|
|
161
|
-
const streamString = new StreamString();
|
|
162
|
-
const context = getContext(streamString);
|
|
163
|
-
const commandRegistry = getCommandRegistry([
|
|
164
|
-
{
|
|
165
|
-
name: "topic",
|
|
166
|
-
helpTopic: "topic",
|
|
167
|
-
options: [],
|
|
168
|
-
positionals: [],
|
|
169
|
-
execute: async (): Promise<void> => {},
|
|
170
|
-
} as SubCommand,
|
|
171
|
-
{
|
|
172
|
-
name: "sub",
|
|
173
|
-
options: [],
|
|
174
|
-
positionals: [],
|
|
175
|
-
execute: async (): Promise<void> => {},
|
|
176
|
-
} as SubCommand,
|
|
177
|
-
{
|
|
178
|
-
name: "goo",
|
|
179
|
-
memberSubCommands: [getSubCommandWithOption("gar")],
|
|
180
|
-
execute: async (): Promise<void> => {},
|
|
181
|
-
} as GroupCommand,
|
|
182
|
-
]);
|
|
183
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
184
|
-
|
|
185
|
-
commandRegistry.addCommand(help);
|
|
186
|
-
|
|
187
|
-
await help.execute(context);
|
|
188
|
-
expectStringIncludes(streamString.getString(), "Other Commands");
|
|
189
|
-
expectStringIncludes(streamString.getString(), "Topic");
|
|
190
|
-
expectStringIncludes(streamString.getString(), "Goo");
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
test("Ensure non-topic commands are referred to as 'Other Commands' if there are group commands", async () => {
|
|
194
|
-
const streamString = new StreamString();
|
|
195
|
-
const context = getContext(streamString);
|
|
196
|
-
const commandRegistry = getCommandRegistry([
|
|
197
|
-
{
|
|
198
|
-
name: "sub",
|
|
199
|
-
options: [],
|
|
200
|
-
positionals: [],
|
|
201
|
-
execute: async (): Promise<void> => {},
|
|
202
|
-
} as SubCommand,
|
|
203
|
-
{
|
|
204
|
-
name: "goo",
|
|
205
|
-
memberSubCommands: [getSubCommandWithOption("gar")],
|
|
206
|
-
execute: async (): Promise<void> => {},
|
|
207
|
-
} as GroupCommand,
|
|
208
|
-
]);
|
|
209
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
210
|
-
|
|
211
|
-
commandRegistry.addCommand(help);
|
|
212
|
-
|
|
213
|
-
await help.execute(context);
|
|
214
|
-
expectStringIncludes(streamString.getString(), "Other Commands");
|
|
215
|
-
expectStringIncludes(streamString.getString(), "Goo");
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
test("Ensure non-topic commands are referred to as 'Sub-Commands' if there are no topic and no group commands", async () => {
|
|
219
|
-
const streamString = new StreamString();
|
|
220
|
-
const context = getContext(streamString);
|
|
221
|
-
const commandRegistry = getCommandRegistry([
|
|
222
|
-
{
|
|
223
|
-
name: "sub",
|
|
224
|
-
options: [],
|
|
225
|
-
positionals: [],
|
|
226
|
-
execute: async (): Promise<void> => {},
|
|
227
|
-
} as SubCommand,
|
|
228
|
-
]);
|
|
229
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
230
|
-
|
|
231
|
-
commandRegistry.addCommand(help);
|
|
232
|
-
|
|
233
|
-
await help.execute(context);
|
|
234
|
-
expectStringIncludes(streamString.getString(), "Sub-Commands");
|
|
235
|
-
});
|
|
236
|
-
|
|
237
|
-
test("Ensure global items are renamed without global if no sub or group commands", async () => {
|
|
238
|
-
const streamString = new StreamString();
|
|
239
|
-
const context = getContext(streamString);
|
|
240
|
-
const commandRegistry = getCommandRegistry([
|
|
241
|
-
getGlobalModifierCommand("zzz"),
|
|
242
|
-
getGlobalModifierCommand("aaa"),
|
|
243
|
-
]);
|
|
244
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
245
|
-
|
|
246
|
-
commandRegistry.addCommand(help);
|
|
247
|
-
|
|
248
|
-
await help.execute(context);
|
|
249
|
-
expectStringIncludes(streamString.getString(), "<option>");
|
|
250
|
-
expectStringIncludes(streamString.getString(), "<command>");
|
|
251
|
-
expectStringIncludes(streamString.getString(), "Options");
|
|
252
|
-
expectStringIncludes(streamString.getString(), "Commands");
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
test("Ensure global items are named with global if sub commands", async () => {
|
|
256
|
-
const streamString = new StreamString();
|
|
257
|
-
const context = getContext(streamString);
|
|
258
|
-
const commandRegistry = getCommandRegistry([
|
|
259
|
-
getGlobalModifierCommand("zzz", "z", true),
|
|
260
|
-
getGlobalModifierCommand("aaa", "a", true),
|
|
261
|
-
getSubCommandWithOption("command_a"),
|
|
262
|
-
]);
|
|
263
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
264
|
-
|
|
265
|
-
commandRegistry.addCommand(help);
|
|
266
|
-
|
|
267
|
-
await help.execute(context);
|
|
268
|
-
expectStringIncludes(streamString.getString(), "<global_option>");
|
|
269
|
-
expectStringIncludes(streamString.getString(), "<global_command>");
|
|
270
|
-
expectStringIncludes(streamString.getString(), "Global Options");
|
|
271
|
-
expectStringIncludes(streamString.getString(), "Global Commands");
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: do not render global_option if no global modifiers", async () => {
|
|
275
|
-
const streamString = new StreamString();
|
|
276
|
-
const context = getContext(streamString);
|
|
277
|
-
const commandRegistry = getCommandRegistry();
|
|
278
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
279
|
-
|
|
280
|
-
commandRegistry.addCommand(help);
|
|
281
|
-
|
|
282
|
-
await help.execute(context);
|
|
283
|
-
expectStringIncludes(streamString.getString(), "foo");
|
|
284
|
-
expectStringNotIncludes(streamString.getString(), "global_option");
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: render global_option arg if global modifiers defined", async () => {
|
|
288
|
-
const streamString = new StreamString();
|
|
289
|
-
const context = getContext(streamString);
|
|
290
|
-
const commandRegistry = getCommandRegistry([
|
|
291
|
-
getGlobalModifierCommand("modifier1", "m", true),
|
|
292
|
-
getGlobalModifierCommand("modifier2"),
|
|
293
|
-
getSubCommandWithOption("command_a"),
|
|
294
|
-
]);
|
|
295
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
296
|
-
|
|
297
|
-
commandRegistry.addCommand(help);
|
|
298
|
-
|
|
299
|
-
await help.execute(context);
|
|
300
|
-
expectStringIncludes(streamString.getString(), "[<global_option> [<value>]]...");
|
|
301
|
-
});
|
|
302
|
-
|
|
303
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: do not render global_option multiplicity if only one defined", async () => {
|
|
304
|
-
const streamString = new StreamString();
|
|
305
|
-
const context = getContext(streamString);
|
|
306
|
-
const commandRegistry = getCommandRegistry([
|
|
307
|
-
getGlobalModifierCommand("modifier1"),
|
|
308
|
-
getSubCommandWithOption("command_a"),
|
|
309
|
-
]);
|
|
310
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
311
|
-
|
|
312
|
-
commandRegistry.addCommand(help);
|
|
313
|
-
|
|
314
|
-
await help.execute(context);
|
|
315
|
-
expectStringIncludes(streamString.getString(), "[<global_option>] <global_command>");
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: do not render global_option arg if none defined", async () => {
|
|
319
|
-
const streamString = new StreamString();
|
|
320
|
-
const context = getContext(streamString);
|
|
321
|
-
const commandRegistry = getCommandRegistry([
|
|
322
|
-
getGlobalModifierCommand("modifier1"),
|
|
323
|
-
getGlobalModifierCommand("modifier2"),
|
|
324
|
-
getSubCommandWithOption("command_a"),
|
|
325
|
-
]);
|
|
326
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
327
|
-
|
|
328
|
-
commandRegistry.addCommand(help);
|
|
329
|
-
|
|
330
|
-
await help.execute(context);
|
|
331
|
-
expectStringIncludes(streamString.getString(), "[<global_option>]... <global_command>");
|
|
332
|
-
});
|
|
333
|
-
|
|
334
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: do not render global_option arg as optional if none are optional and have no default or not boolean", async () => {
|
|
335
|
-
const streamString = new StreamString();
|
|
336
|
-
const context = getContext(streamString);
|
|
337
|
-
const commandRegistry = getCommandRegistry([
|
|
338
|
-
getGlobalModifierCommand("modifier1", "1", true, true),
|
|
339
|
-
getGlobalModifierCommand("modifier2", "2", true, true),
|
|
340
|
-
getSubCommandWithOption("command_a"),
|
|
341
|
-
]);
|
|
342
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
343
|
-
|
|
344
|
-
commandRegistry.addCommand(help);
|
|
345
|
-
|
|
346
|
-
await help.execute(context);
|
|
347
|
-
expectStringIncludes(streamString.getString(), "[<global_option> <value>]");
|
|
348
|
-
});
|
|
349
|
-
|
|
350
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: render global_option arg as optional if at least one modifier has no arg", async () => {
|
|
351
|
-
const streamString = new StreamString();
|
|
352
|
-
const context = getContext(streamString);
|
|
353
|
-
const commandRegistry = getCommandRegistry([
|
|
354
|
-
getGlobalModifierCommand("modifier1", "m", true, true),
|
|
355
|
-
getGlobalModifierCommand("modifier2"),
|
|
356
|
-
getSubCommandWithOption("command_a"),
|
|
357
|
-
]);
|
|
358
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
359
|
-
|
|
360
|
-
commandRegistry.addCommand(help);
|
|
361
|
-
|
|
362
|
-
await help.execute(context);
|
|
363
|
-
expectStringIncludes(streamString.getString(), "[<global_option> [<value>]]");
|
|
364
|
-
});
|
|
365
|
-
|
|
366
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: do not render command if none defined (e.g. default command is configured)", async () => {
|
|
367
|
-
const streamString = new StreamString();
|
|
368
|
-
const context = getContext(streamString);
|
|
369
|
-
const commandRegistry = getCommandRegistry([
|
|
370
|
-
getGlobalModifierCommand("modifier1"),
|
|
371
|
-
getGlobalModifierCommand("modifier2"),
|
|
372
|
-
]);
|
|
373
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
374
|
-
|
|
375
|
-
commandRegistry.addCommand(help);
|
|
376
|
-
|
|
377
|
-
await help.execute(context);
|
|
378
|
-
expectStringIncludes(streamString.getString(), "<option>]...");
|
|
379
|
-
});
|
|
380
|
-
|
|
381
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: render command and global command", async () => {
|
|
382
|
-
const streamString = new StreamString();
|
|
383
|
-
const context = getContext(streamString);
|
|
384
|
-
const commandRegistry = getCommandRegistry([getSubCommandWithOption("command_a")]);
|
|
385
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
386
|
-
|
|
387
|
-
commandRegistry.addCommand(help);
|
|
388
|
-
|
|
389
|
-
await help.execute(context);
|
|
390
|
-
expectStringIncludes(streamString.getString(), "<global_command>|<command>");
|
|
391
|
-
});
|
|
392
|
-
|
|
393
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: do not render arg if none defined", async () => {
|
|
394
|
-
const streamString = new StreamString();
|
|
395
|
-
const context = getContext(streamString);
|
|
396
|
-
const commandRegistry = getCommandRegistry([getSubCommandWithOption("command_a")]);
|
|
397
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
398
|
-
|
|
399
|
-
commandRegistry.addCommand(help);
|
|
400
|
-
|
|
401
|
-
await help.execute(context);
|
|
402
|
-
expectStringIncludes(streamString.getString(), "<command>");
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: render arg if at least one defined", async () => {
|
|
406
|
-
const streamString = new StreamString();
|
|
407
|
-
const context = getContext(streamString);
|
|
408
|
-
const commandRegistry = getCommandRegistry([getSubCommandWithOption("command_a", true, true)]);
|
|
409
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
410
|
-
|
|
411
|
-
commandRegistry.addCommand(help);
|
|
412
|
-
|
|
413
|
-
await help.execute(context);
|
|
414
|
-
expectStringIncludes(streamString.getString(), "<command> [<arg>");
|
|
415
|
-
});
|
|
416
|
-
|
|
417
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: render arg as optional if at least one is optional", async () => {
|
|
418
|
-
const streamString = new StreamString();
|
|
419
|
-
const context = getContext(streamString);
|
|
420
|
-
const commandRegistry = getCommandRegistry([
|
|
421
|
-
getSubCommandWithOption("command_a", true, true),
|
|
422
|
-
getSubCommandWithOption("command_b", true),
|
|
423
|
-
]);
|
|
424
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
425
|
-
|
|
426
|
-
commandRegistry.addCommand(help);
|
|
427
|
-
|
|
428
|
-
await help.execute(context);
|
|
429
|
-
expectStringIncludes(streamString.getString(), "<command> [<arg> <value>]");
|
|
430
|
-
});
|
|
431
|
-
|
|
432
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: render arg as multiple if at least one multiple", async () => {
|
|
433
|
-
const streamString = new StreamString();
|
|
434
|
-
const context = getContext(streamString);
|
|
435
|
-
const commandRegistry = getCommandRegistry([
|
|
436
|
-
getSubCommandWithOption("command_a", true, true, true),
|
|
437
|
-
getSubCommandWithOption("command_b", true),
|
|
438
|
-
]);
|
|
439
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
440
|
-
|
|
441
|
-
commandRegistry.addCommand(help);
|
|
442
|
-
|
|
443
|
-
await help.execute(context);
|
|
444
|
-
expectStringIncludes(streamString.getString(), "<command> [<arg> <value>]...");
|
|
445
|
-
});
|
|
446
|
-
|
|
447
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: do not render arg value in [] if none are optional and have no default or not boolean", async () => {
|
|
448
|
-
const streamString = new StreamString();
|
|
449
|
-
const context = getContext(streamString);
|
|
450
|
-
const commandRegistry = getCommandRegistry([
|
|
451
|
-
getSubCommandWithOption("command_a", true, true, true),
|
|
452
|
-
getSubCommandWithOption("command_b", true, true, true),
|
|
453
|
-
]);
|
|
454
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
455
|
-
|
|
456
|
-
await help.execute(context);
|
|
457
|
-
expectStringIncludes(streamString.getString(), "<command> <<arg> <value>>...");
|
|
458
|
-
});
|
|
459
|
-
|
|
460
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: multiple global and sub commands", async () => {
|
|
461
|
-
const streamString = new StreamString();
|
|
462
|
-
const context = getContext(streamString);
|
|
463
|
-
const commandRegistry = getCommandRegistry([
|
|
464
|
-
getGlobalCommand("global1", true, true),
|
|
465
|
-
getGlobalCommand("global2", true),
|
|
466
|
-
getSubCommandWithOption("command_a", true, true),
|
|
467
|
-
getSubCommandWithOption("command_b", true),
|
|
468
|
-
]);
|
|
469
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
470
|
-
|
|
471
|
-
commandRegistry.addCommand(help);
|
|
472
|
-
|
|
473
|
-
await help.execute(context);
|
|
474
|
-
expectStringIncludes(streamString.getString(), "<global_command>|<command> [<arg> <value>]");
|
|
475
|
-
});
|
|
476
|
-
|
|
477
|
-
test("Ensure multi-command CLI usage syntax is rendered correctly: multiple global and sub commands with multiple args and optional values", async () => {
|
|
478
|
-
const streamString = new StreamString();
|
|
479
|
-
const context = getContext(streamString);
|
|
480
|
-
const commandRegistry = getCommandRegistry([
|
|
481
|
-
getGlobalCommand("global1", true, true),
|
|
482
|
-
getGlobalCommand("global2", true),
|
|
483
|
-
getSubCommandWithOption("command_a", true, true, true, ArgumentValueTypeName.BOOLEAN),
|
|
484
|
-
getSubCommandWithOption("command_b", true),
|
|
485
|
-
]);
|
|
486
|
-
const help = new MultiCommandCliHelpGlobalCommand(true, commandRegistry);
|
|
487
|
-
|
|
488
|
-
commandRegistry.addCommand(help);
|
|
489
|
-
|
|
490
|
-
await help.execute(context);
|
|
491
|
-
expectStringIncludes(
|
|
492
|
-
streamString.getString(),
|
|
493
|
-
"<global_command>|<command> [<arg> [<value>]]...",
|
|
494
|
-
);
|
|
495
|
-
});
|
|
496
|
-
});
|