@flowscripter/dynamic-cli-framework 1.4.19 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/README.md +3 -14
  2. package/cli-plugin.ts +16 -0
  3. package/dist/cli-plugin.d.ts +17 -0
  4. package/dist/cli-plugin.d.ts.map +1 -0
  5. package/dist/cli-plugin.js +69 -0
  6. package/dist/index.d.ts +115 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +105696 -0
  9. package/dist/src/api/BaseCLIFeatureOptions.d.ts +12 -0
  10. package/dist/src/api/BaseCLIFeatureOptions.d.ts.map +1 -0
  11. package/dist/src/api/CLI.d.ts +17 -0
  12. package/dist/src/api/CLI.d.ts.map +1 -0
  13. package/dist/src/api/CLIConfig.d.ts +22 -0
  14. package/dist/src/api/CLIConfig.d.ts.map +1 -0
  15. package/dist/src/api/Context.d.ts +23 -0
  16. package/dist/src/api/Context.d.ts.map +1 -0
  17. package/dist/src/api/RunResult.d.ts +128 -0
  18. package/dist/src/api/RunResult.d.ts.map +1 -0
  19. package/dist/src/api/argument/Argument.d.ts +62 -0
  20. package/dist/src/api/argument/Argument.d.ts.map +1 -0
  21. package/dist/src/api/argument/ArgumentValueTypes.d.ts +68 -0
  22. package/dist/src/api/argument/ArgumentValueTypes.d.ts.map +1 -0
  23. package/dist/src/api/argument/ComplexOption.d.ts +21 -0
  24. package/dist/src/api/argument/ComplexOption.d.ts.map +1 -0
  25. package/dist/src/api/argument/GlobalCommandArgument.d.ts +16 -0
  26. package/dist/src/api/argument/GlobalCommandArgument.d.ts.map +1 -0
  27. package/dist/src/api/argument/Option.d.ts +29 -0
  28. package/dist/src/api/argument/Option.d.ts.map +1 -0
  29. package/dist/src/api/argument/Positional.d.ts +26 -0
  30. package/dist/src/api/argument/Positional.d.ts.map +1 -0
  31. package/dist/src/api/argument/SubCommandArgument.d.ts +18 -0
  32. package/dist/src/api/argument/SubCommandArgument.d.ts.map +1 -0
  33. package/dist/src/api/command/Command.d.ts +21 -0
  34. package/dist/src/api/command/Command.d.ts.map +1 -0
  35. package/dist/src/api/command/GlobalCommand.d.ts +28 -0
  36. package/dist/src/api/command/GlobalCommand.d.ts.map +1 -0
  37. package/dist/src/api/command/GlobalModifierCommand.d.ts +12 -0
  38. package/dist/src/api/command/GlobalModifierCommand.d.ts.map +1 -0
  39. package/dist/src/api/command/GroupCommand.d.ts +19 -0
  40. package/dist/src/api/command/GroupCommand.d.ts.map +1 -0
  41. package/dist/src/api/command/SubCommand.d.ts +37 -0
  42. package/dist/src/api/command/SubCommand.d.ts.map +1 -0
  43. package/dist/src/api/command/UsageExample.d.ts +20 -0
  44. package/dist/src/api/command/UsageExample.d.ts.map +1 -0
  45. package/dist/src/api/plugin/CommandFactory.d.ts +23 -0
  46. package/dist/src/api/plugin/CommandFactory.d.ts.map +1 -0
  47. package/dist/src/api/plugin/ServiceProviderFactory.d.ts +25 -0
  48. package/dist/src/api/plugin/ServiceProviderFactory.d.ts.map +1 -0
  49. package/dist/src/api/service/ServiceProvider.d.ts +47 -0
  50. package/dist/src/api/service/ServiceProvider.d.ts.map +1 -0
  51. package/dist/src/api/service/core/ArgumentPrompterService.d.ts +6 -0
  52. package/dist/src/api/service/core/ArgumentPrompterService.d.ts.map +1 -0
  53. package/dist/src/api/service/core/AsciiBannerGeneratorService.d.ts +59 -0
  54. package/dist/src/api/service/core/AsciiBannerGeneratorService.d.ts.map +1 -0
  55. package/dist/src/api/service/core/CompletionService.d.ts +22 -0
  56. package/dist/src/api/service/core/CompletionService.d.ts.map +1 -0
  57. package/dist/src/api/service/core/DataDumpGeneratorService.d.ts +22 -0
  58. package/dist/src/api/service/core/DataDumpGeneratorService.d.ts.map +1 -0
  59. package/dist/src/api/service/core/ImagePrinterService.d.ts +21 -0
  60. package/dist/src/api/service/core/ImagePrinterService.d.ts.map +1 -0
  61. package/dist/src/api/service/core/KeyValueService.d.ts +40 -0
  62. package/dist/src/api/service/core/KeyValueService.d.ts.map +1 -0
  63. package/dist/src/api/service/core/PluginService.d.ts +55 -0
  64. package/dist/src/api/service/core/PluginService.d.ts.map +1 -0
  65. package/dist/src/api/service/core/PrettyPrinterService.d.ts +35 -0
  66. package/dist/src/api/service/core/PrettyPrinterService.d.ts.map +1 -0
  67. package/dist/src/api/service/core/PrinterService.d.ts +339 -0
  68. package/dist/src/api/service/core/PrinterService.d.ts.map +1 -0
  69. package/dist/src/api/service/core/PrompterService.d.ts +35 -0
  70. package/dist/src/api/service/core/PrompterService.d.ts.map +1 -0
  71. package/dist/src/api/service/core/SecretService.d.ts +25 -0
  72. package/dist/src/api/service/core/SecretService.d.ts.map +1 -0
  73. package/dist/src/api/service/core/ShutdownService.d.ts +24 -0
  74. package/dist/src/api/service/core/ShutdownService.d.ts.map +1 -0
  75. package/dist/src/api/service/core/SyntaxHighlighterService.d.ts +49 -0
  76. package/dist/src/api/service/core/SyntaxHighlighterService.d.ts.map +1 -0
  77. package/dist/src/api/service/core/Table.d.ts +18 -0
  78. package/dist/src/api/service/core/Table.d.ts.map +1 -0
  79. package/dist/src/api/service/core/TableGeneratorService.d.ts +31 -0
  80. package/dist/src/api/service/core/TableGeneratorService.d.ts.map +1 -0
  81. package/dist/src/api/service/core/TreePrinterService.d.ts +9 -0
  82. package/dist/src/api/service/core/TreePrinterService.d.ts.map +1 -0
  83. package/dist/src/cli/BaseCLI.d.ts +59 -0
  84. package/dist/src/cli/BaseCLI.d.ts.map +1 -0
  85. package/dist/src/cli/DefaultRuntimeCLI.d.ts +12 -0
  86. package/dist/src/cli/DefaultRuntimeCLI.d.ts.map +1 -0
  87. package/dist/src/cli/DynamicPluginRuntimeCLI.d.ts +20 -0
  88. package/dist/src/cli/DynamicPluginRuntimeCLI.d.ts.map +1 -0
  89. package/dist/src/command/CompletionCommand.d.ts +31 -0
  90. package/dist/src/command/CompletionCommand.d.ts.map +1 -0
  91. package/dist/src/command/MultiCommandCliHelpCommand.d.ts +40 -0
  92. package/dist/src/command/MultiCommandCliHelpCommand.d.ts.map +1 -0
  93. package/dist/src/command/PluginCommand.d.ts +67 -0
  94. package/dist/src/command/PluginCommand.d.ts.map +1 -0
  95. package/dist/src/command/SingleCommandCliHelpCommand.d.ts +31 -0
  96. package/dist/src/command/SingleCommandCliHelpCommand.d.ts.map +1 -0
  97. package/dist/src/command/UsageCommand.d.ts +14 -0
  98. package/dist/src/command/UsageCommand.d.ts.map +1 -0
  99. package/dist/src/command/VersionCommand.d.ts +12 -0
  100. package/dist/src/command/VersionCommand.d.ts.map +1 -0
  101. package/dist/src/launcher.d.ts +10 -0
  102. package/dist/src/launcher.d.ts.map +1 -0
  103. package/dist/src/runtime/DefaultContext.d.ts +14 -0
  104. package/dist/src/runtime/DefaultContext.d.ts.map +1 -0
  105. package/dist/src/runtime/argument/ArgumentTypeGuards.d.ts +4 -0
  106. package/dist/src/runtime/argument/ArgumentTypeGuards.d.ts.map +1 -0
  107. package/dist/src/runtime/command/CommandTypeGuards.d.ts +10 -0
  108. package/dist/src/runtime/command/CommandTypeGuards.d.ts.map +1 -0
  109. package/dist/src/runtime/command/CommandValidator.d.ts +15 -0
  110. package/dist/src/runtime/command/CommandValidator.d.ts.map +1 -0
  111. package/dist/src/runtime/parser.d.ts +48 -0
  112. package/dist/src/runtime/parser.d.ts.map +1 -0
  113. package/dist/src/runtime/registry/CommandRegistry.d.ts +89 -0
  114. package/dist/src/runtime/registry/CommandRegistry.d.ts.map +1 -0
  115. package/dist/src/runtime/registry/DefaultCommandRegistry.d.ts +51 -0
  116. package/dist/src/runtime/registry/DefaultCommandRegistry.d.ts.map +1 -0
  117. package/dist/src/runtime/registry/DefaultServiceProviderRegistry.d.ts +12 -0
  118. package/dist/src/runtime/registry/DefaultServiceProviderRegistry.d.ts.map +1 -0
  119. package/dist/src/runtime/registry/ServiceProviderRegistry.d.ts +11 -0
  120. package/dist/src/runtime/registry/ServiceProviderRegistry.d.ts.map +1 -0
  121. package/dist/src/runtime/runner.d.ts +76 -0
  122. package/dist/src/runtime/runner.d.ts.map +1 -0
  123. package/dist/src/runtime/scanner.d.ts +69 -0
  124. package/dist/src/runtime/scanner.d.ts.map +1 -0
  125. package/dist/src/runtime/values/ValuePopulationResult.d.ts +34 -0
  126. package/dist/src/runtime/values/ValuePopulationResult.d.ts.map +1 -0
  127. package/dist/src/runtime/values/argumentValueMerge.d.ts +13 -0
  128. package/dist/src/runtime/values/argumentValueMerge.d.ts.map +1 -0
  129. package/dist/src/runtime/values/argumentValueValidation.d.ts +33 -0
  130. package/dist/src/runtime/values/argumentValueValidation.d.ts.map +1 -0
  131. package/dist/src/runtime/values/globalCommandValuePopulation.d.ts +12 -0
  132. package/dist/src/runtime/values/globalCommandValuePopulation.d.ts.map +1 -0
  133. package/dist/src/runtime/values/subCommandValuePopulation.d.ts +12 -0
  134. package/dist/src/runtime/values/subCommandValuePopulation.d.ts.map +1 -0
  135. package/dist/src/service/argumentPrompter/ArgumentPrompterServiceProvider.d.ts +13 -0
  136. package/dist/src/service/argumentPrompter/ArgumentPrompterServiceProvider.d.ts.map +1 -0
  137. package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.d.ts +9 -0
  138. package/dist/src/service/argumentPrompter/DefaultArgumentPrompterService.d.ts.map +1 -0
  139. package/dist/src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.d.ts +20 -0
  140. package/dist/src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.d.ts.map +1 -0
  141. package/dist/src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.d.ts +12 -0
  142. package/dist/src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.d.ts.map +1 -0
  143. package/dist/src/service/banner/BannerServiceProvider.d.ts +29 -0
  144. package/dist/src/service/banner/BannerServiceProvider.d.ts.map +1 -0
  145. package/dist/src/service/banner/command/NoBannerCommand.d.ts +19 -0
  146. package/dist/src/service/banner/command/NoBannerCommand.d.ts.map +1 -0
  147. package/dist/src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.d.ts +22 -0
  148. package/dist/src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.d.ts.map +1 -0
  149. package/dist/src/service/completion/CompletionServiceProvider.d.ts +14 -0
  150. package/dist/src/service/completion/CompletionServiceProvider.d.ts.map +1 -0
  151. package/dist/src/service/completion/DefaultCompletionService.d.ts +17 -0
  152. package/dist/src/service/completion/DefaultCompletionService.d.ts.map +1 -0
  153. package/dist/src/service/completion/shell/ShellHandler.d.ts +13 -0
  154. package/dist/src/service/completion/shell/ShellHandler.d.ts.map +1 -0
  155. package/dist/src/service/completion/shell/bash.d.ts +11 -0
  156. package/dist/src/service/completion/shell/bash.d.ts.map +1 -0
  157. package/dist/src/service/completion/shell/fish.d.ts +11 -0
  158. package/dist/src/service/completion/shell/fish.d.ts.map +1 -0
  159. package/dist/src/service/completion/shell/powershell.d.ts +11 -0
  160. package/dist/src/service/completion/shell/powershell.d.ts.map +1 -0
  161. package/dist/src/service/completion/shell/zsh.d.ts +11 -0
  162. package/dist/src/service/completion/shell/zsh.d.ts.map +1 -0
  163. package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts +196 -0
  164. package/dist/src/service/configuration/ConfigurationServiceProvider.d.ts.map +1 -0
  165. package/dist/src/service/configuration/DefaultKeyValueService.d.ts +14 -0
  166. package/dist/src/service/configuration/DefaultKeyValueService.d.ts.map +1 -0
  167. package/dist/src/service/configuration/DefaultSecretService.d.ts +27 -0
  168. package/dist/src/service/configuration/DefaultSecretService.d.ts.map +1 -0
  169. package/dist/src/service/configuration/command/ConfigCommand.d.ts +19 -0
  170. package/dist/src/service/configuration/command/ConfigCommand.d.ts.map +1 -0
  171. package/dist/src/service/configuration/command/DumpConfigCommand.d.ts +14 -0
  172. package/dist/src/service/configuration/command/DumpConfigCommand.d.ts.map +1 -0
  173. package/dist/src/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.d.ts +12 -0
  174. package/dist/src/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.d.ts.map +1 -0
  175. package/dist/src/service/dataDumpGenerator/DefaultDataDumpGeneratorService.d.ts +10 -0
  176. package/dist/src/service/dataDumpGenerator/DefaultDataDumpGeneratorService.d.ts.map +1 -0
  177. package/dist/src/service/imagePrinter/DefaultImagePrinterService.d.ts +8 -0
  178. package/dist/src/service/imagePrinter/DefaultImagePrinterService.d.ts.map +1 -0
  179. package/dist/src/service/imagePrinter/ImagePrinterServiceProvider.d.ts +13 -0
  180. package/dist/src/service/imagePrinter/ImagePrinterServiceProvider.d.ts.map +1 -0
  181. package/dist/src/service/plugin/DefaultPluginService.d.ts +15 -0
  182. package/dist/src/service/plugin/DefaultPluginService.d.ts.map +1 -0
  183. package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts +13 -0
  184. package/dist/src/service/plugin/DefaultPluginServiceProvider.d.ts.map +1 -0
  185. package/dist/src/service/prettyPrinter/DefaultPrettyPrinterService.d.ts +13 -0
  186. package/dist/src/service/prettyPrinter/DefaultPrettyPrinterService.d.ts.map +1 -0
  187. package/dist/src/service/prettyPrinter/PrettyPrinterServiceProvider.d.ts +20 -0
  188. package/dist/src/service/prettyPrinter/PrettyPrinterServiceProvider.d.ts.map +1 -0
  189. package/dist/src/service/printer/DefaultPrinterService.d.ts +61 -0
  190. package/dist/src/service/printer/DefaultPrinterService.d.ts.map +1 -0
  191. package/dist/src/service/printer/PrinterServiceProvider.d.ts +22 -0
  192. package/dist/src/service/printer/PrinterServiceProvider.d.ts.map +1 -0
  193. package/dist/src/service/printer/command/DarkModeCommand.d.ts +19 -0
  194. package/dist/src/service/printer/command/DarkModeCommand.d.ts.map +1 -0
  195. package/dist/src/service/printer/command/LogLevelCommand.d.ts +19 -0
  196. package/dist/src/service/printer/command/LogLevelCommand.d.ts.map +1 -0
  197. package/dist/src/service/printer/command/NoColorCommand.d.ts +19 -0
  198. package/dist/src/service/printer/command/NoColorCommand.d.ts.map +1 -0
  199. package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts +16 -0
  200. package/dist/src/service/printer/command/NoHyperlinksCommand.d.ts.map +1 -0
  201. package/dist/src/service/printer/terminal/Color.d.ts +15 -0
  202. package/dist/src/service/printer/terminal/Color.d.ts.map +1 -0
  203. package/dist/src/service/printer/terminal/Progress.d.ts +20 -0
  204. package/dist/src/service/printer/terminal/Progress.d.ts.map +1 -0
  205. package/dist/src/service/printer/terminal/Spinner.d.ts +16 -0
  206. package/dist/src/service/printer/terminal/Spinner.d.ts.map +1 -0
  207. package/dist/src/service/printer/terminal/Theme.d.ts +3 -0
  208. package/dist/src/service/printer/terminal/Theme.d.ts.map +1 -0
  209. package/dist/src/service/prompter/DefaultPrompterService.d.ts +21 -0
  210. package/dist/src/service/prompter/DefaultPrompterService.d.ts.map +1 -0
  211. package/dist/src/service/prompter/PrompterServiceProvider.d.ts +13 -0
  212. package/dist/src/service/prompter/PrompterServiceProvider.d.ts.map +1 -0
  213. package/dist/src/service/prompter/command/NoPromptCommand.d.ts +16 -0
  214. package/dist/src/service/prompter/command/NoPromptCommand.d.ts.map +1 -0
  215. package/dist/src/service/prompter/prompt/PromptContext.d.ts +15 -0
  216. package/dist/src/service/prompter/prompt/PromptContext.d.ts.map +1 -0
  217. package/dist/src/service/prompter/prompt/promptAcknowledge.d.ts +4 -0
  218. package/dist/src/service/prompter/prompt/promptAcknowledge.d.ts.map +1 -0
  219. package/dist/src/service/prompter/prompt/promptMultiSelect.d.ts +4 -0
  220. package/dist/src/service/prompter/prompt/promptMultiSelect.d.ts.map +1 -0
  221. package/dist/src/service/prompter/prompt/promptOpenUrl.d.ts +4 -0
  222. package/dist/src/service/prompter/prompt/promptOpenUrl.d.ts.map +1 -0
  223. package/dist/src/service/prompter/prompt/promptSingleSelect.d.ts +4 -0
  224. package/dist/src/service/prompter/prompt/promptSingleSelect.d.ts.map +1 -0
  225. package/dist/src/service/prompter/prompt/promptText.d.ts +4 -0
  226. package/dist/src/service/prompter/prompt/promptText.d.ts.map +1 -0
  227. package/dist/src/service/prompter/prompt/promptToggle.d.ts +4 -0
  228. package/dist/src/service/prompter/prompt/promptToggle.d.ts.map +1 -0
  229. package/dist/src/service/shutdown/DefaultShutdownService.d.ts +9 -0
  230. package/dist/src/service/shutdown/DefaultShutdownService.d.ts.map +1 -0
  231. package/dist/src/service/shutdown/ShutdownServiceProvider.d.ts +15 -0
  232. package/dist/src/service/shutdown/ShutdownServiceProvider.d.ts.map +1 -0
  233. package/dist/src/service/shutdown/ShutdownState.d.ts +6 -0
  234. package/dist/src/service/shutdown/ShutdownState.d.ts.map +1 -0
  235. package/dist/src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.d.ts +17 -0
  236. package/dist/src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.d.ts.map +1 -0
  237. package/dist/src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.d.ts +20 -0
  238. package/dist/src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.d.ts.map +1 -0
  239. package/dist/src/service/tableGenerator/DefaultTableGeneratorService.d.ts +10 -0
  240. package/dist/src/service/tableGenerator/DefaultTableGeneratorService.d.ts.map +1 -0
  241. package/dist/src/service/tableGenerator/TableGeneratorServiceProvider.d.ts +12 -0
  242. package/dist/src/service/tableGenerator/TableGeneratorServiceProvider.d.ts.map +1 -0
  243. package/dist/src/service/treePrinter/DefaultTreePrinterService.d.ts +10 -0
  244. package/dist/src/service/treePrinter/DefaultTreePrinterService.d.ts.map +1 -0
  245. package/dist/src/service/treePrinter/TreePrinterServiceProvider.d.ts +12 -0
  246. package/dist/src/service/treePrinter/TreePrinterServiceProvider.d.ts.map +1 -0
  247. package/dist/src/terminal/Ansi.d.ts +14 -0
  248. package/dist/src/terminal/Ansi.d.ts.map +1 -0
  249. package/dist/src/terminal/ImageRenderer.d.ts +7 -0
  250. package/dist/src/terminal/ImageRenderer.d.ts.map +1 -0
  251. package/dist/src/terminal/KeyReader.d.ts +22 -0
  252. package/dist/src/terminal/KeyReader.d.ts.map +1 -0
  253. package/dist/src/terminal/PngDecoder.d.ts +6 -0
  254. package/dist/src/terminal/PngDecoder.d.ts.map +1 -0
  255. package/dist/src/terminal/Styler.d.ts +9 -0
  256. package/dist/src/terminal/Styler.d.ts.map +1 -0
  257. package/dist/src/terminal/Terminal.d.ts +10 -0
  258. package/dist/src/terminal/Terminal.d.ts.map +1 -0
  259. package/dist/src/terminal/TtyKeyReader.d.ts +11 -0
  260. package/dist/src/terminal/TtyKeyReader.d.ts.map +1 -0
  261. package/dist/src/terminal/TtyStyler.d.ts +19 -0
  262. package/dist/src/terminal/TtyStyler.d.ts.map +1 -0
  263. package/dist/src/terminal/TtyTerminal.d.ts +14 -0
  264. package/dist/src/terminal/TtyTerminal.d.ts.map +1 -0
  265. package/dist/src/terminal/supportsHyperlinks.d.ts +3 -0
  266. package/dist/src/terminal/supportsHyperlinks.d.ts.map +1 -0
  267. package/dist/src/util/configHelper.d.ts +22 -0
  268. package/dist/src/util/configHelper.d.ts.map +1 -0
  269. package/dist/src/util/envVarHelper.d.ts +21 -0
  270. package/dist/src/util/envVarHelper.d.ts.map +1 -0
  271. package/dist/src/util/helpHelper.d.ts +26 -0
  272. package/dist/src/util/helpHelper.d.ts.map +1 -0
  273. package/dist/src/util/logger.d.ts +18 -0
  274. package/dist/src/util/logger.d.ts.map +1 -0
  275. package/dist/src/util/runnerHelper.d.ts +9 -0
  276. package/dist/src/util/runnerHelper.d.ts.map +1 -0
  277. package/dist/tests/cli/BaseCLI.test.d.ts +2 -0
  278. package/dist/tests/cli/BaseCLI.test.d.ts.map +1 -0
  279. package/dist/tests/cli/DynamicPluginRuntimeCLI.test.d.ts +2 -0
  280. package/dist/tests/cli/DynamicPluginRuntimeCLI.test.d.ts.map +1 -0
  281. package/dist/tests/command/CompletionCommand.test.d.ts +2 -0
  282. package/dist/tests/command/CompletionCommand.test.d.ts.map +1 -0
  283. package/dist/tests/command/MultiCommandCliHelpCommand.test.d.ts +2 -0
  284. package/dist/tests/command/MultiCommandCliHelpCommand.test.d.ts.map +1 -0
  285. package/dist/tests/command/SingleCommandCliHelpCommand.test.d.ts +2 -0
  286. package/dist/tests/command/SingleCommandCliHelpCommand.test.d.ts.map +1 -0
  287. package/dist/tests/command/UsageCommand.test.d.ts +2 -0
  288. package/dist/tests/command/UsageCommand.test.d.ts.map +1 -0
  289. package/dist/tests/command/VersionCommand.test.d.ts +2 -0
  290. package/dist/tests/command/VersionCommand.test.d.ts.map +1 -0
  291. package/dist/tests/fixtures/CLIConfig.d.ts +3 -0
  292. package/dist/tests/fixtures/CLIConfig.d.ts.map +1 -0
  293. package/dist/tests/fixtures/Command.d.ts +20 -0
  294. package/dist/tests/fixtures/Command.d.ts.map +1 -0
  295. package/{tests/fixtures/CommandRegistry.ts → dist/tests/fixtures/CommandRegistry.d.ts} +2 -4
  296. package/dist/tests/fixtures/CommandRegistry.d.ts.map +1 -0
  297. package/dist/tests/fixtures/ConfigurationServiceProvider.d.ts +10 -0
  298. package/dist/tests/fixtures/ConfigurationServiceProvider.d.ts.map +1 -0
  299. package/dist/tests/fixtures/Context.d.ts +4 -0
  300. package/dist/tests/fixtures/Context.d.ts.map +1 -0
  301. package/dist/tests/fixtures/ServiceProviderRegistry.d.ts +4 -0
  302. package/dist/tests/fixtures/ServiceProviderRegistry.d.ts.map +1 -0
  303. package/dist/tests/fixtures/StreamString.d.ts +10 -0
  304. package/dist/tests/fixtures/StreamString.d.ts.map +1 -0
  305. package/dist/tests/fixtures/prettierPluginFoo.d.ts +4 -0
  306. package/dist/tests/fixtures/prettierPluginFoo.d.ts.map +1 -0
  307. package/dist/tests/fixtures/util.d.ts +8 -0
  308. package/dist/tests/fixtures/util.d.ts.map +1 -0
  309. package/dist/tests/runtime/DefaultContext.test.d.ts +2 -0
  310. package/dist/tests/runtime/DefaultContext.test.d.ts.map +1 -0
  311. package/dist/tests/runtime/argument/ArgumentTypeGuards.test.d.ts +2 -0
  312. package/dist/tests/runtime/argument/ArgumentTypeGuards.test.d.ts.map +1 -0
  313. package/dist/tests/runtime/command/CommandTypeGuards.test.d.ts +2 -0
  314. package/dist/tests/runtime/command/CommandTypeGuards.test.d.ts.map +1 -0
  315. package/dist/tests/runtime/command/CommandValidator.test.d.ts +2 -0
  316. package/dist/tests/runtime/command/CommandValidator.test.d.ts.map +1 -0
  317. package/dist/tests/runtime/parser.test.d.ts +2 -0
  318. package/dist/tests/runtime/parser.test.d.ts.map +1 -0
  319. package/dist/tests/runtime/registry/DefaultCommandRegistry.test.d.ts +2 -0
  320. package/dist/tests/runtime/registry/DefaultCommandRegistry.test.d.ts.map +1 -0
  321. package/dist/tests/runtime/registry/DefaultServiceProviderRegistry.test.d.ts +2 -0
  322. package/dist/tests/runtime/registry/DefaultServiceProviderRegistry.test.d.ts.map +1 -0
  323. package/dist/tests/runtime/runner.test.d.ts +2 -0
  324. package/dist/tests/runtime/runner.test.d.ts.map +1 -0
  325. package/dist/tests/runtime/scanner.test.d.ts +2 -0
  326. package/dist/tests/runtime/scanner.test.d.ts.map +1 -0
  327. package/dist/tests/runtime/values/argumentValueMerge.test.d.ts +2 -0
  328. package/dist/tests/runtime/values/argumentValueMerge.test.d.ts.map +1 -0
  329. package/dist/tests/runtime/values/argumentValueValidation.test.d.ts +2 -0
  330. package/dist/tests/runtime/values/argumentValueValidation.test.d.ts.map +1 -0
  331. package/dist/tests/runtime/values/globalCommandValuePopulation.test.d.ts +2 -0
  332. package/dist/tests/runtime/values/globalCommandValuePopulation.test.d.ts.map +1 -0
  333. package/dist/tests/runtime/values/subCommandValuePopulation.test.d.ts +2 -0
  334. package/dist/tests/runtime/values/subCommandValuePopulation.test.d.ts.map +1 -0
  335. package/dist/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.d.ts +2 -0
  336. package/dist/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.d.ts.map +1 -0
  337. package/dist/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.d.ts +2 -0
  338. package/dist/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.d.ts.map +1 -0
  339. package/dist/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.d.ts +2 -0
  340. package/dist/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.d.ts.map +1 -0
  341. package/dist/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.d.ts +2 -0
  342. package/dist/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.d.ts.map +1 -0
  343. package/dist/tests/service/banner/BannerServiceProvider.test.d.ts +2 -0
  344. package/dist/tests/service/banner/BannerServiceProvider.test.d.ts.map +1 -0
  345. package/dist/tests/service/banner/command/NoBannerCommand.test.d.ts +2 -0
  346. package/dist/tests/service/banner/command/NoBannerCommand.test.d.ts.map +1 -0
  347. package/dist/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.d.ts +2 -0
  348. package/dist/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.d.ts.map +1 -0
  349. package/dist/tests/service/completion/CompletionServiceProvider.test.d.ts +2 -0
  350. package/dist/tests/service/completion/CompletionServiceProvider.test.d.ts.map +1 -0
  351. package/dist/tests/service/completion/DefaultCompletionService.test.d.ts +2 -0
  352. package/dist/tests/service/completion/DefaultCompletionService.test.d.ts.map +1 -0
  353. package/dist/tests/service/completion/shell/bash.test.d.ts +2 -0
  354. package/dist/tests/service/completion/shell/bash.test.d.ts.map +1 -0
  355. package/dist/tests/service/completion/shell/fish.test.d.ts +2 -0
  356. package/dist/tests/service/completion/shell/fish.test.d.ts.map +1 -0
  357. package/dist/tests/service/completion/shell/powershell.test.d.ts +2 -0
  358. package/dist/tests/service/completion/shell/powershell.test.d.ts.map +1 -0
  359. package/dist/tests/service/completion/shell/zsh.test.d.ts +2 -0
  360. package/dist/tests/service/completion/shell/zsh.test.d.ts.map +1 -0
  361. package/dist/tests/service/configuration/ConfigurationServiceProvider.test.d.ts +2 -0
  362. package/dist/tests/service/configuration/ConfigurationServiceProvider.test.d.ts.map +1 -0
  363. package/dist/tests/service/configuration/DefaultKeyValueService.test.d.ts +2 -0
  364. package/dist/tests/service/configuration/DefaultKeyValueService.test.d.ts.map +1 -0
  365. package/dist/tests/service/configuration/DefaultSecretService.test.d.ts +2 -0
  366. package/dist/tests/service/configuration/DefaultSecretService.test.d.ts.map +1 -0
  367. package/dist/tests/service/configuration/command/ConfigCommand.test.d.ts +2 -0
  368. package/dist/tests/service/configuration/command/ConfigCommand.test.d.ts.map +1 -0
  369. package/dist/tests/service/configuration/command/DumpConfigCommand.test.d.ts +2 -0
  370. package/dist/tests/service/configuration/command/DumpConfigCommand.test.d.ts.map +1 -0
  371. package/dist/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.d.ts +2 -0
  372. package/dist/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.d.ts.map +1 -0
  373. package/dist/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.d.ts +2 -0
  374. package/dist/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.d.ts.map +1 -0
  375. package/dist/tests/service/imagePrinter/DefaultImagePrinterService.test.d.ts +2 -0
  376. package/dist/tests/service/imagePrinter/DefaultImagePrinterService.test.d.ts.map +1 -0
  377. package/dist/tests/service/imagePrinter/ImagePrinterServiceProvider.test.d.ts +2 -0
  378. package/dist/tests/service/imagePrinter/ImagePrinterServiceProvider.test.d.ts.map +1 -0
  379. package/dist/tests/service/plugin/DefaultPluginServiceProvider.test.d.ts +2 -0
  380. package/dist/tests/service/plugin/DefaultPluginServiceProvider.test.d.ts.map +1 -0
  381. package/dist/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.d.ts +2 -0
  382. package/dist/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.d.ts.map +1 -0
  383. package/dist/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.d.ts +2 -0
  384. package/dist/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.d.ts.map +1 -0
  385. package/dist/tests/service/printer/DefaultPrinterService.test.d.ts +2 -0
  386. package/dist/tests/service/printer/DefaultPrinterService.test.d.ts.map +1 -0
  387. package/dist/tests/service/printer/PrinterServiceProvider.test.d.ts +2 -0
  388. package/dist/tests/service/printer/PrinterServiceProvider.test.d.ts.map +1 -0
  389. package/dist/tests/service/printer/command/DarkModeCommand.test.d.ts +2 -0
  390. package/dist/tests/service/printer/command/DarkModeCommand.test.d.ts.map +1 -0
  391. package/dist/tests/service/printer/command/LogLevelCommand.test.d.ts +2 -0
  392. package/dist/tests/service/printer/command/LogLevelCommand.test.d.ts.map +1 -0
  393. package/dist/tests/service/printer/command/NoColorCommand.test.d.ts +2 -0
  394. package/dist/tests/service/printer/command/NoColorCommand.test.d.ts.map +1 -0
  395. package/dist/tests/service/printer/command/NoHyperlinksCommand.test.d.ts +2 -0
  396. package/dist/tests/service/printer/command/NoHyperlinksCommand.test.d.ts.map +1 -0
  397. package/dist/tests/service/printer/terminal/Progress.test.d.ts +2 -0
  398. package/dist/tests/service/printer/terminal/Progress.test.d.ts.map +1 -0
  399. package/dist/tests/service/printer/terminal/Spinner.test.d.ts +2 -0
  400. package/dist/tests/service/printer/terminal/Spinner.test.d.ts.map +1 -0
  401. package/dist/tests/service/prompter/DefaultPrompterService.test.d.ts +2 -0
  402. package/dist/tests/service/prompter/DefaultPrompterService.test.d.ts.map +1 -0
  403. package/dist/tests/service/prompter/PrompterServiceProvider.test.d.ts +2 -0
  404. package/dist/tests/service/prompter/PrompterServiceProvider.test.d.ts.map +1 -0
  405. package/dist/tests/service/prompter/command/NoPromptCommand.test.d.ts +2 -0
  406. package/dist/tests/service/prompter/command/NoPromptCommand.test.d.ts.map +1 -0
  407. package/dist/tests/service/prompter/prompt/PromptContext.test.d.ts +2 -0
  408. package/dist/tests/service/prompter/prompt/PromptContext.test.d.ts.map +1 -0
  409. package/dist/tests/service/shutdown/ShutdownServiceProvider.test.d.ts +2 -0
  410. package/dist/tests/service/shutdown/ShutdownServiceProvider.test.d.ts.map +1 -0
  411. package/dist/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.d.ts +2 -0
  412. package/dist/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.d.ts.map +1 -0
  413. package/dist/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.d.ts +2 -0
  414. package/dist/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.d.ts.map +1 -0
  415. package/dist/tests/service/tableGenerator/DefaultTableGeneratorService.test.d.ts +2 -0
  416. package/dist/tests/service/tableGenerator/DefaultTableGeneratorService.test.d.ts.map +1 -0
  417. package/dist/tests/service/tableGenerator/TableGeneratorServiceProvider.test.d.ts +2 -0
  418. package/dist/tests/service/tableGenerator/TableGeneratorServiceProvider.test.d.ts.map +1 -0
  419. package/dist/tests/service/treePrinter/DefaultTreePrinterService.test.d.ts +2 -0
  420. package/dist/tests/service/treePrinter/DefaultTreePrinterService.test.d.ts.map +1 -0
  421. package/dist/tests/service/treePrinter/TreePrinterServiceProvider.test.d.ts +2 -0
  422. package/dist/tests/service/treePrinter/TreePrinterServiceProvider.test.d.ts.map +1 -0
  423. package/dist/tests/terminal/ImageRenderer.test.d.ts +2 -0
  424. package/dist/tests/terminal/ImageRenderer.test.d.ts.map +1 -0
  425. package/dist/tests/terminal/PngDecoder.test.d.ts +2 -0
  426. package/dist/tests/terminal/PngDecoder.test.d.ts.map +1 -0
  427. package/dist/tests/terminal/supportsHyperlinks.test.d.ts +2 -0
  428. package/dist/tests/terminal/supportsHyperlinks.test.d.ts.map +1 -0
  429. package/dist/tests/util/configHelper.test.d.ts +2 -0
  430. package/dist/tests/util/configHelper.test.d.ts.map +1 -0
  431. package/dist/tests/util/envVarHelper.test.d.ts +2 -0
  432. package/dist/tests/util/envVarHelper.test.d.ts.map +1 -0
  433. package/dist/tests/util/logger.test.d.ts +2 -0
  434. package/dist/tests/util/logger.test.d.ts.map +1 -0
  435. package/index.ts +15 -1
  436. package/package.json +28 -2
  437. package/src/api/plugin/CommandFactory.ts +25 -0
  438. package/src/api/plugin/ServiceProviderFactory.ts +27 -0
  439. package/src/api/service/core/PluginService.ts +63 -0
  440. package/src/cli/DynamicPluginRuntimeCLI.ts +77 -0
  441. package/src/command/PluginCommand.ts +184 -0
  442. package/src/launcher.ts +35 -0
  443. package/src/service/plugin/DefaultPluginService.ts +37 -0
  444. package/src/service/plugin/DefaultPluginServiceProvider.ts +29 -0
  445. package/.github/workflows/check-bun-dependencies.yml +0 -12
  446. package/.github/workflows/lint-pr-message.yml +0 -13
  447. package/.github/workflows/release-bun-library.yml +0 -15
  448. package/.github/workflows/validate-bun-library-pr.yml +0 -10
  449. package/README/core-commands.md +0 -40
  450. package/README/core-service-providers.md +0 -198
  451. package/README/development.md +0 -57
  452. package/README/implementation-details.md +0 -474
  453. package/README/key-concepts.md +0 -751
  454. package/bun.lock +0 -156
  455. package/tests/cli/BaseCLI.test.ts +0 -283
  456. package/tests/command/CompletionCommand.test.ts +0 -63
  457. package/tests/command/MultiCommandCliHelpCommand.test.ts +0 -496
  458. package/tests/command/SingleCommandCliHelpCommand.test.ts +0 -302
  459. package/tests/command/UsageCommand.test.ts +0 -48
  460. package/tests/command/VersionCommand.test.ts +0 -37
  461. package/tests/fixtures/CLIConfig.ts +0 -9
  462. package/tests/fixtures/Command.ts +0 -248
  463. package/tests/fixtures/ConfigurationServiceProvider.ts +0 -28
  464. package/tests/fixtures/Context.ts +0 -32
  465. package/tests/fixtures/ServiceProviderRegistry.ts +0 -16
  466. package/tests/fixtures/StreamString.ts +0 -37
  467. package/tests/fixtures/prettierPluginFoo.ts +0 -31
  468. package/tests/fixtures/util.ts +0 -35
  469. package/tests/runtime/DefaultContext.test.ts +0 -20
  470. package/tests/runtime/argument/ArgumentTypeGuards.test.ts +0 -47
  471. package/tests/runtime/command/CommandTypeGuards.test.ts +0 -43
  472. package/tests/runtime/command/CommandValidator.test.ts +0 -1196
  473. package/tests/runtime/parser.test.ts +0 -744
  474. package/tests/runtime/registry/DefaultCommandRegistry.test.ts +0 -144
  475. package/tests/runtime/registry/DefaultServiceProviderRegistry.test.ts +0 -36
  476. package/tests/runtime/runner.test.ts +0 -1284
  477. package/tests/runtime/scanner.test.ts +0 -915
  478. package/tests/runtime/values/argumentValueMerge.test.ts +0 -366
  479. package/tests/runtime/values/argumentValueValidation.test.ts +0 -1090
  480. package/tests/runtime/values/globalCommandValuePopulation.test.ts +0 -480
  481. package/tests/runtime/values/subCommandValuePopulation.test.ts +0 -2430
  482. package/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.ts +0 -38
  483. package/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.ts +0 -745
  484. package/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.ts +0 -17
  485. package/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.ts +0 -208
  486. package/tests/service/asciiBannerGenerator/__snapshots__/DefaultAsciiBannerGeneratorService.test.ts.snap +0 -20
  487. package/tests/service/asciiBannerGenerator/small.flf.json +0 -3
  488. package/tests/service/banner/BannerServiceProvider.test.ts +0 -87
  489. package/tests/service/banner/__snapshots__/BannerServiceProvider.test.ts.snap +0 -16
  490. package/tests/service/banner/command/NoBannerCommand.test.ts +0 -18
  491. package/tests/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.test.ts +0 -52
  492. package/tests/service/completion/CompletionServiceProvider.test.ts +0 -335
  493. package/tests/service/completion/DefaultCompletionService.test.ts +0 -216
  494. package/tests/service/completion/shell/bash.test.ts +0 -73
  495. package/tests/service/completion/shell/fish.test.ts +0 -60
  496. package/tests/service/completion/shell/powershell.test.ts +0 -59
  497. package/tests/service/completion/shell/zsh.test.ts +0 -60
  498. package/tests/service/configuration/ConfigurationServiceProvider.test.ts +0 -212
  499. package/tests/service/configuration/DefaultKeyValueService.test.ts +0 -155
  500. package/tests/service/configuration/DefaultSecretService.test.ts +0 -140
  501. package/tests/service/configuration/command/ConfigCommand.test.ts +0 -29
  502. package/tests/service/configuration/command/DumpConfigCommand.test.ts +0 -51
  503. package/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.ts +0 -51
  504. package/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.ts +0 -208
  505. package/tests/service/imagePrinter/DefaultImagePrinterService.test.ts +0 -31
  506. package/tests/service/imagePrinter/ImagePrinterServiceProvider.test.ts +0 -17
  507. package/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.ts +0 -46
  508. package/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.ts +0 -37
  509. package/tests/service/printer/DefaultPrinterService.test.ts +0 -530
  510. package/tests/service/printer/PrinterServiceProvider.test.ts +0 -34
  511. package/tests/service/printer/command/DarkModeCommand.test.ts +0 -75
  512. package/tests/service/printer/command/LogLevelCommand.test.ts +0 -47
  513. package/tests/service/printer/command/NoColorCommand.test.ts +0 -75
  514. package/tests/service/printer/command/NoHyperlinksCommand.test.ts +0 -75
  515. package/tests/service/printer/terminal/Progress.test.ts +0 -98
  516. package/tests/service/printer/terminal/Spinner.test.ts +0 -92
  517. package/tests/service/prompter/DefaultPrompterService.test.ts +0 -598
  518. package/tests/service/prompter/PrompterServiceProvider.test.ts +0 -41
  519. package/tests/service/prompter/command/NoPromptCommand.test.ts +0 -58
  520. package/tests/service/prompter/prompt/PromptContext.test.ts +0 -61
  521. package/tests/service/shutdown/ShutdownServiceProvider.test.ts +0 -13
  522. package/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.ts +0 -101
  523. package/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.ts +0 -37
  524. package/tests/service/tableGenerator/DefaultTableGeneratorService.test.ts +0 -342
  525. package/tests/service/tableGenerator/TableGeneratorServiceProvider.test.ts +0 -47
  526. package/tests/service/treePrinter/DefaultTreePrinterService.test.ts +0 -142
  527. package/tests/service/treePrinter/TreePrinterServiceProvider.test.ts +0 -51
  528. package/tests/terminal/ImageRenderer.test.ts +0 -152
  529. package/tests/terminal/PngDecoder.test.ts +0 -219
  530. package/tests/terminal/supportsHyperlinks.test.ts +0 -149
  531. package/tests/util/configHelper.test.ts +0 -193
  532. package/tests/util/envVarHelper.test.ts +0 -254
  533. package/tests/util/logger.test.ts +0 -56
  534. package/tsconfig.json +0 -32
