padrone 1.9.0 → 2.0.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 (328) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +2 -2
  3. package/dist/codegen/code-builder.d.mts +10 -0
  4. package/dist/codegen/code-builder.d.mts.map +1 -0
  5. package/dist/codegen/code-builder.mjs +185 -0
  6. package/dist/codegen/code-builder.mjs.map +1 -0
  7. package/dist/codegen/discovery.d.mts +44 -0
  8. package/dist/codegen/discovery.d.mts.map +1 -0
  9. package/dist/codegen/discovery.mjs +179 -0
  10. package/dist/codegen/discovery.mjs.map +1 -0
  11. package/dist/codegen/file-emitter.d.mts +10 -0
  12. package/dist/codegen/file-emitter.d.mts.map +1 -0
  13. package/dist/codegen/file-emitter.mjs +58 -0
  14. package/dist/codegen/file-emitter.mjs.map +1 -0
  15. package/dist/codegen/generators/barrel-file.d.mts +10 -0
  16. package/dist/codegen/generators/barrel-file.d.mts.map +1 -0
  17. package/dist/codegen/generators/barrel-file.mjs +16 -0
  18. package/dist/codegen/generators/barrel-file.mjs.map +1 -0
  19. package/dist/codegen/generators/command-file.d.mts +25 -0
  20. package/dist/codegen/generators/command-file.d.mts.map +1 -0
  21. package/dist/codegen/generators/command-file.mjs +130 -0
  22. package/dist/codegen/generators/command-file.mjs.map +1 -0
  23. package/dist/codegen/generators/command-tree.d.mts +17 -0
  24. package/dist/codegen/generators/command-tree.d.mts.map +1 -0
  25. package/dist/codegen/generators/command-tree.mjs +72 -0
  26. package/dist/codegen/generators/command-tree.mjs.map +1 -0
  27. package/dist/codegen/index.d.mts +15 -330
  28. package/dist/codegen/index.mjs +13 -1507
  29. package/dist/codegen/parsers/bash.d.mts +19 -0
  30. package/dist/codegen/parsers/bash.d.mts.map +1 -0
  31. package/dist/codegen/parsers/bash.mjs +112 -0
  32. package/dist/codegen/parsers/bash.mjs.map +1 -0
  33. package/dist/codegen/parsers/fish.d.mts +13 -0
  34. package/dist/codegen/parsers/fish.d.mts.map +1 -0
  35. package/dist/codegen/parsers/fish.mjs +108 -0
  36. package/dist/codegen/parsers/fish.mjs.map +1 -0
  37. package/dist/codegen/parsers/help.d.mts +15 -0
  38. package/dist/codegen/parsers/help.d.mts.map +1 -0
  39. package/dist/codegen/parsers/help.mjs +271 -0
  40. package/dist/codegen/parsers/help.mjs.map +1 -0
  41. package/dist/codegen/parsers/merge.d.mts +14 -0
  42. package/dist/codegen/parsers/merge.d.mts.map +1 -0
  43. package/dist/codegen/parsers/merge.mjs +76 -0
  44. package/dist/codegen/parsers/merge.mjs.map +1 -0
  45. package/dist/codegen/parsers/zsh.d.mts +16 -0
  46. package/dist/codegen/parsers/zsh.d.mts.map +1 -0
  47. package/dist/codegen/parsers/zsh.mjs +161 -0
  48. package/dist/codegen/parsers/zsh.mjs.map +1 -0
  49. package/dist/codegen/schema-to-code.d.mts +24 -0
  50. package/dist/codegen/schema-to-code.d.mts.map +1 -0
  51. package/dist/codegen/schema-to-code.mjs +147 -0
  52. package/dist/codegen/schema-to-code.mjs.map +1 -0
  53. package/dist/codegen/template.d.mts +18 -0
  54. package/dist/codegen/template.d.mts.map +1 -0
  55. package/dist/codegen/template.mjs +37 -0
  56. package/dist/codegen/template.mjs.map +1 -0
  57. package/dist/codegen/types.d.mts +144 -0
  58. package/dist/codegen/types.d.mts.map +1 -0
  59. package/dist/completion.d.mts +2 -0
  60. package/dist/completion.mjs +2 -0
  61. package/dist/core/args.d.mts +3 -0
  62. package/dist/{args-WmyGc59s.mjs → core/args.mjs} +5 -81
  63. package/dist/core/args.mjs.map +1 -0
  64. package/dist/core/commands.d.mts +13 -0
  65. package/dist/core/commands.d.mts.map +1 -0
  66. package/dist/{commands-ohEApqIw.mjs → core/commands.mjs} +4 -232
  67. package/dist/core/commands.mjs.map +1 -0
  68. package/dist/core/create.d.mts +63 -0
  69. package/dist/core/create.d.mts.map +1 -0
  70. package/dist/core/create.mjs +230 -0
  71. package/dist/core/create.mjs.map +1 -0
  72. package/dist/core/default-runtime.mjs +198 -0
  73. package/dist/core/default-runtime.mjs.map +1 -0
  74. package/dist/core/errors.d.mts +107 -0
  75. package/dist/core/errors.d.mts.map +1 -0
  76. package/dist/{errors-DA4KzK1M.mjs → core/errors.mjs} +2 -2
  77. package/dist/core/errors.mjs.map +1 -0
  78. package/dist/core/exec.mjs +191 -0
  79. package/dist/core/exec.mjs.map +1 -0
  80. package/dist/core/interceptors.d.mts +33 -0
  81. package/dist/core/interceptors.d.mts.map +1 -0
  82. package/dist/core/interceptors.mjs +253 -0
  83. package/dist/core/interceptors.mjs.map +1 -0
  84. package/dist/core/parse.mjs +181 -0
  85. package/dist/core/parse.mjs.map +1 -0
  86. package/dist/core/program-methods.mjs +256 -0
  87. package/dist/core/program-methods.mjs.map +1 -0
  88. package/dist/core/results.d.mts +13 -0
  89. package/dist/core/results.d.mts.map +1 -0
  90. package/dist/core/results.mjs +150 -0
  91. package/dist/core/results.mjs.map +1 -0
  92. package/dist/core/runtime.d.mts +213 -0
  93. package/dist/core/runtime.d.mts.map +1 -0
  94. package/dist/core/runtime.mjs +10 -0
  95. package/dist/core/runtime.mjs.map +1 -0
  96. package/dist/core/validate.mjs +220 -0
  97. package/dist/core/validate.mjs.map +1 -0
  98. package/dist/docs/index.d.mts +1 -1
  99. package/dist/docs/index.d.mts.map +1 -1
  100. package/dist/docs/index.mjs +2 -2
  101. package/dist/docs/index.mjs.map +1 -1
  102. package/dist/extension/auto-output.d.mts +53 -0
  103. package/dist/extension/auto-output.d.mts.map +1 -0
  104. package/dist/extension/auto-output.mjs +116 -0
  105. package/dist/extension/auto-output.mjs.map +1 -0
  106. package/dist/extension/color.d.mts +19 -0
  107. package/dist/extension/color.d.mts.map +1 -0
  108. package/dist/extension/color.mjs +37 -0
  109. package/dist/extension/color.mjs.map +1 -0
  110. package/dist/extension/completion.d.mts +25 -0
  111. package/dist/extension/completion.d.mts.map +1 -0
  112. package/dist/extension/completion.mjs +40 -0
  113. package/dist/extension/completion.mjs.map +1 -0
  114. package/dist/extension/config.d.mts +55 -0
  115. package/dist/extension/config.d.mts.map +1 -0
  116. package/dist/extension/config.mjs +162 -0
  117. package/dist/extension/config.mjs.map +1 -0
  118. package/dist/extension/env.d.mts +42 -0
  119. package/dist/extension/env.d.mts.map +1 -0
  120. package/dist/extension/env.mjs +44 -0
  121. package/dist/extension/env.mjs.map +1 -0
  122. package/dist/extension/help.d.mts +29 -0
  123. package/dist/extension/help.d.mts.map +1 -0
  124. package/dist/extension/help.mjs +161 -0
  125. package/dist/extension/help.mjs.map +1 -0
  126. package/dist/extension/index.d.mts +18 -0
  127. package/dist/extension/ink.d.mts +31 -0
  128. package/dist/extension/ink.d.mts.map +1 -0
  129. package/dist/extension/ink.mjs +69 -0
  130. package/dist/extension/ink.mjs.map +1 -0
  131. package/dist/extension/interactive.d.mts +16 -0
  132. package/dist/extension/interactive.d.mts.map +1 -0
  133. package/dist/extension/interactive.mjs +89 -0
  134. package/dist/extension/interactive.mjs.map +1 -0
  135. package/dist/extension/logger.d.mts +67 -0
  136. package/dist/extension/logger.d.mts.map +1 -0
  137. package/dist/extension/logger.mjs +188 -0
  138. package/dist/extension/logger.mjs.map +1 -0
  139. package/dist/extension/man.d.mts +25 -0
  140. package/dist/extension/man.d.mts.map +1 -0
  141. package/dist/extension/man.mjs +41 -0
  142. package/dist/extension/man.mjs.map +1 -0
  143. package/dist/extension/mcp.d.mts +28 -0
  144. package/dist/extension/mcp.d.mts.map +1 -0
  145. package/dist/extension/mcp.mjs +44 -0
  146. package/dist/extension/mcp.mjs.map +1 -0
  147. package/dist/extension/progress-renderer.d.mts +13 -0
  148. package/dist/extension/progress-renderer.d.mts.map +1 -0
  149. package/dist/extension/progress-renderer.mjs +351 -0
  150. package/dist/extension/progress-renderer.mjs.map +1 -0
  151. package/dist/extension/progress.d.mts +76 -0
  152. package/dist/extension/progress.d.mts.map +1 -0
  153. package/dist/extension/progress.mjs +225 -0
  154. package/dist/extension/progress.mjs.map +1 -0
  155. package/dist/extension/repl.d.mts +26 -0
  156. package/dist/extension/repl.d.mts.map +1 -0
  157. package/dist/extension/repl.mjs +67 -0
  158. package/dist/extension/repl.mjs.map +1 -0
  159. package/dist/extension/serve.d.mts +27 -0
  160. package/dist/extension/serve.d.mts.map +1 -0
  161. package/dist/extension/serve.mjs +41 -0
  162. package/dist/extension/serve.mjs.map +1 -0
  163. package/dist/extension/signal.d.mts +19 -0
  164. package/dist/extension/signal.d.mts.map +1 -0
  165. package/dist/extension/signal.mjs +81 -0
  166. package/dist/extension/signal.mjs.map +1 -0
  167. package/dist/extension/stdin.d.mts +19 -0
  168. package/dist/extension/stdin.d.mts.map +1 -0
  169. package/dist/extension/stdin.mjs +52 -0
  170. package/dist/extension/stdin.mjs.map +1 -0
  171. package/dist/extension/suggestions.d.mts +6 -0
  172. package/dist/extension/suggestions.d.mts.map +1 -0
  173. package/dist/extension/suggestions.mjs +113 -0
  174. package/dist/extension/suggestions.mjs.map +1 -0
  175. package/dist/extension/timing.d.mts +27 -0
  176. package/dist/extension/timing.d.mts.map +1 -0
  177. package/dist/extension/timing.mjs +71 -0
  178. package/dist/extension/timing.mjs.map +1 -0
  179. package/dist/extension/tracing.d.mts +85 -0
  180. package/dist/extension/tracing.d.mts.map +1 -0
  181. package/dist/extension/tracing.mjs +107 -0
  182. package/dist/extension/tracing.mjs.map +1 -0
  183. package/dist/extension/update-check.d.mts +20 -0
  184. package/dist/extension/update-check.d.mts.map +1 -0
  185. package/dist/extension/update-check.mjs +62 -0
  186. package/dist/extension/update-check.mjs.map +1 -0
  187. package/dist/extension/utils.mjs +43 -0
  188. package/dist/extension/utils.mjs.map +1 -0
  189. package/dist/extension/version.d.mts +20 -0
  190. package/dist/extension/version.d.mts.map +1 -0
  191. package/dist/extension/version.mjs +51 -0
  192. package/dist/extension/version.mjs.map +1 -0
  193. package/dist/{completion-D8qkAinX.mjs → feature/completion.mjs} +4 -3
  194. package/dist/feature/completion.mjs.map +1 -0
  195. package/dist/feature/interactive.mjs +145 -0
  196. package/dist/feature/interactive.mjs.map +1 -0
  197. package/dist/feature/mcp.d.mts +18 -0
  198. package/dist/feature/mcp.d.mts.map +1 -0
  199. package/dist/{mcp-wCoVFTXz.mjs → feature/mcp.mjs} +6 -6
  200. package/dist/feature/mcp.mjs.map +1 -0
  201. package/dist/feature/repl-loop.mjs +217 -0
  202. package/dist/feature/repl-loop.mjs.map +1 -0
  203. package/dist/feature/serve.d.mts +18 -0
  204. package/dist/feature/serve.d.mts.map +1 -0
  205. package/dist/{serve-ICZFl3xr.mjs → feature/serve.mjs} +7 -7
  206. package/dist/feature/serve.mjs.map +1 -0
  207. package/dist/feature/test.d.mts +109 -0
  208. package/dist/feature/test.d.mts.map +1 -0
  209. package/dist/feature/test.mjs +116 -0
  210. package/dist/feature/test.mjs.map +1 -0
  211. package/dist/feature/update-check.d.mts +35 -0
  212. package/dist/feature/update-check.d.mts.map +1 -0
  213. package/dist/{update-check-CZ2VqjnV.mjs → feature/update-check.mjs} +2 -2
  214. package/dist/feature/update-check.mjs.map +1 -0
  215. package/dist/feature/wrap.d.mts +58 -0
  216. package/dist/feature/wrap.d.mts.map +1 -0
  217. package/dist/feature/wrap.mjs +77 -0
  218. package/dist/feature/wrap.mjs.map +1 -0
  219. package/dist/index.d.mts +38 -902
  220. package/dist/index.mjs +25 -4377
  221. package/dist/ink.d.mts +2 -0
  222. package/dist/ink.mjs +2 -0
  223. package/dist/man.d.mts +2 -0
  224. package/dist/man.mjs +2 -0
  225. package/dist/mcp.d.mts +3 -0
  226. package/dist/mcp.mjs +2 -0
  227. package/dist/output/colorizer.d.mts +28 -0
  228. package/dist/output/colorizer.d.mts.map +1 -0
  229. package/dist/output/colorizer.mjs +94 -0
  230. package/dist/output/colorizer.mjs.map +1 -0
  231. package/dist/{formatter-CY3KrOEd.d.mts → output/formatter.d.mts} +2 -28
  232. package/dist/output/formatter.d.mts.map +1 -0
  233. package/dist/output/formatter.mjs +360 -0
  234. package/dist/output/formatter.mjs.map +1 -0
  235. package/dist/output/help.d.mts +18 -0
  236. package/dist/output/help.d.mts.map +1 -0
  237. package/dist/output/help.mjs +267 -0
  238. package/dist/output/help.mjs.map +1 -0
  239. package/dist/output/output-indicator.d.mts +27 -0
  240. package/dist/output/output-indicator.d.mts.map +1 -0
  241. package/dist/output/output-indicator.mjs +54 -0
  242. package/dist/output/output-indicator.mjs.map +1 -0
  243. package/dist/output/primitives.d.mts +33 -0
  244. package/dist/output/primitives.d.mts.map +1 -0
  245. package/dist/output/primitives.mjs +206 -0
  246. package/dist/output/primitives.mjs.map +1 -0
  247. package/dist/output/styling.d.mts +38 -0
  248. package/dist/output/styling.d.mts.map +1 -0
  249. package/dist/output/styling.mjs +146 -0
  250. package/dist/output/styling.mjs.map +1 -0
  251. package/dist/schema/zod.d.mts +6 -0
  252. package/dist/schema/zod.d.mts.map +1 -0
  253. package/dist/schema/zod.mjs +50 -0
  254. package/dist/schema/zod.mjs.map +1 -0
  255. package/dist/serve.d.mts +2 -0
  256. package/dist/serve.mjs +2 -0
  257. package/dist/test.d.mts +2 -109
  258. package/dist/test.mjs +1 -115
  259. package/dist/tracing.d.mts +2 -0
  260. package/dist/tracing.mjs +2 -0
  261. package/dist/types/args-meta.d.mts +129 -0
  262. package/dist/types/args-meta.d.mts.map +1 -0
  263. package/dist/types/builder.d.mts +212 -0
  264. package/dist/types/builder.d.mts.map +1 -0
  265. package/dist/types/command.d.mts +112 -0
  266. package/dist/types/command.d.mts.map +1 -0
  267. package/dist/types/index.d.mts +8 -0
  268. package/dist/types/interceptor.d.mts +232 -0
  269. package/dist/types/interceptor.d.mts.map +1 -0
  270. package/dist/types/preferences.d.mts +79 -0
  271. package/dist/types/preferences.d.mts.map +1 -0
  272. package/dist/types/result.d.mts +61 -0
  273. package/dist/types/result.d.mts.map +1 -0
  274. package/dist/types/schema.d.mts +24 -0
  275. package/dist/types/schema.d.mts.map +1 -0
  276. package/dist/util/dotenv.mjs +174 -0
  277. package/dist/util/dotenv.mjs.map +1 -0
  278. package/dist/util/shell-utils.mjs +80 -0
  279. package/dist/util/shell-utils.mjs.map +1 -0
  280. package/dist/util/stream.d.mts +33 -0
  281. package/dist/util/stream.d.mts.map +1 -0
  282. package/dist/{stream-DC4H8YTx.mjs → util/stream.mjs} +2 -2
  283. package/dist/util/stream.mjs.map +1 -0
  284. package/dist/util/type-helpers.d.mts +74 -0
  285. package/dist/util/type-helpers.d.mts.map +1 -0
  286. package/dist/util/type-utils.d.mts +186 -0
  287. package/dist/util/type-utils.d.mts.map +1 -0
  288. package/dist/util/utils.mjs +43 -0
  289. package/dist/util/utils.mjs.map +1 -0
  290. package/dist/zod.d.mts +1 -32
  291. package/dist/zod.mjs +1 -49
  292. package/package.json +65 -17
  293. package/src/completion.ts +2 -0
  294. package/src/extension/completion.ts +3 -0
  295. package/src/extension/index.ts +0 -12
  296. package/src/extension/ink.ts +2 -1
  297. package/src/extension/man.ts +3 -0
  298. package/src/extension/mcp.ts +3 -0
  299. package/src/extension/serve.ts +3 -0
  300. package/src/extension/tracing.ts +2 -0
  301. package/src/index.ts +0 -19
  302. package/src/ink.ts +2 -0
  303. package/src/man.ts +2 -0
  304. package/src/mcp.ts +3 -0
  305. package/src/serve.ts +2 -0
  306. package/src/tracing.ts +9 -0
  307. package/src/zod.ts +1 -1
  308. package/dist/args-WmyGc59s.mjs.map +0 -1
  309. package/dist/codegen/index.d.mts.map +0 -1
  310. package/dist/codegen/index.mjs.map +0 -1
  311. package/dist/commands-ohEApqIw.mjs.map +0 -1
  312. package/dist/completion-D8qkAinX.mjs.map +0 -1
  313. package/dist/errors-DA4KzK1M.mjs.map +0 -1
  314. package/dist/formatter-CY3KrOEd.d.mts.map +0 -1
  315. package/dist/help-CeI45CJx.mjs +0 -892
  316. package/dist/help-CeI45CJx.mjs.map +0 -1
  317. package/dist/index-C3Ed1LYN.d.mts +0 -1432
  318. package/dist/index-C3Ed1LYN.d.mts.map +0 -1
  319. package/dist/index.d.mts.map +0 -1
  320. package/dist/index.mjs.map +0 -1
  321. package/dist/mcp-wCoVFTXz.mjs.map +0 -1
  322. package/dist/serve-ICZFl3xr.mjs.map +0 -1
  323. package/dist/stream-DC4H8YTx.mjs.map +0 -1
  324. package/dist/test.d.mts.map +0 -1
  325. package/dist/test.mjs.map +0 -1
  326. package/dist/update-check-CZ2VqjnV.mjs.map +0 -1
  327. package/dist/zod.d.mts.map +0 -1
  328. package/dist/zod.mjs.map +0 -1
