@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.
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,149 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, test } from "bun:test";
2
- import supportsHyperlinks from "../../src/terminal/supportsHyperlinks.ts";
3
- import type { WriteStream } from "node:tty";
4
-
5
- const envKeys = [
6
- "CI",
7
- "CURSOR_TRACE_ID",
8
- "FORCE_HYPERLINK",
9
- "TEAMCITY_VERSION",
10
- "TERM_PROGRAM",
11
- "TERM_PROGRAM_VERSION",
12
- "VTE_VERSION",
13
- "TERM",
14
- "WT_SESSION",
15
- ];
16
-
17
- let savedEnv: Record<string, string | undefined>;
18
-
19
- function ttyStream(): WriteStream {
20
- return { isTTY: true } as WriteStream;
21
- }
22
-
23
- function nonTtyStream(): WriteStream {
24
- return { isTTY: false } as WriteStream;
25
- }
26
-
27
- beforeEach(() => {
28
- savedEnv = {};
29
- for (const key of envKeys) {
30
- savedEnv[key] = process.env[key];
31
- delete process.env[key];
32
- }
33
- });
34
-
35
- afterEach(() => {
36
- for (const key of envKeys) {
37
- if (savedEnv[key] === undefined) {
38
- delete process.env[key];
39
- } else {
40
- process.env[key] = savedEnv[key];
41
- }
42
- }
43
- });
44
-
45
- describe("supportsHyperlinks", () => {
46
- test("returns false for non-TTY stream", () => {
47
- expect(supportsHyperlinks(nonTtyStream())).toBe(false);
48
- });
49
-
50
- test("returns false for unknown terminal", () => {
51
- expect(supportsHyperlinks(ttyStream())).toBe(false);
52
- });
53
-
54
- test("FORCE_HYPERLINK=1 overrides to true", () => {
55
- process.env.FORCE_HYPERLINK = "1";
56
- expect(supportsHyperlinks(ttyStream())).toBe(true);
57
- });
58
-
59
- test("FORCE_HYPERLINK=0 overrides to false", () => {
60
- process.env.FORCE_HYPERLINK = "0";
61
- expect(supportsHyperlinks(ttyStream())).toBe(false);
62
- });
63
-
64
- test("FORCE_HYPERLINK=1 works even for non-TTY", () => {
65
- process.env.FORCE_HYPERLINK = "1";
66
- expect(supportsHyperlinks(nonTtyStream())).toBe(true);
67
- });
68
-
69
- test("returns true for Windows Terminal", () => {
70
- process.env.WT_SESSION = "some-session-id";
71
- expect(supportsHyperlinks(ttyStream())).toBe(true);
72
- });
73
-
74
- test("returns true for iTerm.app >= 3.1", () => {
75
- process.env.TERM_PROGRAM = "iTerm.app";
76
- process.env.TERM_PROGRAM_VERSION = "3.1.0";
77
- expect(supportsHyperlinks(ttyStream())).toBe(true);
78
- });
79
-
80
- test("returns false for iTerm.app < 3.1", () => {
81
- process.env.TERM_PROGRAM = "iTerm.app";
82
- process.env.TERM_PROGRAM_VERSION = "3.0.0";
83
- expect(supportsHyperlinks(ttyStream())).toBe(false);
84
- });
85
-
86
- test("returns true for vscode >= 1.72", () => {
87
- process.env.TERM_PROGRAM = "vscode";
88
- process.env.TERM_PROGRAM_VERSION = "1.72.0";
89
- expect(supportsHyperlinks(ttyStream())).toBe(true);
90
- });
91
-
92
- test("returns false for vscode < 1.72", () => {
93
- process.env.TERM_PROGRAM = "vscode";
94
- process.env.TERM_PROGRAM_VERSION = "1.71.0";
95
- expect(supportsHyperlinks(ttyStream())).toBe(false);
96
- });
97
-
98
- test("returns true for Cursor (vscode + CURSOR_TRACE_ID)", () => {
99
- process.env.TERM_PROGRAM = "vscode";
100
- process.env.CURSOR_TRACE_ID = "some-id";
101
- expect(supportsHyperlinks(ttyStream())).toBe(true);
102
- });
103
-
104
- test("returns true for ghostty", () => {
105
- process.env.TERM_PROGRAM = "ghostty";
106
- expect(supportsHyperlinks(ttyStream())).toBe(true);
107
- });
108
-
109
- test("returns true for zed", () => {
110
- process.env.TERM_PROGRAM = "zed";
111
- expect(supportsHyperlinks(ttyStream())).toBe(true);
112
- });
113
-
114
- test("returns true for WezTerm", () => {
115
- process.env.TERM_PROGRAM = "WezTerm";
116
- process.env.TERM_PROGRAM_VERSION = "20200620";
117
- expect(supportsHyperlinks(ttyStream())).toBe(true);
118
- });
119
-
120
- test("returns true for VTE >= 0.50 (excluding 0.50.0)", () => {
121
- process.env.VTE_VERSION = "0.50.1";
122
- expect(supportsHyperlinks(ttyStream())).toBe(true);
123
- });
124
-
125
- test("returns false for VTE 0.50.0 (segfault bug)", () => {
126
- process.env.VTE_VERSION = "0.50.0";
127
- expect(supportsHyperlinks(ttyStream())).toBe(false);
128
- });
129
-
130
- test("returns true for alacritty", () => {
131
- process.env.TERM = "alacritty";
132
- expect(supportsHyperlinks(ttyStream())).toBe(true);
133
- });
134
-
135
- test("returns true for xterm-kitty", () => {
136
- process.env.TERM = "xterm-kitty";
137
- expect(supportsHyperlinks(ttyStream())).toBe(true);
138
- });
139
-
140
- test("returns false in CI", () => {
141
- process.env.CI = "true";
142
- expect(supportsHyperlinks(ttyStream())).toBe(false);
143
- });
144
-
145
- test("returns false for TeamCity", () => {
146
- process.env.TEAMCITY_VERSION = "2023.1";
147
- expect(supportsHyperlinks(ttyStream())).toBe(false);
148
- });
149
- });
@@ -1,193 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import {
3
- getGlobalCommandArgumentConfigurationKey,
4
- getSubCommandArgumentConfigurationKey,
5
- } from "../../src/util/configHelper.ts";
6
- import { getCLIConfig } from "../fixtures/CLIConfig.ts";
7
- import {
8
- getGlobalCommand,
9
- getSubCommandWithComplexOptions,
10
- getSubCommandWithOption,
11
- getSubCommandWithPositional,
12
- } from "../fixtures/Command.ts";
13
- import { ArgumentValueTypeName } from "../../src/api/argument/ArgumentValueTypes.ts";
14
- import type ComplexOption from "../../src/api/argument/ComplexOption.ts";
15
- import type Option from "../../src/api/argument/Option.ts";
16
- import type SubCommandArgument from "../../src/api/argument/SubCommandArgument.ts";
17
-
18
- describe("configHelper tests", () => {
19
- test("getConfigurationKey works for global argument", () => {
20
- let command = getGlobalCommand("blah", true);
21
-
22
- expect(
23
- getGlobalCommandArgumentConfigurationKey(getCLIConfig(), command, command.argument!),
24
- ).toBeUndefined();
25
-
26
- command = getGlobalCommand("blah", true, false, true);
27
-
28
- expect(
29
- getGlobalCommandArgumentConfigurationKey(getCLIConfig(), command, command.argument!),
30
- ).toEqual("FOO_BLAH");
31
-
32
- command = getGlobalCommand("blah", true, false, true, "FOO_BAR");
33
-
34
- expect(
35
- getGlobalCommandArgumentConfigurationKey(getCLIConfig(), command, command.argument!),
36
- "FOO_BAR",
37
- );
38
- });
39
-
40
- test("getConfigurationKey works for positional argument", () => {
41
- let command = getSubCommandWithPositional("blah", true, true);
42
-
43
- expect(
44
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
45
- ).toBeUndefined();
46
-
47
- command = getSubCommandWithPositional("blah", true, false, ArgumentValueTypeName.BOOLEAN, true);
48
-
49
- expect(
50
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
51
- ).toEqual("FOO_BLAH_FOO");
52
-
53
- command = getSubCommandWithPositional("blah", true, true, ArgumentValueTypeName.BOOLEAN, true);
54
-
55
- expect(
56
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
57
- ).toEqual("FOO_BLAH_FOO[_<index>]");
58
-
59
- command = getSubCommandWithPositional(
60
- "blah",
61
- true,
62
- true,
63
- ArgumentValueTypeName.BOOLEAN,
64
- true,
65
- "FOO_BAR",
66
- );
67
-
68
- expect(
69
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
70
- ).toEqual("FOO_BAR[_<index>]");
71
- });
72
-
73
- test("getConfigurationKey works for simple option argument", () => {
74
- let command = getSubCommandWithOption("blah", true, false, true);
75
-
76
- expect(
77
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
78
- command.options![0] as Option,
79
- ]),
80
- ).toBeUndefined();
81
-
82
- command = getSubCommandWithOption(
83
- "blah",
84
- true,
85
- false,
86
- false,
87
- ArgumentValueTypeName.BOOLEAN,
88
- undefined,
89
- true,
90
- );
91
-
92
- expect(
93
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
94
- command.options![0] as Option,
95
- ]),
96
- ).toEqual("FOO_BLAH_FOO");
97
-
98
- command = getSubCommandWithOption(
99
- "blah",
100
- true,
101
- false,
102
- true,
103
- ArgumentValueTypeName.BOOLEAN,
104
- undefined,
105
- true,
106
- );
107
-
108
- expect(
109
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
110
- command.options![0] as Option,
111
- ]),
112
- ).toEqual("FOO_BLAH_FOO[_<index>]");
113
-
114
- command = getSubCommandWithOption(
115
- "blah",
116
- true,
117
- false,
118
- true,
119
- ArgumentValueTypeName.BOOLEAN,
120
- undefined,
121
- true,
122
- "FOO_BAR",
123
- );
124
-
125
- expect(
126
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
127
- command.options![0] as Option,
128
- ]),
129
- ).toEqual("FOO_BAR[_<index>]");
130
- });
131
-
132
- test("getConfigurationKey works for complex option argument", () => {
133
- let command = getSubCommandWithComplexOptions();
134
-
135
- let arg0 = command.options![0] as ComplexOption;
136
- let arg1 = arg0.properties[0] as ComplexOption;
137
- let arg2 = arg1.properties[0] as Option;
138
-
139
- expect(
140
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
141
- arg0 as unknown as SubCommandArgument,
142
- arg1 as unknown as SubCommandArgument,
143
- arg2 as unknown as SubCommandArgument,
144
- ]),
145
- ).toBeUndefined();
146
-
147
- command = getSubCommandWithComplexOptions(true, true);
148
-
149
- arg0 = command.options![0] as ComplexOption;
150
- arg1 = arg0.properties[0] as ComplexOption;
151
- arg2 = arg1.properties[0] as Option;
152
-
153
- expect(
154
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
155
- arg0 as unknown as SubCommandArgument,
156
- arg1 as unknown as SubCommandArgument,
157
- arg2 as unknown as SubCommandArgument,
158
- ]),
159
- ).toEqual("FOO_SUBCOMMAND_ALPHA[_<index>]_BETA[_<index>]_GAMMA");
160
-
161
- arg2 = arg1.properties[1] as Option;
162
-
163
- expect(
164
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
165
- arg0 as unknown as SubCommandArgument,
166
- arg1 as unknown as SubCommandArgument,
167
- arg2 as unknown as SubCommandArgument,
168
- ]),
169
- ).toEqual("FOO_SUBCOMMAND_ALPHA[_<index>]_BETA[_<index>]_DELTA[_<index>]");
170
-
171
- arg0 = command.options![1] as ComplexOption;
172
- arg1 = arg0.properties[0] as ComplexOption;
173
-
174
- expect(
175
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
176
- arg0 as unknown as SubCommandArgument,
177
- arg1 as unknown as SubCommandArgument,
178
- ]),
179
- ).toEqual("FOO_SUBCOMMAND_EPSILON_FOO_BAR_A");
180
-
181
- command = getSubCommandWithComplexOptions(true, true, true);
182
-
183
- arg0 = command.options![1] as ComplexOption;
184
- arg1 = arg0.properties[1] as ComplexOption;
185
-
186
- expect(
187
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
188
- arg0 as unknown as SubCommandArgument,
189
- arg1 as unknown as SubCommandArgument,
190
- ]),
191
- ).toEqual("FOO_SUBCOMMAND_EPSILON_FOO_BAR_B[_<index>]");
192
- });
193
- });
@@ -1,254 +0,0 @@
1
- import process from "node:process";
2
- import { describe, expect, test } from "bun:test";
3
- import { getCLIConfig } from "../fixtures/CLIConfig.ts";
4
- import {
5
- getGlobalCommand,
6
- getGlobalModifierCommandWithArgument,
7
- getSubCommandWithComplexOptions,
8
- getSubCommandWithOption,
9
- getSubCommandWithPositional,
10
- } from "../fixtures/Command.ts";
11
- import {
12
- getGlobalCommandValueFromEnvVars,
13
- getSubCommandValuesFromEnvVars,
14
- } from "../../src/util/envVarHelper.ts";
15
- import { ArgumentValueTypeName } from "../../src/api/argument/ArgumentValueTypes.ts";
16
-
17
- describe("envVarHelper tests", () => {
18
- test("getGlobalCommandValuesFromEnvVars works", () => {
19
- try {
20
- let command = getGlobalCommand("blah", true);
21
-
22
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
23
-
24
- command = getGlobalCommand("blah", true, false, true);
25
-
26
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
27
-
28
- process.env["FOO_BLAH"] = "foo";
29
-
30
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("foo");
31
-
32
- command = getGlobalCommand("blah", true, false, true, "FOO_BAR");
33
-
34
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
35
-
36
- process.env["FOO_BAR"] = "foo";
37
-
38
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("foo");
39
-
40
- command = getGlobalModifierCommandWithArgument(
41
- "FOO_BAR",
42
- "m",
43
- 1,
44
- {
45
- type: ArgumentValueTypeName.BOOLEAN,
46
- configurationKey: "FOO_BAR",
47
- },
48
- true,
49
- );
50
-
51
- // any env var value should set boolean option to true
52
- process.env["FOO_BAR"] = "foo";
53
-
54
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("true");
55
-
56
- // empty env var value should set boolean option to false
57
- process.env["FOO_BAR"] = "";
58
-
59
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("false");
60
-
61
- // no env var value should not set boolean option to false
62
- delete process.env["FOO_BAR"];
63
-
64
- expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
65
- } finally {
66
- delete process.env["FOO_BLAH_VALUE"];
67
- delete process.env["FOO_BAR"];
68
- }
69
- });
70
-
71
- test("getSubCommandValuesFromEnvVars works for simple option", () => {
72
- try {
73
- let command = getSubCommandWithOption("blah", true, false);
74
-
75
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
76
-
77
- command = getSubCommandWithOption(
78
- "blah",
79
- true,
80
- false,
81
- false,
82
- ArgumentValueTypeName.STRING,
83
- undefined,
84
- true,
85
- );
86
-
87
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
88
-
89
- process.env["FOO_BLAH_FOO"] = "bar";
90
-
91
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
92
- foo: "bar",
93
- });
94
-
95
- command = getSubCommandWithOption(
96
- "blah",
97
- true,
98
- false,
99
- false,
100
- ArgumentValueTypeName.STRING,
101
- undefined,
102
- true,
103
- "FOO_BAR",
104
- );
105
-
106
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
107
-
108
- process.env["FOO_BAR"] = "bar";
109
-
110
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
111
- foo: "bar",
112
- });
113
-
114
- command = getSubCommandWithOption(
115
- "blah",
116
- true,
117
- false,
118
- false,
119
- ArgumentValueTypeName.BOOLEAN,
120
- undefined,
121
- true,
122
- "FOO_BAR",
123
- );
124
-
125
- // any env var value should set boolean option to true
126
- process.env["FOO_BAR"] = "foo";
127
-
128
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
129
- foo: "true",
130
- });
131
-
132
- // empty env var value should set boolean option to false
133
- process.env["FOO_BAR"] = "";
134
-
135
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
136
- foo: "false",
137
- });
138
-
139
- delete process.env["FOO_BAR"];
140
-
141
- // no env var value should not set boolean option to false
142
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
143
- } finally {
144
- delete process.env["FOO_BLAH_FOO"];
145
- delete process.env["FOO_BAR"];
146
- }
147
- });
148
-
149
- test("getSubCommandValuesFromEnvVars works for positional", () => {
150
- try {
151
- let command = getSubCommandWithPositional("blah", true, false);
152
-
153
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
154
-
155
- command = getSubCommandWithPositional(
156
- "blah",
157
- true,
158
- false,
159
- ArgumentValueTypeName.STRING,
160
- true,
161
- );
162
-
163
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
164
-
165
- process.env["FOO_BLAH_FOO"] = "bar";
166
-
167
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
168
- foo: "bar",
169
- });
170
-
171
- command = getSubCommandWithPositional(
172
- "blah",
173
- true,
174
- false,
175
- ArgumentValueTypeName.STRING,
176
- true,
177
- "FOO_BAR",
178
- );
179
-
180
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
181
-
182
- process.env["FOO_BAR"] = "bar";
183
-
184
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
185
- foo: "bar",
186
- });
187
-
188
- command = getSubCommandWithPositional(
189
- "blah",
190
- true,
191
- false,
192
- ArgumentValueTypeName.BOOLEAN,
193
- true,
194
- "FOO_BAR",
195
- );
196
-
197
- // any env var value should set boolean option to true
198
- process.env["FOO_BAR"] = "foo";
199
-
200
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
201
- foo: "true",
202
- });
203
-
204
- // empty env var value should set boolean option to false
205
- process.env["FOO_BAR"] = "";
206
-
207
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
208
- foo: "false",
209
- });
210
-
211
- // no env var value should not set boolean option to false
212
- delete process.env["FOO_BAR"];
213
-
214
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
215
- } finally {
216
- delete process.env["FOO_BLAH_FOO"];
217
- delete process.env["FOO_BAR"];
218
- }
219
- });
220
-
221
- test("getSubCommandValuesFromEnvVars works for complex option", () => {
222
- try {
223
- const command = getSubCommandWithComplexOptions(true, true);
224
-
225
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
226
-
227
- process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"] = "bar1";
228
- process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"] = "bar2";
229
-
230
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
231
- alpha: [{ beta: [{ delta: ["bar2"], gamma: "bar1" }] }],
232
- });
233
- } finally {
234
- delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"];
235
- delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"];
236
- }
237
- });
238
-
239
- test("getSubCommandValuesFromEnvVars ignores partially matched complex option", () => {
240
- try {
241
- const command = getSubCommandWithComplexOptions(true);
242
-
243
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
244
-
245
- process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"] = "bar1";
246
- process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"] = "bar2";
247
-
248
- expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
249
- } finally {
250
- delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"];
251
- delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"];
252
- }
253
- });
254
- });
@@ -1,56 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import getLogger from "../../src/util/logger.ts";
3
-
4
- describe("logger tests", () => {
5
- test("Can acquire a logger", () => {
6
- const logger = getLogger("logger test");
7
-
8
- logger.debug("foobar");
9
- });
10
-
11
- test("Log a string at error level", () => {
12
- const logger = getLogger("logger test");
13
-
14
- logger.error("foobar");
15
- });
16
-
17
- test("Log an object at error level", () => {
18
- const logger = getLogger("logger test");
19
-
20
- logger.error({ foo: "bar" });
21
- });
22
-
23
- test("Log result of a function at error level", () => {
24
- const logger = getLogger("logger test");
25
-
26
- logger.error(() => "foobar");
27
- });
28
-
29
- test("Log a string with formatted args at error level", () => {
30
- const logger = getLogger("logger test");
31
-
32
- logger.error("foo: %s %O", "bar", { foo1: "bar1", func: () => "foobar" });
33
- });
34
-
35
- test("Logger name padding is updated when a longer name is used", () => {
36
- const shortLogger = getLogger("short");
37
- const longLogger = getLogger("very-long-logger-name");
38
- // Both should be valid logger instances
39
- expect(shortLogger).toBeDefined();
40
- expect(longLogger).toBeDefined();
41
- // Calling all levels to exercise non-debug path
42
- shortLogger.trace("trace msg");
43
- shortLogger.debug("debug msg");
44
- shortLogger.info("info msg");
45
- shortLogger.warn("warn msg");
46
- shortLogger.error("error msg");
47
- });
48
-
49
- test("Logger with same-length name reuses existing padding", () => {
50
- // Create two loggers with same length names to hit the else-if branch
51
- const logger1 = getLogger("aaa");
52
- const logger2 = getLogger("bbb");
53
- expect(logger1).toBeDefined();
54
- expect(logger2).toBeDefined();
55
- });
56
- });
package/tsconfig.json DELETED
@@ -1,32 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- // Environment setup & latest features
4
- "lib": ["ESNext"],
5
- "target": "ESNext",
6
- "module": "Preserve",
7
- "moduleDetection": "force",
8
- "jsx": "react-jsx",
9
- "allowJs": true,
10
-
11
- // Bundler mode
12
- "moduleResolution": "bundler",
13
- "allowImportingTsExtensions": true,
14
- "verbatimModuleSyntax": true,
15
- "noEmit": true,
16
-
17
- "types": ["bun", "node"],
18
-
19
- // Best practices
20
- "strict": true,
21
- "skipLibCheck": true,
22
- "noFallthroughCasesInSwitch": true,
23
- "noUncheckedIndexedAccess": true,
24
- "noImplicitOverride": true,
25
-
26
- // Some stricter flags (disabled by default)
27
- "noUnusedLocals": false,
28
- "noUnusedParameters": false,
29
- "noPropertyAccessFromIndexSignature": false
30
- },
31
- "exclude": ["tests"]
32
- }