@@ -1,61 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import { physicalLineCount } from "../../../../src/service/prompter/prompt/PromptContext.ts";
3
- import type Terminal from "../../../../src/terminal/Terminal.ts";
4
-
5
- class MockTerminal implements Terminal {
6
- readonly #cols: number;
7
- constructor(cols: number) {
8
- this.#cols = cols;
9
- }
10
- columns(): number {
11
- return this.#cols;
12
- }
13
- rows(): number {
14
- return 24;
15
- }
16
- clearLine(): Promise<void> {
17
- return Promise.resolve();
18
- }
19
- clearUpLines(): Promise<void> {
20
- return Promise.resolve();
21
- }
22
- hideCursor(): Promise<void> {
23
- return Promise.resolve();
24
- }
25
- showCursor(): Promise<void> {
26
- return Promise.resolve();
27
- }
28
- write(): Promise<void> {
29
- return Promise.resolve();
30
- }
31
- }
32
-
33
- describe("physicalLineCount", () => {
34
- test("single short text fits on one line", () => {
35
- expect(physicalLineCount(new MockTerminal(80), "hello")).toBe(1);
36
- });
37
-
38
- test("text wider than terminal wraps", () => {
39
- // 11 chars on a 10-col terminal => 2 lines
40
- expect(physicalLineCount(new MockTerminal(10), "hello world")).toBe(2);
41
- });
42
-
43
- test("embedded newline on wide terminal counts as two lines", () => {
44
- // Both parts fit on one line (terminal 300 cols > 127 and > 81),
45
- // but the embedded \n always forces 2 rendered lines
46
- const text =
47
- "This will set up your terminal so that pressing TAB while typing commands will show possible options and autocomplete arguments.\n(Enabling autocompletion will modify configuration files in your home directory.)";
48
- expect(physicalLineCount(new MockTerminal(300), text)).toBe(2);
49
- });
50
-
51
- test("embedded newline combined with wrapping", () => {
52
- // "hello world" (11 chars) => ceil(11/10) = 2 lines
53
- // "foo" (3 chars) => ceil(3/10) = 1 line
54
- // total = 3
55
- expect(physicalLineCount(new MockTerminal(10), "hello world\nfoo")).toBe(3);
56
- });
57
-
58
- test("zero columns returns 1", () => {
59
- expect(physicalLineCount(new MockTerminal(0), "hello")).toBe(1);
60
- });
61
- });
@@ -1,13 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import ShutdownServiceProvider from "../../../src/service/shutdown/ShutdownServiceProvider.ts";
3
- import { getCLIConfig } from "../../fixtures/CLIConfig.ts";
4
-
5
- describe("ShutdownServiceProvider tests", () => {
6
- test("ShutdownServiceProvider getServiceInfo works", async () => {
7
- const shutdownServiceProvider = new ShutdownServiceProvider(100);
8
- const serviceInfo = await shutdownServiceProvider.getServiceInfo(getCLIConfig());
9
- expect(serviceInfo.commands.length).toEqual(0);
10
-
11
- await ShutdownServiceProvider.shutdown();
12
- });
13
- });
@@ -1,101 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import { expectBytesEquals } from "../../fixtures/util.ts";
3
- import DefaultSyntaxHighlighterService from "../../../src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.ts";
4
- import yaml from "highlight.js/lib/languages/yaml";
5
- import DefaultPrinterService from "../../../src/service/printer/DefaultPrinterService.ts";
6
- import TtyStyler from "../../../src/terminal/TtyStyler.ts";
7
- import TtyTerminal from "../../../src/terminal/TtyTerminal.ts";
8
- import StreamString from "../../fixtures/StreamString.ts";
9
-
10
- describe("DefaultSyntaxHighlighterService tests", () => {
11
- test("JSON registered by default", () => {
12
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
13
-
14
- expect(syntaxHighlighterService.getRegisteredSyntaxes()).toEqual(["json"]);
15
- });
16
-
17
- test("Cannot register a syntax if already registered", () => {
18
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
19
-
20
- expect(() => syntaxHighlighterService.registerSyntax("jSon", yaml)).toThrow();
21
- });
22
-
23
- test("Can register new syntax", () => {
24
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
25
-
26
- syntaxHighlighterService.registerSyntax("yaml", yaml);
27
- expect(syntaxHighlighterService.getRegisteredSyntaxes()).toEqual(["json", "yaml"]);
28
- });
29
-
30
- test("Cannot highlight with unknown syntax", () => {
31
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
32
-
33
- expect(() => syntaxHighlighterService.highlight("foo: 1", "yaml")).toThrow();
34
- });
35
-
36
- test("Can highlight with JSON syntax", () => {
37
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
38
-
39
- const highlighted = syntaxHighlighterService.highlight("{ foo: 1 }", "json");
40
- expectBytesEquals(
41
- highlighted,
42
- new Uint8Array([
43
- 123, 32, 102, 111, 111, 58, 32, 27, 91, 51, 54, 109, 49, 27, 91, 51, 57, 109, 32, 125,
44
- ]),
45
- );
46
- });
47
-
48
- test("Can highlight with JSON syntax and custom color scheme", () => {
49
- const dummyStdout = new StreamString();
50
- const dummyStderr = new StreamString();
51
- const printer = new DefaultPrinterService(
52
- dummyStdout.writableStream,
53
- dummyStderr.writableStream,
54
- true,
55
- true,
56
- new TtyTerminal(dummyStdout.writeStream),
57
- new TtyTerminal(dummyStderr.writeStream),
58
- new TtyStyler(3),
59
- );
60
- printer.colorEnabled = true;
61
-
62
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
63
-
64
- syntaxHighlighterService.colorFunction = printer.color.bind(printer);
65
-
66
- const highlighted = syntaxHighlighterService.highlight("{ foo: 1 }", "json", {
67
- number: "#FF0000",
68
- });
69
- expectBytesEquals(
70
- highlighted,
71
- new Uint8Array([
72
- 123, 32, 102, 111, 111, 58, 32, 27, 91, 51, 56, 59, 50, 59, 50, 53, 53, 59, 48, 59, 48, 109,
73
- 49, 27, 91, 51, 57, 109, 32, 125,
74
- ]),
75
- );
76
- });
77
-
78
- test("Can highlight with newly registered syntax", () => {
79
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
80
-
81
- syntaxHighlighterService.registerSyntax("yaml", yaml);
82
-
83
- const highlighted = syntaxHighlighterService.highlight("foo: 1", "yaml");
84
- expectBytesEquals(
85
- highlighted,
86
- new Uint8Array([
87
- 27, 91, 51, 51, 109, 102, 111, 111, 58, 27, 91, 51, 57, 109, 32, 27, 91, 51, 54, 109, 49,
88
- 27, 91, 51, 57, 109,
89
- ]),
90
- );
91
- });
92
-
93
- test("Skipped if color disabled", () => {
94
- const syntaxHighlighterService = new DefaultSyntaxHighlighterService();
95
- syntaxHighlighterService.colorEnabled = false;
96
-
97
- const highlighted = syntaxHighlighterService.highlight("{ foo: 1 }", "json");
98
-
99
- expect(highlighted).toEqual("{ foo: 1 }");
100
- });
101
- });
@@ -1,37 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import DefaultContext from "../../../src/runtime/DefaultContext.ts";
3
- import { getCLIConfig } from "../../fixtures/CLIConfig.ts";
4
- import SyntaxHighlighterServiceProvider from "../../../src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.ts";
5
- import { PRINTER_SERVICE_ID } from "../../../src/api/service/core/PrinterService.ts";
6
- import DefaultPrinterService from "../../../src/service/printer/DefaultPrinterService.ts";
7
- import StreamString from "../../fixtures/StreamString.ts";
8
- import TtyTerminal from "../../../src/terminal/TtyTerminal.ts";
9
- import TtyStyler from "../../../src/terminal/TtyStyler.ts";
10
-
11
- describe("SyntaxHighlighterServiceProvider tests", () => {
12
- test("SyntaxHighlighterServiceProvider getServiceInfo and initService works", async () => {
13
- const dummyStdout = new StreamString();
14
- const dummyStderr = new StreamString();
15
- const syntaxHighlighterServiceProvider = new SyntaxHighlighterServiceProvider(100);
16
- const cliConfig = getCLIConfig();
17
- const context = new DefaultContext(cliConfig);
18
-
19
- context.addServiceInstance(
20
- PRINTER_SERVICE_ID,
21
- new DefaultPrinterService(
22
- dummyStdout.writableStream,
23
- dummyStderr.writableStream,
24
- true,
25
- true,
26
- new TtyTerminal(dummyStdout.writeStream),
27
- new TtyTerminal(dummyStderr.writeStream),
28
- new TtyStyler(3),
29
- ),
30
- );
31
-
32
- const serviceInfo = await syntaxHighlighterServiceProvider.getServiceInfo(cliConfig);
33
- expect(serviceInfo.commands.length).toEqual(0);
34
-
35
- await syntaxHighlighterServiceProvider.initService(context);
36
- });
37
- });
@@ -1,342 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import DefaultTableGeneratorService from "../../../src/service/tableGenerator/DefaultTableGeneratorService.ts";
3
- import Table from "../../../src/api/service/core/Table.ts";
4
- import { Align } from "../../../src/api/service/core/TableGeneratorService.ts";
5
-
6
- describe("DefaultTableGeneratorService tests", () => {
7
- function createService(): DefaultTableGeneratorService {
8
- const service = new DefaultTableGeneratorService();
9
- service.colorEnabled = false;
10
- return service;
11
- }
12
-
13
- test("2x2 table with border renders correct box-drawing chars", () => {
14
- const service = createService();
15
- const table = new Table(2, 2, { maxWidth: 20, padding: 1 })
16
- .cell(0, 0, "A")
17
- .cell(0, 1, "B")
18
- .cell(1, 0, "C")
19
- .cell(1, 1, "D");
20
-
21
- const result = service.render(table);
22
- const lines = result.split("\n");
23
-
24
- // Top border
25
- expect(lines[0]).toMatch(/^┌─+┬─+┐$/);
26
- // Content rows have │ separators
27
- expect(lines[1]).toMatch(/^│.*│.*│$/);
28
- // Middle border
29
- expect(lines[2]).toMatch(/^├─+┼─+┤$/);
30
- // Bottom border
31
- expect(lines[4]).toMatch(/^└─+┴─+┘$/);
32
- });
33
-
34
- test("2x2 table without border renders space-separated columns", () => {
35
- const service = createService();
36
- const table = new Table(2, 2, { border: false, maxWidth: 20, padding: 1 })
37
- .cell(0, 0, "A")
38
- .cell(0, 1, "B")
39
- .cell(1, 0, "C")
40
- .cell(1, 1, "D");
41
-
42
- const result = service.render(table);
43
- const lines = result.split("\n");
44
-
45
- expect(lines.length).toBe(2);
46
- // No box-drawing characters
47
- expect(result).not.toContain("│");
48
- expect(result).not.toContain("─");
49
- // Content rows should contain the cell values with spacing
50
- expect(lines[0]).toContain("A");
51
- expect(lines[0]).toContain("B");
52
- // Between columns there should be padding*2 = 2 spaces as separator
53
- // Format: pad + content + pad + (padding*2 spaces) + pad + content + pad
54
- expect(lines[0]).toMatch(/A\s+B/);
55
- });
56
-
57
- test("equal flex weights produce equal columns", () => {
58
- const service = createService();
59
- const table = new Table(1, 2, { maxWidth: 40, padding: 0 })
60
- .column(0, { flexWeight: 1 })
61
- .column(1, { flexWeight: 1 })
62
- .cell(0, 0, "X")
63
- .cell(0, 1, "Y");
64
-
65
- const result = service.render(table);
66
- const lines = result.split("\n");
67
- // With border, overhead = 3 (columnCount+1 = 3 border chars), padding = 0
68
- // Content budget = 40 - 3 = 37
69
- // Natural widths: 1 each = 2 total, surplus = 35
70
- // Each flex col gets ~17-18 chars
71
- // Find content row (second line)
72
- const contentLine = lines[1]!;
73
- // Extract the two cell widths from between │ chars
74
- const parts = contentLine.split("│").filter((s) => s.length > 0);
75
- expect(parts.length).toBe(2);
76
- const diff = Math.abs(parts[0]!.length - parts[1]!.length);
77
- expect(diff).toBeLessThanOrEqual(1);
78
- });
79
-
80
- test("flex weight 2:1 gives proportional distribution", () => {
81
- const service = createService();
82
- const table = new Table(1, 2, { maxWidth: 40, padding: 0 })
83
- .column(0, { flexWeight: 2 })
84
- .column(1, { flexWeight: 1 })
85
- .cell(0, 0, "X")
86
- .cell(0, 1, "Y");
87
-
88
- const result = service.render(table);
89
- const lines = result.split("\n");
90
- const contentLine = lines[1]!;
91
- const parts = contentLine.split("│").filter((s) => s.length > 0);
92
- expect(parts.length).toBe(2);
93
- // Col 0 should be wider than col 1
94
- expect(parts[0]!.length).toBeGreaterThan(parts[1]!.length);
95
- });
96
-
97
- test("minWidth prevents shrinking below minimum", () => {
98
- const service = createService();
99
- // Use a very small maxWidth to force shrinking
100
- const table = new Table(1, 2, { maxWidth: 20, padding: 0 })
101
- .column(0, { flexWeight: 1, minWidth: 8 })
102
- .column(1, { flexWeight: 1 })
103
- .cell(0, 0, "ABCDEFGHIJ")
104
- .cell(0, 1, "ABCDEFGHIJ");
105
-
106
- const result = service.render(table);
107
- const lines = result.split("\n");
108
- const contentLine = lines[1]!;
109
- const parts = contentLine.split("│").filter((s) => s.length > 0);
110
- // Col 0 should be at least 8 wide
111
- expect(parts[0]!.length).toBeGreaterThanOrEqual(8);
112
- });
113
-
114
- test("maxWidth caps column width", () => {
115
- const service = createService();
116
- const table = new Table(1, 2, { maxWidth: 80, padding: 0 })
117
- .column(0, { flexWeight: 1, maxWidth: 5 })
118
- .column(1, { flexWeight: 1 })
119
- .cell(0, 0, "AB")
120
- .cell(0, 1, "CD");
121
-
122
- const result = service.render(table);
123
- const lines = result.split("\n");
124
- const contentLine = lines[1]!;
125
- const parts = contentLine.split("│").filter((s) => s.length > 0);
126
- // Col 0 should not exceed maxWidth of 5
127
- expect(parts[0]!.length).toBeLessThanOrEqual(5);
128
- });
129
-
130
- test("long text wraps at word boundaries", () => {
131
- const service = createService();
132
- // Column maxWidth=10 forces wrapping of "hello world foo bar"
133
- const table = new Table(1, 1, { maxWidth: 20, padding: 1 })
134
- .column(0, { maxWidth: 10 })
135
- .cell(0, 0, "hello world foo bar");
136
-
137
- const result = service.render(table);
138
- const lines = result.split("\n");
139
- const contentLines = lines.filter((l) => l.startsWith("│") && !l.includes("─"));
140
- expect(contentLines.length).toBeGreaterThan(1);
141
- // Each content line should have complete words (no mid-word breaks)
142
- for (const line of contentLines) {
143
- const content = line.replace(/│/g, "").trim();
144
- if (content.length > 0) {
145
- const words = content.split(/\s+/);
146
- for (const word of words) {
147
- expect(["hello", "world", "foo", "bar", ""].includes(word)).toBe(true);
148
- }
149
- }
150
- }
151
- });
152
-
153
- test("single long word hard-breaks", () => {
154
- const service = createService();
155
- // Column maxWidth=5 forces hard break of "ABCDEFGHIJKLMNOP"
156
- const table = new Table(1, 1, { maxWidth: 12, padding: 0 })
157
- .column(0, { maxWidth: 5 })
158
- .cell(0, 0, "ABCDEFGHIJKLMNOP");
159
-
160
- const result = service.render(table);
161
- const lines = result.split("\n");
162
- const contentLines = lines.filter((l) => l.startsWith("│") && !l.includes("─"));
163
- expect(contentLines.length).toBeGreaterThan(1);
164
- // Verify all characters are present
165
- const allContent = contentLines.map((l) => l.replace(/│/g, "").replace(/ /g, "")).join("");
166
- expect(allContent).toBe("ABCDEFGHIJKLMNOP");
167
- });
168
-
169
- test("LEFT/RIGHT/CENTER alignment produces correct padding", () => {
170
- const service = createService();
171
- // Use minWidth=10 to force column wider than content "AB" (2 chars)
172
- // LEFT (default)
173
- const tableL = new Table(1, 1, { maxWidth: 20, padding: 0 })
174
- .column(0, { minWidth: 10 })
175
- .cell(0, 0, "AB");
176
- let result = service.render(tableL);
177
- let contentLine = result.split("\n")[1]!;
178
- let content = contentLine.slice(1, -1); // strip border chars
179
- expect(content).toBe("AB" + " ".repeat(8));
180
-
181
- // RIGHT
182
- const tableR = new Table(1, 1, {
183
- maxWidth: 20,
184
- padding: 0,
185
- align: Align.RIGHT,
186
- })
187
- .column(0, { minWidth: 10 })
188
- .cell(0, 0, "AB");
189
- result = service.render(tableR);
190
- contentLine = result.split("\n")[1]!;
191
- content = contentLine.slice(1, -1);
192
- expect(content).toBe(" ".repeat(8) + "AB");
193
-
194
- // CENTER
195
- const tableC = new Table(1, 1, {
196
- maxWidth: 20,
197
- padding: 0,
198
- align: Align.CENTER,
199
- })
200
- .column(0, { minWidth: 10 })
201
- .cell(0, 0, "AB");
202
- result = service.render(tableC);
203
- contentLine = result.split("\n")[1]!;
204
- content = contentLine.slice(1, -1);
205
- expect(content).toBe(" ".repeat(4) + "AB" + " ".repeat(4));
206
- });
207
-
208
- test("alignment cascade: cell overrides row overrides column overrides table", () => {
209
- const service = createService();
210
- // Use minWidth=10 so column is wider than content "AB" (2 chars)
211
- const table = new Table(3, 1, {
212
- maxWidth: 20,
213
- padding: 0,
214
- align: Align.LEFT,
215
- })
216
- .column(0, { align: Align.RIGHT, minWidth: 10 })
217
- .row(1, { align: Align.CENTER })
218
- .cell(0, 0, "AB")
219
- .cell(1, 0, "AB")
220
- .cell(2, 0, "AB", { align: Align.LEFT });
221
-
222
- const result = service.render(table);
223
- const lines = result.split("\n");
224
-
225
- // Row 0: column override (RIGHT)
226
- const row0 = lines[1]!.slice(1, -1);
227
- expect(row0).toBe(" ".repeat(8) + "AB");
228
-
229
- // Row 1: row override (CENTER) takes precedence over column
230
- const row1 = lines[3]!.slice(1, -1);
231
- expect(row1).toBe(" ".repeat(4) + "AB" + " ".repeat(4));
232
-
233
- // Row 2: cell override (LEFT) takes precedence over column
234
- const row2 = lines[5]!.slice(1, -1);
235
- expect(row2).toBe("AB" + " ".repeat(8));
236
- });
237
-
238
- test("empty cells render as blank space", () => {
239
- const service = createService();
240
- const table = new Table(1, 2, { maxWidth: 20, padding: 1 }).cell(0, 0, "Hi");
241
- // cell(0, 1) not set
242
-
243
- const result = service.render(table);
244
- const lines = result.split("\n");
245
- const contentLine = lines[1]!;
246
- // Should render without error
247
- expect(contentLine).toContain("Hi");
248
- // The missing cell should render as blank space
249
- const parts = contentLine.split("│").filter((s) => s.length > 0);
250
- expect(parts.length).toBe(2);
251
- expect(parts[1]!.trim()).toBe("");
252
- });
253
-
254
- test("multi-line cell content extends row height", () => {
255
- const service = createService();
256
- const table = new Table(1, 2, { maxWidth: 40, padding: 1 })
257
- .cell(0, 0, "line1\nline2\nline3")
258
- .cell(0, 1, "single");
259
-
260
- const result = service.render(table);
261
- const lines = result.split("\n");
262
- // Filter content lines (between top and bottom borders)
263
- const contentLines = lines.filter((l) => l.startsWith("│") && !l.includes("─"));
264
- // Row should have 3 sub-lines due to multi-line content
265
- expect(contentLines.length).toBe(3);
266
- expect(contentLines[0]).toContain("line1");
267
- expect(contentLines[0]).toContain("single");
268
- expect(contentLines[1]).toContain("line2");
269
- expect(contentLines[2]).toContain("line3");
270
- });
271
-
272
- test("border coloring applies color function to border characters", () => {
273
- const service = new DefaultTableGeneratorService();
274
- service.colorEnabled = true;
275
- service.colorFunction = (text, hex) => `[fg:${hex}]${text}[/fg]`;
276
- service.backgroundColorFunction = (text, hex) => `[bg:${hex}]${text}[/bg]`;
277
-
278
- const table = new Table(1, 1, {
279
- maxWidth: 20,
280
- padding: 0,
281
- borderColor: "#ff0000",
282
- borderBackgroundColor: "#0000ff",
283
- }).cell(0, 0, "X");
284
-
285
- const result = service.render(table);
286
- // Border chars should be wrapped with both color functions
287
- expect(result).toContain("[fg:#ff0000]");
288
- expect(result).toContain("[bg:#0000ff]");
289
- // Content should NOT be colored by border color function
290
- // The "X" itself should appear without color wrappers
291
- expect(result).toContain("X");
292
- });
293
-
294
- test("1x1 table renders correctly", () => {
295
- const service = createService();
296
- const table = new Table(1, 1, { maxWidth: 10, padding: 0 }).cell(0, 0, "Hi");
297
-
298
- const result = service.render(table);
299
- const lines = result.split("\n");
300
- // Should have 3 lines: top border, content, bottom border
301
- expect(lines.length).toBe(3);
302
- expect(lines[0]).toMatch(/^┌─+┐$/);
303
- expect(lines[1]).toMatch(/^│.*│$/);
304
- expect(lines[1]).toContain("Hi");
305
- expect(lines[2]).toMatch(/^└─+┘$/);
306
- });
307
-
308
- test("padding=0 works", () => {
309
- const service = createService();
310
- const table = new Table(1, 1, { maxWidth: 10, padding: 0 }).cell(0, 0, "AB");
311
-
312
- const result = service.render(table);
313
- const lines = result.split("\n");
314
- const contentLine = lines[1]!;
315
- // With padding=0, content sits directly against borders
316
- // │AB........│
317
- expect(contentLine.startsWith("│")).toBe(true);
318
- expect(contentLine.endsWith("│")).toBe(true);
319
- // No padding space between border and content
320
- expect(contentLine[1]).toBe("A");
321
- });
322
-
323
- test("out-of-bounds row index throws", () => {
324
- const table = new Table(2, 2);
325
- expect(() => table.row(5, { align: Align.LEFT })).toThrow(/out of bounds/);
326
- expect(() => table.row(-1, { align: Align.LEFT })).toThrow(/out of bounds/);
327
- });
328
-
329
- test("out-of-bounds column index throws", () => {
330
- const table = new Table(2, 2);
331
- expect(() => table.column(5, { flexWeight: 1 })).toThrow(/out of bounds/);
332
- expect(() => table.column(-1, { flexWeight: 1 })).toThrow(/out of bounds/);
333
- });
334
-
335
- test("out-of-bounds cell index throws", () => {
336
- const table = new Table(2, 2);
337
- expect(() => table.cell(5, 0, "X")).toThrow(/out of bounds/);
338
- expect(() => table.cell(0, 5, "X")).toThrow(/out of bounds/);
339
- expect(() => table.cell(-1, 0, "X")).toThrow(/out of bounds/);
340
- expect(() => table.cell(0, -1, "X")).toThrow(/out of bounds/);
341
- });
342
- });
@@ -1,47 +0,0 @@
1
- import { describe, expect, test } from "bun:test";
2
- import DefaultContext from "../../../src/runtime/DefaultContext.ts";
3
- import { getCLIConfig } from "../../fixtures/CLIConfig.ts";
4
- import TableGeneratorServiceProvider from "../../../src/service/tableGenerator/TableGeneratorServiceProvider.ts";
5
- import { PRINTER_SERVICE_ID } from "../../../src/api/service/core/PrinterService.ts";
6
- import DefaultPrinterService from "../../../src/service/printer/DefaultPrinterService.ts";
7
- import StreamString from "../../fixtures/StreamString.ts";
8
- import TtyTerminal from "../../../src/terminal/TtyTerminal.ts";
9
- import TtyStyler from "../../../src/terminal/TtyStyler.ts";
10
-
11
- describe("TableGeneratorServiceProvider tests", () => {
12
- test("getServiceInfo returns service and empty commands", async () => {
13
- const provider = new TableGeneratorServiceProvider(100);
14
- const cliConfig = getCLIConfig();
15
- const serviceInfo = await provider.getServiceInfo(cliConfig);
16
- expect(serviceInfo.commands.length).toEqual(0);
17
- expect(serviceInfo.service).toBeDefined();
18
- });
19
-
20
- test("initService sets colorEnabled and colorFunction from PrinterService", async () => {
21
- const dummyStdout = new StreamString();
22
- const dummyStderr = new StreamString();
23
- const provider = new TableGeneratorServiceProvider(100);
24
- const cliConfig = getCLIConfig();
25
- const context = new DefaultContext(cliConfig);
26
- context.addServiceInstance(
27
- PRINTER_SERVICE_ID,
28
- new DefaultPrinterService(
29
- dummyStdout.writableStream,
30
- dummyStderr.writableStream,
31
- true,
32
- true,
33
- new TtyTerminal(dummyStdout.writeStream),
34
- new TtyTerminal(dummyStderr.writeStream),
35
- new TtyStyler(3),
36
- ),
37
- );
38
- const serviceInfo = await provider.getServiceInfo(cliConfig);
39
- expect(serviceInfo.commands.length).toEqual(0);
40
- await provider.initService(context);
41
- const service =
42
- serviceInfo.service as import("../../../src/service/tableGenerator/DefaultTableGeneratorService.ts").default;
43
- expect(service.colorEnabled).toBe(true);
44
- expect(typeof service.colorFunction).toBe("function");
45
- expect(typeof service.backgroundColorFunction).toBe("function");
46
- });
47
- });