package/dist/index.d.mts CHANGED
@@ -1,902 +1,38 @@
1
- import { a as ColorConfig, i as AnsiStyle, n as HelpFormat, o as ColorTheme, r as HelpInfo, s as colorThemes, t as HelpDetail } from "./formatter-CY3KrOEd.mjs";
2
- import { $ as PadroneLogger, A as InterceptorParseResult, B as RegisteredInterceptor, C as InterceptorErrorContext, Ct as PadroneSpinnerPreset, D as InterceptorFactory, E as InterceptorExecuteResult, F as InterceptorValidateContext, G as OtelSpan, H as WrapResult, I as InterceptorValidateResult, J as PadroneTracer, K as OtelTracer, L as PadroneContextInterceptor, M as InterceptorRouteContext, N as InterceptorShutdownContext, O as InterceptorMeta, P as InterceptorStartContext, Q as PadroneLogLevel, R as PadroneInterceptor, S as InterceptorDefBuilder, St as PadroneSpinnerConfig, T as InterceptorExecuteContext, U as PadroneServePreferences, V as WrapConfig, W as PadroneMcpPreferences, X as WithTracing, Y as PadroneTracingConfig, Z as padroneTracing, _ as PadroneCommand, _t as PadroneProgressOptions, a as DefineCommandContext, at as PossibleCommands, b as ExtractInterceptorRequires, bt as PadroneRuntime, c as PadroneProgram, ct as WithInterceptor, d as PadroneParseResult, dt as InteractiveMode, et as PadroneLoggerConfig, f as PadroneReplPreferences, ft as InteractivePromptConfig, g as PadroneActionContext, gt as PadroneProgress, h as GetArgsMeta, ht as PadroneBarConfig, i as DefineCommandBuilder, it as PickCommandByName, j as InterceptorPhases, k as InterceptorParseContext, l as PadroneCommandResult, lt as AsyncPadroneSchema, m as CommandTypesBase, mt as PadroneBarChar, n as AnyPadroneProgram, nt as padroneLogger, o as PadroneBuilder, ot as WithAsync, p as AnyPadroneCommand, pt as PadroneBarAnimation, q as OtelTracerProvider, r as DefineCommand, rt as Drained, s as PadroneExtension, st as WithCommand, t as AnyPadroneBuilder, tt as WithLogger, u as PadroneDrainResult, ut as PadroneSchema, v as PadroneProgramMeta, vt as PadroneProgressShow, w as InterceptorErrorResult, wt as REPL_SIGINT, x as InterceptorBaseContext, xt as PadroneSignal, y as ExtractInterceptorContext, yt as PadroneProgressUpdate, z as PadroneInterceptorFn } from "./index-C3Ed1LYN.mjs";
3
- import { StandardSchemaV1 } from "@standard-schema/spec";
4
- import * as _$ink from "ink";
5
-
6
- //#region src/core/commands.d.ts
7
- /**
8
- * Builds a completer function for the REPL from the command tree.
9
- * Completes command names, subcommand names, option names (--foo), and aliases (-f).
10
- * Also includes dot-prefixed built-in REPL commands (.exit, .clear, .scope, .help, .history).
11
- */
12
- declare function buildReplCompleter(rootCommand: AnyPadroneCommand, builtins: {
13
- inScope?: boolean;
14
- }): (line: string) => [string[], string];
15
- //#endregion
16
- //#region src/extension/help.d.ts
17
- type HelpArgs = {
18
- command?: string[];
19
- detail?: HelpDetail;
20
- format?: HelpFormat;
21
- all?: boolean;
22
- };
23
- type HelpCommand = PadroneCommand<'help', '', PadroneSchema<HelpArgs>, string, [], ['h', ''], false>;
24
- type WithHelp<T> = WithCommand<T, 'help', HelpCommand>;
25
- /**
26
- * Extension that adds help support:
27
- * - `help` command with aliases `h` and `` (empty = executes on root when no subcommand matches)
28
- * - `--help` / `-h` flags
29
- * - `<cmd> help` reverse syntax
30
- * - Default help display when a command has no action
31
- *
32
- * Usage:
33
- * ```ts
34
- * createPadrone('my-cli').extend(padroneHelp())
35
- * ```
36
- */
37
- declare function padroneHelp(): <T extends CommandTypesBase>(builder: T) => WithHelp<T>;
38
- //#endregion
39
- //#region src/extension/version.d.ts
40
- type VersionCommand = PadroneCommand<'version', '', PadroneSchema<void>, string, [], [], false>;
41
- type WithVersion<T> = WithCommand<T, 'version', VersionCommand>;
42
- /**
43
- * Extension that adds version support:
44
- * - `version` command
45
- * - `--version` / `-v` / `-V` flags (root command only)
46
- *
47
- * Usage:
48
- * ```ts
49
- * createPadrone('my-cli').extend(padroneVersion())
50
- * ```
51
- */
52
- declare function padroneVersion(): <T extends CommandTypesBase>(builder: T) => WithVersion<T>;
53
- //#endregion
54
- //#region src/core/results.d.ts
55
- /**
56
- * Brands a schema as async, signaling that its `validate()` may return a Promise.
57
- * When an async-branded schema is passed to `.arguments()`, `.configFile()`, or `.env()`,
58
- * the command's `parse()` and `cli()` will return Promises.
59
- */
60
- declare function asyncSchema<T extends PadroneSchema>(schema: T): T & {
61
- '~async': true;
62
- };
63
- //#endregion
64
- //#region src/core/create.d.ts
65
- /**
66
- * Options for configuring which built-in extensions are applied by default.
67
- */
68
- type PadroneBuiltins = {
69
- /** Enable `help` command, `--help` / `-h` flags, and default help display. Defaults to `true`. */help?: boolean; /** Enable `version` command and `--version` / `-v` / `-V` flags. Defaults to `true`. */
70
- version?: boolean; /** Enable `repl` command and `--repl` flag. Defaults to `true`. */
71
- repl?: boolean; /** Enable `--color` / `--no-color` flag support. Defaults to `true`. */
72
- color?: boolean; /** Enable "Did you mean?" suggestions for unknown commands and options. Defaults to `true`. */
73
- suggestions?: boolean; /** Enable signal handling (SIGINT, SIGTERM, SIGHUP). Defaults to `true`. */
74
- signal?: boolean; /** Enable automatic result output for `cli()`. Defaults to `true`. */
75
- autoOutput?: boolean; /** Enable stdin piping support. Defaults to `true`. */
76
- stdin?: boolean; /** Enable interactive prompting for missing arguments. Defaults to `true`. */
77
- interactive?: boolean;
78
- };
79
- type PadroneOptions = {
80
- builtins?: PadroneBuiltins;
81
- };
82
- type DefaultBuiltins = {};
83
- type BuiltinCommands<B> = [...(B extends {
84
- help: false;
85
- } ? [] : [HelpCommand]), ...(B extends {
86
- version: false;
87
- } ? [] : [VersionCommand])];
88
- declare function createPadrone<TProgramName extends string, const TBuiltins extends PadroneBuiltins = DefaultBuiltins>(name: TProgramName, options?: {
89
- builtins?: TBuiltins;
90
- }): PadroneProgram<TProgramName, '', '', PadroneSchema<void>, void, BuiltinCommands<TBuiltins>>;
91
- /**
92
- * Identity helper that contextually types a command builder callback while preserving its full return type.
93
- * Use this when defining commands in separate files — the parent program retains exact type information
94
- * about the subcommand's args, result, and nested commands.
95
- *
96
- * The builder's context includes `DefineCommandContext` by default (optional `logger`, `tracing`, `progress`).
97
- * Override globally via module augmentation on `DefineCommandContext`, or per-command via `.requires()`.
98
- *
99
- * @example Direct form (most common)
100
- * ```ts
101
- * export const myCommand = defineCommand((c) =>
102
- * c.arguments(z.object({ name: z.string() }))
103
- * .action((args) => console.log(args.name))
104
- * );
105
- * ```
106
- *
107
- * @example With required interceptor context
108
- * ```ts
109
- * export const adminCommand = defineCommand()
110
- * .requires<{ adminDb: AdminDB }>()
111
- * .define((c) => c.action((_args, ctx) => ctx.context.adminDb.query(...)));
112
- * ```
113
- */
114
- declare function defineCommand<TContext = unknown, TOut extends CommandTypesBase = CommandTypesBase>(fn: (builder: PadroneBuilder<string, string, string, PadroneSchema<void>, void, [], any, false, TContext, DefineCommandContext>) => TOut): typeof fn;
115
- declare function defineCommand(): DefineCommandBuilder;
116
- //#endregion
117
- //#region src/core/errors.d.ts
118
- type PadroneErrorOptions = {
119
- /** Process exit code. Defaults to 1. */exitCode?: number; /** Actionable suggestions shown to the user (e.g. "Use --env production"). */
120
- suggestions?: string[]; /** The command path that produced the error (e.g. "deploy staging"). */
121
- command?: string; /** The phase where the error occurred. */
122
- phase?: 'parse' | 'validate' | 'execute' | 'config'; /** Original cause for error chaining. */
123
- cause?: unknown;
124
- };
125
- /**
126
- * Base error class for all Padrone errors.
127
- * Carries structured metadata for user-friendly formatting and programmatic handling.
128
- *
129
- * @example
130
- * ```ts
131
- * throw new PadroneError('Something went wrong', {
132
- * exitCode: 1,
133
- * suggestions: ['Try --help for usage information'],
134
- * });
135
- * ```
136
- */
137
- declare class PadroneError extends Error {
138
- readonly exitCode: number;
139
- readonly suggestions: string[];
140
- readonly command?: string;
141
- readonly phase?: 'parse' | 'validate' | 'execute' | 'config';
142
- constructor(message: string, options?: PadroneErrorOptions);
143
- /**
144
- * Returns a serializable representation of the error,
145
- * suitable for non-terminal runtimes (web UIs, APIs, etc.).
146
- */
147
- toJSON(): {
148
- name: string;
149
- message: string;
150
- exitCode: number;
151
- suggestions: string[];
152
- command?: string;
153
- phase?: string;
154
- };
155
- }
156
- /**
157
- * Thrown when command routing fails — unknown command, unexpected arguments, etc.
158
- */
159
- declare class RoutingError extends PadroneError {
160
- constructor(message: string, options?: PadroneErrorOptions);
161
- }
162
- /**
163
- * Thrown when argument or schema validation fails.
164
- * Carries the structured issues from the schema validator.
165
- */
166
- declare class ValidationError extends PadroneError {
167
- readonly issues: readonly {
168
- path?: PropertyKey[];
169
- message: string;
170
- }[];
171
- constructor(message: string, issues: readonly {
172
- path?: PropertyKey[];
173
- message: string;
174
- }[], options?: PadroneErrorOptions);
175
- toJSON(): {
176
- issues: {
177
- path: string[] | undefined;
178
- message: string;
179
- }[];
180
- name: string;
181
- message: string;
182
- exitCode: number;
183
- suggestions: string[];
184
- command?: string;
185
- phase?: string;
186
- };
187
- }
188
- /**
189
- * Thrown when config file loading or validation fails.
190
- */
191
- declare class ConfigError extends PadroneError {
192
- constructor(message: string, options?: PadroneErrorOptions);
193
- }
194
- /**
195
- * Thrown from user action handlers to surface structured errors with exit codes and suggestions.
196
- * This is the primary error class users should throw from their command actions.
197
- *
198
- * @example
199
- * ```ts
200
- * throw new ActionError('Missing environment', {
201
- * exitCode: 1,
202
- * suggestions: ['Use --env production or --env staging'],
203
- * });
204
- * ```
205
- */
206
- declare class ActionError extends PadroneError {
207
- constructor(message: string, options?: PadroneErrorOptions);
208
- }
209
- /**
210
- * Thrown when command execution is interrupted by a process signal (SIGINT, SIGTERM, SIGHUP).
211
- * Carries the signal name and the conventional exit code (128 + signal number).
212
- */
213
- declare class SignalError extends PadroneError {
214
- readonly signal: PadroneSignal;
215
- constructor(signal: PadroneSignal, options?: {
216
- cause?: unknown;
217
- });
218
- }
219
- //#endregion
220
- //#region src/core/interceptors.d.ts
221
- /**
222
- * Creates a self-contained interceptor value by attaching static metadata to the factory function.
223
- * The returned value can be passed directly to `.intercept()` or exported from a package.
224
- *
225
- * Two-arg form — define metadata and factory in one call:
226
- * ```ts
227
- * export const myInterceptor = defineInterceptor(
228
- * { name: 'my-interceptor', order: 10 },
229
- * () => ({
230
- * execute(ctx, next) { return next(); },
231
- * }),
232
- * );
233
- * ```
234
- *
235
- * Single-arg form — chain `.requires<T>()` for typed context, then `.factory()`:
236
- * ```ts
237
- * export const myInterceptor = defineInterceptor({ name: 'with-db' })
238
- * .requires<{ db: DB }>()
239
- * .factory(() => ({
240
- * execute(ctx, next) {
241
- * ctx.context.db; // typed!
242
- * return next();
243
- * },
244
- * }));
245
- * ```
246
- */
247
- declare function defineInterceptor<TArgs = unknown, TResult = unknown>(meta: InterceptorMeta, factory: InterceptorFactory<TArgs, TResult>): PadroneInterceptorFn<TArgs, TResult>;
248
- declare function defineInterceptor(meta: InterceptorMeta): InterceptorDefBuilder;
249
- //#endregion
250
- //#region src/output/styling.d.ts
251
- /**
252
- * Styling functions for semantic text roles.
253
- * Used by formatters to apply visual styles (ANSI, HTML, Markdown, etc.)
254
- * to different types of content.
255
- */
256
- type Styler = {
257
- command: (text: string) => string;
258
- arg: (text: string) => string;
259
- type: (text: string) => string;
260
- description: (text: string) => string;
261
- label: (text: string) => string;
262
- section: (text: string) => string;
263
- meta: (text: string) => string;
264
- example: (text: string) => string;
265
- exampleValue: (text: string) => string;
266
- deprecated: (text: string) => string;
267
- };
268
- /**
269
- * Layout configuration for formatters.
270
- */
271
- type LayoutConfig = {
272
- newline: string;
273
- indent: (level: number) => string;
274
- join: (parts: string[]) => string;
275
- wrapDocument?: (content: string) => string;
276
- };
277
- /** Resolved formatting context used by output primitives. */
278
- type OutputFormat = 'text' | 'ansi' | 'json' | 'markdown' | 'html';
279
- type OutputContext = {
280
- format: OutputFormat;
281
- styler: Styler;
282
- layout: LayoutConfig;
283
- terminalWidth?: number;
284
- };
285
- //#endregion
286
- //#region src/output/primitives.d.ts
287
- type TableOptions = {
288
- /** Explicit column keys to display (default: infer from first row's keys). */columns?: string[]; /** Column key → display header name mapping. */
289
- headers?: Record<string, string>; /** Column key → text alignment. */
290
- align?: Record<string, 'left' | 'right' | 'center'>; /** Maximum column width before truncation. */
291
- maxColumnWidth?: number; /** Show borders (default: true for ansi/text, false for others). */
292
- border?: boolean;
293
- };
294
- type TreeNode = {
295
- label: string;
296
- children?: TreeNode[];
297
- };
298
- type TreeOptions = {
299
- /** Characters per indent level (default: 2). */indent?: number; /** Show tree guide lines (default: true for ansi/text). */
300
- guides?: boolean;
301
- };
302
- type ListItem = string | {
303
- label: string;
304
- description?: string;
305
- };
306
- type ListOptions = {
307
- /** Bullet character (default: '•' for ansi, '-' for text). */bullet?: string; /** Use numbered list instead of bullets. */
308
- numbered?: boolean; /** Indent level (default: 0). */
309
- indent?: number;
310
- };
311
- type KeyValueOptions = {
312
- /** Separator between key and value (default: ': '). */separator?: string; /** Align values by padding keys to the same width. */
313
- align?: boolean; /** Key → display label mapping. */
314
- labels?: Record<string, string>;
315
- };
316
- //#endregion
317
- //#region src/output/output-indicator.d.ts
318
- /**
319
- * Runtime output helper injected into action context as `ctx.context.output`.
320
- * Provides format-aware output primitives (table, tree, list, key-value).
321
- *
322
- * Each method renders data using the resolved format (ANSI, text, JSON, markdown, HTML)
323
- * and writes it to the runtime's output function.
324
- */
325
- type PadroneOutputIndicator = {
326
- /** Render data as a table. */table(data: Record<string, unknown>[], options?: TableOptions): void; /** Render data as a tree. */
327
- tree(data: TreeNode | TreeNode[], options?: TreeOptions): void; /** Render data as a list. */
328
- list(data: ListItem[], options?: ListOptions): void; /** Render data as aligned key-value pairs. */
329
- kv(data: Record<string, unknown>, options?: KeyValueOptions): void; /** Write raw output (same as runtime.output but sets the "already called" flag). */
330
- raw(...args: unknown[]): void; /** Whether any output method has been called. */
331
- readonly called: boolean;
332
- };
333
- /** Declarative output configuration for a command. */
334
- type OutputPrimitiveType = 'table' | 'tree' | 'list' | 'kv' | 'json';
335
- type OutputConfig = OutputPrimitiveType | {
336
- type: OutputPrimitiveType;
337
- options?: TableOptions | TreeOptions | ListOptions | KeyValueOptions;
338
- };
339
- //#endregion
340
- //#region src/extension/auto-output.d.ts
341
- type PadroneAutoOutputOptions = {
342
- /** Disable auto-output entirely. */disabled?: boolean;
343
- /**
344
- * Declarative output format for the command's return value.
345
- * When set, auto-output formats the return value through the specified primitive
346
- * instead of passing it raw to `runtime.output`.
347
- * Ignored when the action calls `ctx.context.output.*` explicitly.
348
- *
349
- * ```ts
350
- * // Format return value as a table
351
- * c.extend(padroneAutoOutput({ output: 'table' }))
352
- *
353
- * // Format with options
354
- * c.extend(padroneAutoOutput({ output: { type: 'table', options: { border: false } } }))
355
- * ```
356
- */
357
- output?: OutputConfig;
358
- /**
359
- * Automatically print unhandled errors to stderr in CLI mode.
360
- * Skips errors already handled by other extensions (routing, validation, signal).
361
- * @default true
362
- */
363
- errorOutput?: boolean;
364
- };
365
- /**
366
- * Extension that automatically writes a command's return value to output after execution.
367
- *
368
- * - Values are passed directly to the runtime's `output` function (no stringification).
369
- * - Promises are awaited before output.
370
- * - Iterators and async iterators are consumed, outputting each yielded value as it arrives.
371
- * The result is replaced with the collected array so `drain()` still works.
372
- * - `undefined` and `null` results produce no output.
373
- *
374
- * Also injects `ctx.context.output` with format-aware output primitives (table, tree, list, kv).
375
- * When action handlers use these methods, auto-output skips to avoid double output.
376
- *
377
- * Included in the default extensions. Can also be applied per-command:
378
- * ```ts
379
- * createPadrone('my-cli')
380
- * .command('users', (c) =>
381
- * c.extend(padroneAutoOutput({ output: 'table' }))
382
- * .action(() => fetchUsers())
383
- * )
384
- * ```
385
- */
386
- declare function padroneAutoOutput(options?: PadroneAutoOutputOptions): <T extends CommandTypesBase>(builder: T) => T;
387
- //#endregion
388
- //#region src/extension/color.d.ts
389
- /**
390
- * Extension that handles `--color` / `--no-color` flags:
391
- * - `--color` or `--color=true` → use default theme
392
- * - `--color=false` or `--no-color` → disable colors (text format)
393
- * - `--color=<theme>` → use the named theme
394
- *
395
- * Modifies the runtime's format and theme accordingly.
396
- *
397
- * Usage:
398
- * ```ts
399
- * createPadrone('my-cli').extend(padroneColor())
400
- * ```
401
- */
402
- declare function padroneColor(): <T extends CommandTypesBase>(builder: T) => T;
403
- //#endregion
404
- //#region src/extension/completion.d.ts
405
- type CompletionArgs = {
406
- shell?: string;
407
- setup?: boolean;
408
- };
409
- type CompletionCommand = PadroneCommand<'completion', '', PadroneSchema<CompletionArgs>, string, [], [], true>;
410
- type WithCompletion<T> = WithCommand<T, 'completion', CompletionCommand>;
411
- /**
412
- * Extension that adds the `completion` command for shell completion script generation.
413
- *
414
- * Usage:
415
- * ```ts
416
- * createPadrone('my-cli').extend(padroneCompletion())
417
- * ```
418
- */
419
- declare function padroneCompletion(): <T extends CommandTypesBase>(builder: T) => WithCompletion<T>;
420
- //#endregion
421
- //#region src/extension/config.d.ts
422
- type PadroneConfigOptions = {
423
- /** Config file names to auto-detect (e.g. `['config.json', '.myapprc']`). First found is used. */files?: string | string[]; /** Schema to validate and transform config file data into the args shape. */
424
- schema?: StandardSchemaV1; /** Disable this extension. */
425
- disabled?: boolean; /** Whether to add `--config` / `-c` flag support. Defaults to `true`. */
426
- flag?: boolean; /** Whether subcommands inherit this interceptor. Defaults to `true`. */
427
- inherit?: boolean;
428
- /**
429
- * Search for config files in the user's platform-specific config directory.
430
- * - `true` — use the program name as the subdirectory (e.g. program `'myapp'` → `~/.config/myapp/`).
431
- * - `string` — use a custom app name as the subdirectory.
432
- * - `false` — disable (default).
433
- *
434
- * Directories searched (after cwd):
435
- * - **Linux**: `$XDG_CONFIG_HOME/<app>` or `~/.config/<app>`
436
- * - **macOS**: `~/Library/Application Support/<app>` (or `$XDG_CONFIG_HOME/<app>` when set)
437
- * - **Windows**: `%APPDATA%\<app>`
438
- *
439
- * Config files found in cwd always take precedence over XDG paths.
440
- */
441
- xdg?: string | boolean;
442
- /**
443
- * Custom config loader. When provided, replaces the built-in file system loader.
444
- * Useful for testing or non-CLI environments.
445
- */
446
- loadConfig?: (files: string | string[], xdgAppName?: string) => Record<string, unknown> | undefined | Promise<Record<string, unknown> | undefined>;
447
- };
448
- /**
449
- * Extension that handles config file loading, validation, and merging into command arguments.
450
- *
451
- * Features:
452
- * - `--config` / `-c` flag for explicit config file path (can be disabled via `flag: false`)
453
- * - Auto-detection of config files from a list of candidate names
454
- * - Optional schema validation and transformation of config data
455
- * - Directly accesses the file system (gracefully no-ops in non-CLI environments)
456
- *
457
- * Config values have the lowest precedence (CLI > stdin > env > config).
458
- *
459
- * Not included in the default built-in extensions — must be explicitly added:
460
- * ```ts
461
- * createPadrone('my-cli')
462
- * .extend(padroneConfig({
463
- * files: ['config.json', '.myapprc'],
464
- * schema: z.object({ port: z.number(), host: z.string() }),
465
- * }))
466
- * ```
467
- */
468
- declare function padroneConfig(options?: PadroneConfigOptions): <T extends CommandTypesBase>(builder: T) => WithAsync<T>;
469
- //#endregion
470
- //#region src/extension/env.d.ts
471
- type PadroneEnvOptions = {
472
- /** Env modes to load (e.g. `['production']`). Loads `.env.{mode}` files. */modes?: string[]; /** Whether to load `.env.local` and `.env.{mode}.local` files. @default true */
473
- local?: boolean; /** Directory to search for `.env` files. @default process.cwd() */
474
- dir?: string; /** When `true`, file values override `process.env` values. @default false */
475
- override?: boolean; /** When `false`, the base `.env` (and `.env.local`) files are not loaded. @default true */
476
- base?: boolean;
477
- };
478
- /**
479
- * Extension that reads environment variables, validates them against a schema,
480
- * and merges the transformed values into command arguments.
481
- *
482
- * Supports loading `.env` files with mode-based overrides and variable expansion.
483
- *
484
- * ```ts
485
- * // Schema only (reads process.env)
486
- * .extend(padroneEnv(
487
- * z.object({ PORT: z.string() }).transform(e => ({ port: Number(e.PORT) }))
488
- * ))
489
- *
490
- * // Schema + .env file loading
491
- * .extend(padroneEnv(
492
- * z.object({ PORT: z.string() }).transform(e => ({ port: Number(e.PORT) })),
493
- * { modes: ['production'] }
494
- * ))
495
- *
496
- * // .env file loading only (no schema validation)
497
- * .extend(padroneEnv({ modes: ['production'] }))
498
- * ```
499
- *
500
- * Env values have lower precedence than CLI args and stdin, but higher than config files.
501
- */
502
- declare function padroneEnv(schema: StandardSchemaV1): <T extends CommandTypesBase>(builder: T) => WithAsync<T>;
503
- declare function padroneEnv(schema: StandardSchemaV1, options: PadroneEnvOptions): <T extends CommandTypesBase>(builder: T) => WithAsync<T>;
504
- declare function padroneEnv(options: PadroneEnvOptions): <T extends CommandTypesBase>(builder: T) => WithAsync<T>;
505
- //#endregion
506
- //#region src/extension/ink.d.ts
507
- /** Checks whether a value is a React element (JSX) by inspecting its `$$typeof` symbol. */
508
- declare function isReactElement(value: unknown): boolean;
509
- type InkOptions = {
510
- /** Whether to wait for the Ink app to unmount before resolving. Defaults to `true`. */waitUntilExit?: boolean; /** Options forwarded to Ink's `render()`. */
511
- render?: _$ink.RenderOptions;
512
- };
513
- /**
514
- * Extension that renders React (Ink) components returned from command actions.
515
- *
516
- * When a command's action returns a React element (JSX), this extension
517
- * renders it using Ink instead of passing it to the normal output path.
518
- *
519
- * Requires `ink` and `react` as peer dependencies.
520
- *
521
- * ```ts
522
- * import { createPadrone, padroneInk } from 'padrone';
523
- *
524
- * const program = createPadrone('my-tui')
525
- * .extend(padroneInk())
526
- * .command('dashboard', (c) =>
527
- * c.action(() => <Dashboard />)
528
- * );
529
- * ```
530
- */
531
- declare function padroneInk(options?: InkOptions): <T extends CommandTypesBase>(builder: T) => T;
532
- //#endregion
533
- //#region src/extension/interactive.d.ts
534
- /**
535
- * Extension that handles interactive prompting for missing arguments.
536
- * Extracts `--interactive` / `-i` flags, resolves effective interactivity,
537
- * and prompts for missing fields before passing filled args to validation.
538
- *
539
- * Usage:
540
- * ```ts
541
- * createPadrone('my-cli').extend(padroneInteractive())
542
- * ```
543
- */
544
- declare function padroneInteractive(): <T extends CommandTypesBase>(builder: T) => T;
545
- //#endregion
546
- //#region src/extension/man.d.ts
547
- type ManArgs = {
548
- setup?: boolean;
549
- remove?: boolean;
550
- };
551
- type ManCommand = PadroneCommand<'man', '', PadroneSchema<ManArgs>, string, [], [], true>;
552
- type WithMan<T> = WithCommand<T, 'man', ManCommand>;
553
- /**
554
- * Extension that adds the `man` command for man page generation.
555
- *
556
- * Usage:
557
- * ```ts
558
- * createPadrone('my-cli').extend(padroneMan())
559
- * ```
560
- */
561
- declare function padroneMan(): <T extends CommandTypesBase>(builder: T) => WithMan<T>;
562
- //#endregion
563
- //#region src/extension/mcp.d.ts
564
- type McpArgs = {
565
- transport?: string;
566
- port?: string;
567
- host?: string;
568
- basePath?: string;
569
- };
570
- type McpCommand = PadroneCommand<'mcp', '', PadroneSchema<McpArgs>, void, [], [], true>;
571
- type WithMcp<T> = WithCommand<T, 'mcp', McpCommand>;
572
- /**
573
- * Extension that adds the `mcp` command for starting a Model Context Protocol server.
574
- *
575
- * Usage:
576
- * ```ts
577
- * createPadrone('my-cli').extend(padroneMcp())
578
- * ```
579
- */
580
- declare function padroneMcp(defaults?: PadroneMcpPreferences): <T extends CommandTypesBase>(builder: T) => WithMcp<T>;
581
- //#endregion
582
- //#region src/extension/progress-renderer.d.ts
583
- /** Factory function that creates a `PadroneProgress`. */
584
- type PadroneProgressRenderer = (message: string, options?: PadroneProgressOptions) => PadroneProgress;
585
- /**
586
- * Creates a terminal progress indicator (spinner, bar, or both).
587
- * Returns a no-op indicator in non-TTY/CI environments.
588
- */
589
- declare function createTerminalProgress(message: string, options?: PadroneProgressOptions): PadroneProgress;
590
- //#endregion
591
- //#region src/extension/progress.d.ts
592
- /** A progress message value: a plain string, `null` to suppress, or an object with a message and custom indicator icon. */
593
- type PadroneProgressMessage = string | null | {
594
- message?: string | null;
595
- indicator?: string;
596
- };
597
- /** Per-phase message configuration for progress indicators. */
598
- type PadroneProgressMessages<TRes = unknown> = {
599
- /** Message shown during async validation. Defaults to `''` (spinner only). */validation?: string; /** Message shown while the command's action is running. */
600
- progress?: string; /** Message shown when the command succeeds. `null` to suppress. Defaults to the `progress` message. */
601
- success?: PadroneProgressMessage | ((result: TRes) => PadroneProgressMessage); /** Message shown when the command fails. `null` to suppress. Defaults to the error message. */
602
- error?: PadroneProgressMessage | ((error: unknown) => PadroneProgressMessage);
603
- };
604
- /**
605
- * Progress indicator configuration with messages, visual options, and renderer.
606
- */
607
- type PadroneProgressConfig<TRes = unknown> = {
608
- /** Per-phase messages. A string sets the `progress` message; an object configures individual phases. */message?: string | PadroneProgressMessages<TRes>; /** Spinner configuration. Default `show` is `'auto'` (visible when bar is not shown). `true` forces spinner to always show (even alongside a bar). */
609
- spinner?: PadroneSpinnerConfig; /** Enable a progress bar. `true` for defaults (`show: 'always'`), or a `PadroneBarConfig` object. `false` to disable entirely. When omitted, bar defaults to `show: 'auto'`. */
610
- bar?: boolean | PadroneBarConfig; /** Show elapsed time since the indicator started. Can also be started on demand via `update({ time: true })`. */
611
- time?: boolean; /** Show estimated time remaining based on progress rate. Requires numeric `update()` calls. */
612
- eta?: boolean;
613
- /**
614
- * Custom renderer factory. Called to create the progress indicator.
615
- * Defaults to the built-in terminal renderer (`createTerminalProgress`).
616
- */
617
- renderer?: PadroneProgressRenderer; /** Suppress all progress output. The `progress` interface is still provided on the context as a no-op. */
618
- silent?: boolean;
619
- };
620
- /**
621
- * Shared progress defaults that can be provided via context instead of repeating
622
- * at each call site. Per-instance message fields are excluded — those always come
623
- * from the constructor argument.
624
- *
625
- * Provide via context as `{ progressConfig: PadroneProgressDefaults }`.
626
- */
627
- type PadroneProgressDefaults = Pick<PadroneProgressConfig, 'message' | 'spinner' | 'bar' | 'time' | 'eta' | 'renderer' | 'silent'>;
628
- /** Builder/program type after applying `padroneProgress()`. Adds `{ progress: PadroneProgress }` to the command context. */
629
- type WithProgress<T> = WithInterceptor<T, {
630
- progress: PadroneProgress;
631
- }>;
632
- /**
633
- * Extension that adds an auto-managed progress indicator to the command pipeline.
634
- *
635
- * - `string` — a single message used for all states.
636
- * - `PadroneProgressConfig` — separate messages for validation, progress, success, and error.
637
- *
638
- * The indicator is automatically started before validation, updated at each phase transition,
639
- * and stopped on success (`.succeed()`) or failure (`.fail()`).
640
- *
641
- * Provides `{ progress: PadroneProgress }` on the command context.
642
- * Access it in action handlers as `ctx.context.progress`.
643
- *
644
- * Uses the built-in terminal renderer by default. Pass a custom `renderer` for non-terminal
645
- * environments (web UIs, testing, etc).
646
- *
647
- * Usage:
648
- * ```ts
649
- * createPadrone('my-cli')
650
- * .command('sync', (c) =>
651
- * c.extend(padroneProgress('Syncing...'))
652
- * .action((_args, ctx) => {
653
- * ctx.context.progress.update('halfway');
654
- * })
655
- * )
656
- * ```
657
- */
658
- declare function padroneProgress<T extends CommandTypesBase>(config?: string | PadroneProgressConfig): (builder: T) => WithProgress<T>;
659
- //#endregion
660
- //#region src/extension/repl.d.ts
661
- type ReplArgs = {
662
- scope?: string;
663
- };
664
- type ReplCommand = PadroneCommand<'repl', '', PadroneSchema<ReplArgs>, void, [], [], true>;
665
- type WithRepl<T> = WithCommand<T, 'repl', ReplCommand>;
666
- /**
667
- * Extension that adds REPL support:
668
- * - `repl` command that starts an interactive REPL
669
- * - `--repl` flag that starts the REPL from any invocation
670
- *
671
- * Usage:
672
- * ```ts
673
- * createPadrone('my-cli').extend(padroneRepl())
674
- * ```
675
- */
676
- declare function padroneRepl(defaults?: PadroneReplPreferences & {
677
- disabled?: boolean;
678
- }): <T extends CommandTypesBase>(builder: T) => WithRepl<T>;
679
- //#endregion
680
- //#region src/extension/serve.d.ts
681
- type ServeArgs = {
682
- port?: string;
683
- host?: string;
684
- basePath?: string;
685
- };
686
- type ServeCommand = PadroneCommand<'serve', '', PadroneSchema<ServeArgs>, void, [], [], true>;
687
- type WithServe<T> = WithCommand<T, 'serve', ServeCommand>;
688
- /**
689
- * Extension that adds the `serve` command for starting a REST HTTP server.
690
- *
691
- * Usage:
692
- * ```ts
693
- * createPadrone('my-cli').extend(padroneServe())
694
- * ```
695
- */
696
- declare function padroneServe(defaults?: PadroneServePreferences): <T extends CommandTypesBase>(builder: T) => WithServe<T>;
697
- //#endregion
698
- //#region src/extension/signal.d.ts
699
- /**
700
- * Extension that wires process signal handling (SIGINT, SIGTERM, SIGHUP) into the interceptor lifecycle.
701
- *
702
- * - Creates an `AbortController` whose signal is propagated to all downstream phases.
703
- * - Subscribes to `runtime.onSignal` to forward OS signals to the abort controller.
704
- * - Implements SIGINT double-tap: two SIGINTs within 2 seconds force-exits the process.
705
- * - Attaches `signal` and `exitCode` to results and errors when interrupted.
706
- * - Cleans up the signal subscription on completion or failure.
707
- *
708
- * Included in the default extensions. Runs at order `-2000` (outermost).
709
- */
710
- declare function padroneSignalHandling(options?: {
711
- disabled?: boolean;
712
- }): <T extends CommandTypesBase>(builder: T) => T;
713
- //#endregion
714
- //#region src/extension/stdin.d.ts
715
- /**
716
- * Extension that reads stdin data into the argument field specified by `meta.stdin`.
717
- * Included by default via `createPadrone()`.
718
- *
719
- * Read mode is inferred from the schema type:
720
- * - `string` field → reads all stdin as a single string
721
- * - `string[]` field → reads stdin line-by-line into an array
722
- * - `AsyncIterable` field → returns a stream for line-by-line async consumption
723
- *
724
- * Stdin is only read when piped (not a TTY) and the field wasn't already provided via CLI flags.
725
- */
726
- declare function padroneStdin(options?: {
727
- disabled?: boolean;
728
- }): <T extends CommandTypesBase>(builder: T) => T;
729
- //#endregion
730
- //#region src/extension/suggestions.d.ts
731
- declare function padroneSuggestions(): <T extends CommandTypesBase>(builder: T) => T;
732
- //#endregion
733
- //#region src/extension/timing.d.ts
734
- interface PadroneTimingOptions {
735
- /** Enable timing by default without requiring `--time` flag. Default: `false`. */
736
- enabled?: boolean;
737
- }
738
- /**
739
- * Extension that tracks command execution time.
740
- *
741
- * - `--time` / `--timing` → enables timing output
742
- * - `--no-time` / `--no-timing` → disables timing output
743
- *
744
- * Pass `{ enabled: true }` to enable timing by default (can be disabled via `--no-time`).
745
- *
746
- * Usage:
747
- * ```ts
748
- * // Opt-in via flag
749
- * createPadrone('my-cli').extend(padroneTiming())
750
- *
751
- * // Always on, opt-out via --no-time
752
- * createPadrone('my-cli').extend(padroneTiming({ enabled: true }))
753
- * ```
754
- */
755
- declare function padroneTiming(options?: PadroneTimingOptions): <T extends CommandTypesBase>(builder: T) => T;
756
- //#endregion
757
- //#region src/feature/update-check.d.ts
758
- /**
759
- * Configuration for the update check feature.
760
- */
761
- type UpdateCheckConfig = {
762
- /**
763
- * The npm package name to check. Defaults to the program name.
764
- */
765
- packageName?: string;
766
- /**
767
- * Registry to check for updates.
768
- * - `'npm'` — checks the npm registry (default)
769
- * - A URL string — custom registry endpoint that returns JSON with a `version` or `dist-tags.latest` field
770
- */
771
- registry?: 'npm' | string;
772
- /**
773
- * How often to check for updates. Accepts shorthand like `'1d'`, `'12h'`, `'30m'`.
774
- * Defaults to `'1d'` (once per day).
775
- */
776
- interval?: string;
777
- /**
778
- * Path to the cache file for storing the last check timestamp and latest version.
779
- * Defaults to `~/.config/<programName>-update-check.json`.
780
- */
781
- cache?: string;
782
- /**
783
- * Environment variable name to disable update checks (e.g. `'MYAPP_NO_UPDATE_CHECK'`).
784
- * When set to a truthy value, update checks are skipped.
785
- * Defaults to `'<PROGRAM_NAME>_NO_UPDATE_CHECK'` (uppercased, hyphens to underscores).
786
- */
787
- disableEnvVar?: string;
788
- };
789
- //#endregion
790
- //#region src/extension/update-check.d.ts
791
- /**
792
- * Extension that adds background update checking:
793
- * - Checks for newer versions on npm (or custom registry) in the background
794
- * - Shows an update notification after command execution
795
- * - Respects `--no-update-check` flag to suppress
796
- *
797
- * Usage:
798
- * ```ts
799
- * createPadrone('my-cli')
800
- * .extend(padroneUpdateCheck({ packageName: 'my-cli' }))
801
- * ```
802
- */
803
- declare function padroneUpdateCheck(config?: UpdateCheckConfig): <T extends CommandTypesBase>(builder: T) => T;
804
- //#endregion
805
- //#region src/util/stream.d.ts
806
- interface AsyncStreamMeta {
807
- [x: string]: unknown;
808
- readonly asyncStream: number;
809
- readonly itemSchema?: StandardSchemaV1;
810
- }
811
- /**
812
- * Returns metadata to mark a schema field as an async stream via `.meta()`.
813
- *
814
- * When used with `stdin`, padrone pipes stdin data as an `AsyncIterable` instead of
815
- * buffering it. Each line is validated against the item schema (if provided) as it arrives.
816
- *
817
- * @param itemSchema - Optional item schema for per-item validation.
818
- * Non-string schemas cause each stdin line to be `JSON.parse`'d before validation.
819
- *
820
- * @example
821
- * ```ts
822
- * import { asyncStream } from 'padrone';
823
- *
824
- * // String lines
825
- * z.object({ lines: z.custom<AsyncIterable<string>>().meta(asyncStream()) })
826
- *
827
- * // Typed items — each line JSON.parse'd and validated
828
- * z.object({ records: z.custom<AsyncIterable<{ name: string }>>().meta(asyncStream(recordSchema)) })
829
- * ```
830
- */
831
- declare function asyncStream<T = string>(itemSchema?: PadroneSchema<T>): AsyncStreamMeta;
832
- //#endregion
833
- //#region src/util/type-helpers.d.ts
834
- /**
835
- * Extracts the input type of the arguments schema from a command.
836
- * @example
837
- * ```ts
838
- * type Args = InferArgsInput<typeof myCommand>;
839
- * ```
840
- */
841
- type InferArgsInput<T extends AnyPadroneCommand> = T['~types']['argsInput'];
842
- /**
843
- * Extracts the output type of the arguments schema from a command.
844
- * @example
845
- * ```ts
846
- * type Args = InferArgsOutput<typeof myCommand>;
847
- * ```
848
- */
849
- type InferArgsOutput<T extends AnyPadroneCommand> = T['~types']['argsOutput'];
850
- /**
851
- * Extracts the user-defined context type from a command (excludes interceptor-provided context).
852
- * @example
853
- * ```ts
854
- * type Ctx = InferContext<typeof myCommand>;
855
- * ```
856
- */
857
- type InferContext<T extends AnyPadroneCommand> = T['~types']['context'];
858
- /**
859
- * Extracts the interceptor-provided context type from a command.
860
- * @example
861
- * ```ts
862
- * type Provided = InferContextProvided<typeof myCommand>;
863
- * ```
864
- */
865
- type InferContextProvided<T extends AnyPadroneCommand> = T['~types']['contextProvided'];
866
- /**
867
- * Extracts the context type that a context-providing interceptor injects.
868
- * @example
869
- * ```ts
870
- * type AuthCtx = InferInterceptorContext<typeof withAuth>;
871
- * ```
872
- */
873
- type InferInterceptorContext<T extends PadroneContextInterceptor<any>> = T['~context'];
874
- /**
875
- * Extracts the required context type from an interceptor with `.requires()`.
876
- * @example
877
- * ```ts
878
- * type Requires = InferInterceptorRequires<typeof withAuth>;
879
- * ```
880
- */
881
- type InferInterceptorRequires<T extends PadroneInterceptorFn & {
882
- '~contextRequires': any;
883
- }> = T['~contextRequires'] extends ((ctx: infer R) => void) ? R : unknown;
884
- /**
885
- * Gets a command type by its path from a program or command tree.
886
- * Supports both full paths (e.g., "config set") and alias paths.
887
- * @example
888
- * ```ts
889
- * const program = createPadrone('cli')
890
- * .command('config', c => c
891
- * .command('set', c => c.arguments(...).action(...))
892
- * .command('get', c => c.arguments(...).action(...))
893
- * );
894
- *
895
- * type SetCommand = InferCommand<typeof program, 'config set'>;
896
- * type GetCommand = InferCommand<typeof program, 'config get'>;
897
- * ```
898
- */
899
- type InferCommand<T extends AnyPadroneCommand | AnyPadroneProgram, TPath extends PossibleCommands<T extends AnyPadroneCommand ? [T] : T['~types']['commands'], true, true>> = T extends AnyPadroneProgram ? PickCommandByName<[PadroneCommand<'', '', any, any, T['~types']['commands']>], TPath> : T extends AnyPadroneCommand ? PickCommandByName<[T], TPath> : never;
900
- //#endregion
901
- export { ActionError, type AnsiStyle, type AnyPadroneBuilder, type AnyPadroneCommand, type AnyPadroneProgram, type AsyncPadroneSchema, type AsyncStreamMeta, type ColorConfig, type ColorTheme, type CommandTypesBase, ConfigError, type DefineCommand, type DefineCommandBuilder, type DefineCommandContext, type Drained, type ExtractInterceptorContext, type ExtractInterceptorRequires, type GetArgsMeta, type HelpCommand, type HelpDetail, type HelpFormat, type HelpInfo, type InferArgsInput, type InferArgsOutput, type InferCommand, type InferContext, type InferContextProvided, type InferInterceptorContext, type InferInterceptorRequires, type InkOptions, type InteractiveMode, type InteractivePromptConfig, type InterceptorBaseContext, type InterceptorDefBuilder, type InterceptorErrorContext, type InterceptorErrorResult, type InterceptorExecuteContext, type InterceptorExecuteResult, type InterceptorFactory, type InterceptorMeta, type InterceptorParseContext, type InterceptorParseResult, type InterceptorPhases, type InterceptorRouteContext, type InterceptorShutdownContext, type InterceptorStartContext, type InterceptorValidateContext, type InterceptorValidateResult, type KeyValueOptions, type ListItem, type ListOptions, type OtelSpan, type OtelTracer, type OtelTracerProvider, type OutputContext, type OutputFormat, type PadroneActionContext, type PadroneBarAnimation, type PadroneBarChar, type PadroneBarConfig, type PadroneBuilder, type PadroneCommand, type PadroneCommandResult, type PadroneContextInterceptor, type PadroneDrainResult, PadroneError, type PadroneErrorOptions, type PadroneExtension, type PadroneInterceptor, type PadroneInterceptorFn, type PadroneLogLevel, type PadroneLogger, type PadroneLoggerConfig, type PadroneMcpPreferences, type PadroneOptions, type PadroneOutputIndicator, type PadroneParseResult, type PadroneProgram, type PadroneProgramMeta, type PadroneProgress, type PadroneProgressConfig, type PadroneProgressDefaults, type PadroneProgressMessage, type PadroneProgressMessages, type PadroneProgressOptions, type PadroneProgressRenderer, type PadroneProgressShow, type PadroneProgressUpdate, type PadroneRuntime, type PadroneSchema, type PadroneSignal, type PadroneSpinnerConfig, type PadroneSpinnerPreset, type PadroneTracer, type PadroneTracingConfig, REPL_SIGINT, type RegisteredInterceptor, RoutingError, SignalError, type TableOptions, type TreeNode, type TreeOptions, type UpdateCheckConfig, ValidationError, type VersionCommand, type WithAsync, type WithCompletion, type WithHelp, type WithLogger, type WithMan, type WithMcp, type WithProgress, type WithRepl, type WithServe, type WithTracing, type WithVersion, type WrapConfig, type WrapResult, asyncSchema, asyncStream, buildReplCompleter, colorThemes, createPadrone, createTerminalProgress, defineCommand, defineInterceptor, isReactElement, padroneAutoOutput, padroneColor, padroneCompletion, padroneConfig, padroneEnv, padroneHelp, padroneInk, padroneInteractive, padroneLogger, padroneMan, padroneMcp, padroneProgress, padroneRepl, padroneServe, padroneSignalHandling, padroneStdin, padroneSuggestions, padroneTiming, padroneTracing, padroneUpdateCheck, padroneVersion };
902
- //# sourceMappingURL=index.d.mts.map
1
+ import { AnsiStyle, ColorConfig, ColorTheme, colorThemes } from "./output/colorizer.mjs";
2
+ import { HelpDetail, HelpFormat, HelpInfo } from "./output/formatter.mjs";
3
+ import { InteractiveMode, InteractivePromptConfig, PadroneBarAnimation, PadroneBarChar, PadroneBarConfig, PadroneProgress, PadroneProgressOptions, PadroneProgressShow, PadroneProgressUpdate, PadroneRuntime, PadroneSignal, PadroneSpinnerConfig, PadroneSpinnerPreset, REPL_SIGINT } from "./core/runtime.mjs";
4
+ import { AsyncPadroneSchema, PadroneSchema } from "./types/schema.mjs";
5
+ import { Drained, WithAsync } from "./util/type-utils.mjs";
6
+ import { PadroneLogLevel, PadroneLogger, PadroneLoggerConfig, WithLogger, padroneLogger } from "./extension/logger.mjs";
7
+ import { WrapConfig, WrapResult } from "./feature/wrap.mjs";
8
+ import { ExtractInterceptorContext, ExtractInterceptorRequires, InterceptorBaseContext, InterceptorDefBuilder, InterceptorErrorContext, InterceptorErrorResult, InterceptorExecuteContext, InterceptorExecuteResult, InterceptorFactory, InterceptorMeta, InterceptorParseContext, InterceptorParseResult, InterceptorPhases, InterceptorRouteContext, InterceptorShutdownContext, InterceptorStartContext, InterceptorValidateContext, InterceptorValidateResult, PadroneContextInterceptor, PadroneInterceptor, PadroneInterceptorFn, RegisteredInterceptor } from "./types/interceptor.mjs";
9
+ import { AnyPadroneCommand, CommandTypesBase, GetArgsMeta, PadroneActionContext, PadroneCommand, PadroneProgramMeta } from "./types/command.mjs";
10
+ import { PadroneCommandResult, PadroneDrainResult, PadroneParseResult } from "./types/result.mjs";
11
+ import { AnyPadroneBuilder, AnyPadroneProgram, DefineCommand, DefineCommandBuilder, DefineCommandContext, PadroneBuilder, PadroneExtension, PadroneProgram } from "./types/builder.mjs";
12
+ import { buildReplCompleter } from "./core/commands.mjs";
13
+ import { HelpCommand, WithHelp, padroneHelp } from "./extension/help.mjs";
14
+ import { VersionCommand, WithVersion, padroneVersion } from "./extension/version.mjs";
15
+ import { asyncSchema } from "./core/results.mjs";
16
+ import { PadroneOptions, createPadrone, defineCommand } from "./core/create.mjs";
17
+ import { ActionError, ConfigError, PadroneError, PadroneErrorOptions, RoutingError, SignalError, ValidationError } from "./core/errors.mjs";
18
+ import { defineInterceptor } from "./core/interceptors.mjs";
19
+ import { OutputContext, OutputFormat } from "./output/styling.mjs";
20
+ import { KeyValueOptions, ListItem, ListOptions, TableOptions, TreeNode, TreeOptions } from "./output/primitives.mjs";
21
+ import { PadroneOutputIndicator } from "./output/output-indicator.mjs";
22
+ import { padroneAutoOutput } from "./extension/auto-output.mjs";
23
+ import { padroneColor } from "./extension/color.mjs";
24
+ import { padroneConfig } from "./extension/config.mjs";
25
+ import { padroneEnv } from "./extension/env.mjs";
26
+ import { padroneInteractive } from "./extension/interactive.mjs";
27
+ import { PadroneProgressRenderer, createTerminalProgress } from "./extension/progress-renderer.mjs";
28
+ import { PadroneProgressConfig, PadroneProgressDefaults, PadroneProgressMessage, PadroneProgressMessages, WithProgress, padroneProgress } from "./extension/progress.mjs";
29
+ import { WithRepl, padroneRepl } from "./extension/repl.mjs";
30
+ import { padroneSignalHandling } from "./extension/signal.mjs";
31
+ import { padroneStdin } from "./extension/stdin.mjs";
32
+ import { padroneSuggestions } from "./extension/suggestions.mjs";
33
+ import { padroneTiming } from "./extension/timing.mjs";
34
+ import { UpdateCheckConfig } from "./feature/update-check.mjs";
35
+ import { padroneUpdateCheck } from "./extension/update-check.mjs";
36
+ import { AsyncStreamMeta, asyncStream } from "./util/stream.mjs";
37
+ import { InferArgsInput, InferArgsOutput, InferCommand, InferContext, InferContextProvided, InferInterceptorContext, InferInterceptorRequires } from "./util/type-helpers.mjs";
38
+ export { ActionError, type AnsiStyle, type AnyPadroneBuilder, type AnyPadroneCommand, type AnyPadroneProgram, type AsyncPadroneSchema, type AsyncStreamMeta, type ColorConfig, type ColorTheme, type CommandTypesBase, ConfigError, type DefineCommand, type DefineCommandBuilder, type DefineCommandContext, type Drained, type ExtractInterceptorContext, type ExtractInterceptorRequires, type GetArgsMeta, type HelpCommand, type HelpDetail, type HelpFormat, type HelpInfo, type InferArgsInput, type InferArgsOutput, type InferCommand, type InferContext, type InferContextProvided, type InferInterceptorContext, type InferInterceptorRequires, type InteractiveMode, type InteractivePromptConfig, type InterceptorBaseContext, type InterceptorDefBuilder, type InterceptorErrorContext, type InterceptorErrorResult, type InterceptorExecuteContext, type InterceptorExecuteResult, type InterceptorFactory, type InterceptorMeta, type InterceptorParseContext, type InterceptorParseResult, type InterceptorPhases, type InterceptorRouteContext, type InterceptorShutdownContext, type InterceptorStartContext, type InterceptorValidateContext, type InterceptorValidateResult, type KeyValueOptions, type ListItem, type ListOptions, type OutputContext, type OutputFormat, type PadroneActionContext, type PadroneBarAnimation, type PadroneBarChar, type PadroneBarConfig, type PadroneBuilder, type PadroneCommand, type PadroneCommandResult, type PadroneContextInterceptor, type PadroneDrainResult, PadroneError, type PadroneErrorOptions, type PadroneExtension, type PadroneInterceptor, type PadroneInterceptorFn, type PadroneLogLevel, type PadroneLogger, type PadroneLoggerConfig, type PadroneOptions, type PadroneOutputIndicator, type PadroneParseResult, type PadroneProgram, type PadroneProgramMeta, type PadroneProgress, type PadroneProgressConfig, type PadroneProgressDefaults, type PadroneProgressMessage, type PadroneProgressMessages, type PadroneProgressOptions, type PadroneProgressRenderer, type PadroneProgressShow, type PadroneProgressUpdate, type PadroneRuntime, type PadroneSchema, type PadroneSignal, type PadroneSpinnerConfig, type PadroneSpinnerPreset, REPL_SIGINT, type RegisteredInterceptor, RoutingError, SignalError, type TableOptions, type TreeNode, type TreeOptions, type UpdateCheckConfig, ValidationError, type VersionCommand, type WithAsync, type WithHelp, type WithLogger, type WithProgress, type WithRepl, type WithVersion, type WrapConfig, type WrapResult, asyncSchema, asyncStream, buildReplCompleter, colorThemes, createPadrone, createTerminalProgress, defineCommand, defineInterceptor, padroneAutoOutput, padroneColor, padroneConfig, padroneEnv, padroneHelp, padroneInteractive, padroneLogger, padroneProgress, padroneRepl, padroneSignalHandling, padroneStdin, padroneSuggestions, padroneTiming, padroneUpdateCheck, padroneVersion };