track-cli 3.0.0-rc

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 (224) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +3 -0
  3. package/esm/_dnt.polyfills.d.ts +6 -0
  4. package/esm/_dnt.polyfills.js +1 -0
  5. package/esm/_dnt.shims.d.ts +19 -0
  6. package/esm/_dnt.shims.js +78 -0
  7. package/esm/deps/deno.land/std@0.170.0/fmt/colors.d.ts +270 -0
  8. package/esm/deps/deno.land/std@0.170.0/fmt/colors.js +473 -0
  9. package/esm/deps/deno.land/std@0.195.0/_util/os.d.ts +4 -0
  10. package/esm/deps/deno.land/std@0.195.0/_util/os.js +18 -0
  11. package/esm/deps/deno.land/std@0.195.0/assert/assert.d.ts +2 -0
  12. package/esm/deps/deno.land/std@0.195.0/assert/assert.js +8 -0
  13. package/esm/deps/deno.land/std@0.195.0/assert/assertion_error.d.ts +4 -0
  14. package/esm/deps/deno.land/std@0.195.0/assert/assertion_error.js +12 -0
  15. package/esm/deps/deno.land/std@0.195.0/datetime/_common.d.ts +50 -0
  16. package/esm/deps/deno.land/std@0.195.0/datetime/_common.js +545 -0
  17. package/esm/deps/deno.land/std@0.195.0/datetime/constants.d.ts +55 -0
  18. package/esm/deps/deno.land/std@0.195.0/datetime/constants.js +57 -0
  19. package/esm/deps/deno.land/std@0.195.0/datetime/day_of_year.d.ts +26 -0
  20. package/esm/deps/deno.land/std@0.195.0/datetime/day_of_year.js +45 -0
  21. package/esm/deps/deno.land/std@0.195.0/datetime/difference.d.ts +38 -0
  22. package/esm/deps/deno.land/std@0.195.0/datetime/difference.js +93 -0
  23. package/esm/deps/deno.land/std@0.195.0/datetime/format.d.ts +22 -0
  24. package/esm/deps/deno.land/std@0.195.0/datetime/format.js +28 -0
  25. package/esm/deps/deno.land/std@0.195.0/datetime/is_leap.d.ts +49 -0
  26. package/esm/deps/deno.land/std@0.195.0/datetime/is_leap.js +60 -0
  27. package/esm/deps/deno.land/std@0.195.0/datetime/mod.d.ts +43 -0
  28. package/esm/deps/deno.land/std@0.195.0/datetime/mod.js +45 -0
  29. package/esm/deps/deno.land/std@0.195.0/datetime/parse.d.ts +21 -0
  30. package/esm/deps/deno.land/std@0.195.0/datetime/parse.js +29 -0
  31. package/esm/deps/deno.land/std@0.195.0/datetime/to_imf.d.ts +17 -0
  32. package/esm/deps/deno.land/std@0.195.0/datetime/to_imf.js +44 -0
  33. package/esm/deps/deno.land/std@0.195.0/datetime/week_of_year.d.ts +13 -0
  34. package/esm/deps/deno.land/std@0.195.0/datetime/week_of_year.js +38 -0
  35. package/esm/deps/deno.land/std@0.195.0/fmt/colors.d.ts +270 -0
  36. package/esm/deps/deno.land/std@0.195.0/fmt/colors.js +474 -0
  37. package/esm/deps/deno.land/std@0.195.0/fmt/duration.d.ts +15 -0
  38. package/esm/deps/deno.land/std@0.195.0/fmt/duration.js +96 -0
  39. package/esm/deps/deno.land/std@0.195.0/fs/_util.d.ts +35 -0
  40. package/esm/deps/deno.land/std@0.195.0/fs/_util.js +80 -0
  41. package/esm/deps/deno.land/std@0.195.0/fs/copy.d.ts +51 -0
  42. package/esm/deps/deno.land/std@0.195.0/fs/copy.js +244 -0
  43. package/esm/deps/deno.land/std@0.195.0/fs/empty_dir.d.ts +31 -0
  44. package/esm/deps/deno.land/std@0.195.0/fs/empty_dir.js +74 -0
  45. package/esm/deps/deno.land/std@0.195.0/fs/ensure_dir.d.ts +27 -0
  46. package/esm/deps/deno.land/std@0.195.0/fs/ensure_dir.js +55 -0
  47. package/esm/deps/deno.land/std@0.195.0/fs/ensure_file.d.ts +33 -0
  48. package/esm/deps/deno.land/std@0.195.0/fs/ensure_file.js +75 -0
  49. package/esm/deps/deno.land/std@0.195.0/fs/ensure_link.d.ts +31 -0
  50. package/esm/deps/deno.land/std@0.195.0/fs/ensure_link.js +43 -0
  51. package/esm/deps/deno.land/std@0.195.0/fs/ensure_symlink.d.ts +17 -0
  52. package/esm/deps/deno.land/std@0.195.0/fs/ensure_symlink.js +68 -0
  53. package/esm/deps/deno.land/std@0.195.0/fs/eol.d.ts +40 -0
  54. package/esm/deps/deno.land/std@0.195.0/fs/eol.js +53 -0
  55. package/esm/deps/deno.land/std@0.195.0/fs/exists.d.ts +102 -0
  56. package/esm/deps/deno.land/std@0.195.0/fs/exists.js +163 -0
  57. package/esm/deps/deno.land/std@0.195.0/fs/expand_glob.d.ts +37 -0
  58. package/esm/deps/deno.land/std@0.195.0/fs/expand_glob.js +216 -0
  59. package/esm/deps/deno.land/std@0.195.0/fs/mod.d.ts +16 -0
  60. package/esm/deps/deno.land/std@0.195.0/fs/mod.js +17 -0
  61. package/esm/deps/deno.land/std@0.195.0/fs/move.d.ts +29 -0
  62. package/esm/deps/deno.land/std@0.195.0/fs/move.js +88 -0
  63. package/esm/deps/deno.land/std@0.195.0/fs/walk.d.ts +40 -0
  64. package/esm/deps/deno.land/std@0.195.0/fs/walk.js +158 -0
  65. package/esm/deps/deno.land/std@0.195.0/path/_constants.d.ts +39 -0
  66. package/esm/deps/deno.land/std@0.195.0/path/_constants.js +46 -0
  67. package/esm/deps/deno.land/std@0.195.0/path/_interface.d.ts +26 -0
  68. package/esm/deps/deno.land/std@0.195.0/path/_interface.js +3 -0
  69. package/esm/deps/deno.land/std@0.195.0/path/_util.d.ts +11 -0
  70. package/esm/deps/deno.land/std@0.195.0/path/_util.js +161 -0
  71. package/esm/deps/deno.land/std@0.195.0/path/common.d.ts +13 -0
  72. package/esm/deps/deno.land/std@0.195.0/path/common.js +36 -0
  73. package/esm/deps/deno.land/std@0.195.0/path/glob.d.ts +83 -0
  74. package/esm/deps/deno.land/std@0.195.0/path/glob.js +361 -0
  75. package/esm/deps/deno.land/std@0.195.0/path/mod.d.ts +9 -0
  76. package/esm/deps/deno.land/std@0.195.0/path/mod.js +33 -0
  77. package/esm/deps/deno.land/std@0.195.0/path/posix.d.ts +86 -0
  78. package/esm/deps/deno.land/std@0.195.0/path/posix.js +442 -0
  79. package/esm/deps/deno.land/std@0.195.0/path/separator.d.ts +2 -0
  80. package/esm/deps/deno.land/std@0.195.0/path/separator.js +5 -0
  81. package/esm/deps/deno.land/std@0.195.0/path/win32.d.ts +91 -0
  82. package/esm/deps/deno.land/std@0.195.0/path/win32.js +909 -0
  83. package/esm/deps/deno.land/x/cliffy@v0.25.7/_utils/distance.d.ts +1 -0
  84. package/esm/deps/deno.land/x/cliffy@v0.25.7/_utils/distance.js +26 -0
  85. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/_errors.d.ts +76 -0
  86. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/_errors.js +154 -0
  87. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/_utils.d.ts +32 -0
  88. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/_utils.js +105 -0
  89. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/command.d.ts +831 -0
  90. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/command.js +1701 -0
  91. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/_bash_completions_generator.d.ts +17 -0
  92. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/_bash_completions_generator.js +201 -0
  93. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/_fish_completions_generator.d.ts +14 -0
  94. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/_fish_completions_generator.js +141 -0
  95. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/_zsh_completions_generator.d.ts +21 -0
  96. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/_zsh_completions_generator.js +285 -0
  97. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/bash.d.ts +6 -0
  98. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/bash.js +38 -0
  99. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/complete.d.ts +8 -0
  100. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/complete.js +32 -0
  101. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/fish.d.ts +6 -0
  102. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/fish.js +38 -0
  103. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/mod.d.ts +6 -0
  104. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/mod.js +46 -0
  105. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/zsh.d.ts +6 -0
  106. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/completions/zsh.js +38 -0
  107. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/deprecated.d.ts +45 -0
  108. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/deprecated.js +2 -0
  109. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/deps.d.ts +1 -0
  110. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/deps.js +1 -0
  111. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/help/_help_generator.d.ts +27 -0
  112. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/help/_help_generator.js +323 -0
  113. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/help/mod.d.ts +6 -0
  114. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/help/mod.js +34 -0
  115. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/mod.d.ts +18 -0
  116. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/mod.js +17 -0
  117. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/type.d.ts +41 -0
  118. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/type.js +24 -0
  119. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/action_list.d.ts +9 -0
  120. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/action_list.js +20 -0
  121. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/boolean.d.ts +9 -0
  122. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/boolean.js +13 -0
  123. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/child_command.d.ts +9 -0
  124. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/child_command.js +27 -0
  125. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/command.d.ts +7 -0
  126. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/command.js +9 -0
  127. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/enum.d.ts +10 -0
  128. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/enum.js +29 -0
  129. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/file.d.ts +5 -0
  130. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/file.js +12 -0
  131. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/integer.d.ts +7 -0
  132. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/integer.js +9 -0
  133. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/number.d.ts +7 -0
  134. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/number.js +9 -0
  135. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/string.d.ts +7 -0
  136. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types/string.js +9 -0
  137. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types.d.ts +118 -0
  138. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/types.js +2 -0
  139. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/mod.d.ts +5 -0
  140. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/mod.js +5 -0
  141. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider/deno_land.d.ts +14 -0
  142. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider/deno_land.js +46 -0
  143. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider/github.d.ts +26 -0
  144. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider/github.js +118 -0
  145. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider/nest_land.d.ts +14 -0
  146. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider/nest_land.js +55 -0
  147. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider.d.ts +27 -0
  148. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/provider.js +102 -0
  149. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/upgrade_command.d.ts +17 -0
  150. package/esm/deps/deno.land/x/cliffy@v0.25.7/command/upgrade/upgrade_command.js +75 -0
  151. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/_errors.d.ts +60 -0
  152. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/_errors.js +117 -0
  153. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/_utils.d.ts +18 -0
  154. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/_utils.js +106 -0
  155. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/_validate_flags.d.ts +10 -0
  156. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/_validate_flags.js +157 -0
  157. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/deprecated.d.ts +24 -0
  158. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/deprecated.js +9 -0
  159. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/flags.d.ts +33 -0
  160. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/flags.js +402 -0
  161. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/boolean.d.ts +3 -0
  162. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/boolean.js +11 -0
  163. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/integer.d.ts +3 -0
  164. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/integer.js +9 -0
  165. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/number.d.ts +3 -0
  166. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/number.js +9 -0
  167. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/string.d.ts +3 -0
  168. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types/string.js +4 -0
  169. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types.d.ts +59 -0
  170. package/esm/deps/deno.land/x/cliffy@v0.25.7/flags/types.js +1 -0
  171. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/border.d.ts +20 -0
  172. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/border.js +18 -0
  173. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/cell.d.ts +78 -0
  174. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/cell.js +128 -0
  175. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/deps.d.ts +1 -0
  176. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/deps.js +1 -0
  177. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/layout.d.ts +99 -0
  178. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/layout.js +529 -0
  179. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/row.d.ts +49 -0
  180. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/row.js +74 -0
  181. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/table.d.ts +135 -0
  182. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/table.js +237 -0
  183. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/utils.d.ts +13 -0
  184. package/esm/deps/deno.land/x/cliffy@v0.25.7/table/utils.js +60 -0
  185. package/esm/package.json +3 -0
  186. package/esm/src/action/add.d.ts +1 -0
  187. package/esm/src/action/add.js +57 -0
  188. package/esm/src/action/clone.d.ts +6 -0
  189. package/esm/src/action/clone.js +108 -0
  190. package/esm/src/action/lang.d.ts +1 -0
  191. package/esm/src/action/lang.js +40 -0
  192. package/esm/src/action/pull.d.ts +1 -0
  193. package/esm/src/action/pull.js +22 -0
  194. package/esm/src/action/remove.d.ts +4 -0
  195. package/esm/src/action/remove.js +67 -0
  196. package/esm/src/action/reset.d.ts +1 -0
  197. package/esm/src/action/reset.js +21 -0
  198. package/esm/src/action/run.d.ts +4 -0
  199. package/esm/src/action/run.js +163 -0
  200. package/esm/src/action/status.d.ts +1 -0
  201. package/esm/src/action/status.js +5 -0
  202. package/esm/src/main.d.ts +2 -0
  203. package/esm/src/main.js +96 -0
  204. package/esm/src/meta.d.ts +3 -0
  205. package/esm/src/meta.js +51 -0
  206. package/esm/src/orca/client.d.ts +20 -0
  207. package/esm/src/orca/client.js +152 -0
  208. package/esm/src/orca/types.d.ts +54 -0
  209. package/esm/src/orca/types.js +12 -0
  210. package/esm/src/shared/config.d.ts +24 -0
  211. package/esm/src/shared/config.js +24 -0
  212. package/esm/src/shared/errors.d.ts +82 -0
  213. package/esm/src/shared/errors.js +228 -0
  214. package/esm/src/shared/file.d.ts +30 -0
  215. package/esm/src/shared/file.js +110 -0
  216. package/esm/src/shared/mod.d.ts +40 -0
  217. package/esm/src/shared/mod.js +383 -0
  218. package/esm/src/shared/types.d.ts +12 -0
  219. package/esm/src/shared/types.js +1 -0
  220. package/esm/src/track/client.d.ts +60 -0
  221. package/esm/src/track/client.js +268 -0
  222. package/esm/src/track/types.d.ts +210 -0
  223. package/esm/src/track/types.js +40 -0
  224. package/package.json +35 -0
@@ -0,0 +1,831 @@
1
+ import type { ParseFlagsContext } from "../flags/types.js";
2
+ import { DefaultValue, ErrorHandler, OptionValueHandler } from "./types.js";
3
+ import { BooleanType } from "./types/boolean.js";
4
+ import { FileType } from "./types/file.js";
5
+ import { NumberType } from "./types/number.js";
6
+ import { StringType } from "./types/string.js";
7
+ import type { HelpOptions } from "./help/_help_generator.js";
8
+ import type { ActionHandler, Argument, ArgumentValue, CommandResult, CompleteHandler, CompleteOptions, Completion, Description, EnvVar, EnvVarOptions, EnvVarValueHandler, Example, GlobalEnvVarOptions, GlobalOptionOptions, HelpHandler, MapTypes, Option, OptionOptions, TypeDef, TypeOptions, TypeOrTypeHandler, VersionHandler } from "./types.js";
9
+ import { IntegerType } from "./types/integer.js";
10
+ export declare class Command<TParentCommandGlobals extends Record<string, unknown> | void = void, TParentCommandTypes extends Record<string, unknown> | void = TParentCommandGlobals extends number ? any : void, TCommandOptions extends Record<string, unknown> | void = TParentCommandGlobals extends number ? any : void, TCommandArguments extends Array<unknown> = TParentCommandGlobals extends number ? any : [], TCommandGlobals extends Record<string, unknown> | void = TParentCommandGlobals extends number ? any : void, TCommandTypes extends Record<string, unknown> | void = TParentCommandGlobals extends number ? any : {
11
+ number: number;
12
+ integer: number;
13
+ string: string;
14
+ boolean: boolean;
15
+ file: string;
16
+ }, TCommandGlobalTypes extends Record<string, unknown> | void = TParentCommandGlobals extends number ? any : void, TParentCommand extends Command<any> | undefined = TParentCommandGlobals extends number ? any : undefined> {
17
+ private types;
18
+ private rawArgs;
19
+ private literalArgs;
20
+ private _name;
21
+ private _parent?;
22
+ private _globalParent?;
23
+ private ver?;
24
+ private desc;
25
+ private _usage?;
26
+ private fn?;
27
+ private options;
28
+ private commands;
29
+ private examples;
30
+ private envVars;
31
+ private aliases;
32
+ private completions;
33
+ private cmd;
34
+ private argsDefinition?;
35
+ private isExecutable;
36
+ private throwOnError;
37
+ private _allowEmpty;
38
+ private _stopEarly;
39
+ private defaultCommand?;
40
+ private _useRawArgs;
41
+ private args;
42
+ private isHidden;
43
+ private isGlobal;
44
+ private hasDefaults;
45
+ private _versionOptions?;
46
+ private _helpOptions?;
47
+ private _versionOption?;
48
+ private _helpOption?;
49
+ private _help?;
50
+ private _shouldExit?;
51
+ private _meta;
52
+ private _groupName?;
53
+ private _noGlobals;
54
+ private errorHandler?;
55
+ /** Disable version option. */
56
+ versionOption(enable: false): this;
57
+ /**
58
+ * Set global version option.
59
+ * @param flags The flags of the version option.
60
+ * @param desc The description of the version option.
61
+ * @param opts Version option options.
62
+ */
63
+ versionOption(flags: string, desc?: string, opts?: OptionOptions<Partial<TCommandOptions>, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand> & {
64
+ global: true;
65
+ }): this;
66
+ /**
67
+ * Set version option.
68
+ * @param flags The flags of the version option.
69
+ * @param desc The description of the version option.
70
+ * @param opts Version option options.
71
+ */
72
+ versionOption(flags: string, desc?: string, opts?: OptionOptions<TCommandOptions, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>): this;
73
+ /**
74
+ * Set version option.
75
+ * @param flags The flags of the version option.
76
+ * @param desc The description of the version option.
77
+ * @param opts The action of the version option.
78
+ */
79
+ versionOption(flags: string, desc?: string, opts?: ActionHandler<TCommandOptions, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>): this;
80
+ /** Disable help option. */
81
+ helpOption(enable: false): this;
82
+ /**
83
+ * Set global help option.
84
+ * @param flags The flags of the help option.
85
+ * @param desc The description of the help option.
86
+ * @param opts Help option options.
87
+ */
88
+ helpOption(flags: string, desc?: string, opts?: OptionOptions<Partial<TCommandOptions>, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand> & {
89
+ global: true;
90
+ }): this;
91
+ /**
92
+ * Set help option.
93
+ * @param flags The flags of the help option.
94
+ * @param desc The description of the help option.
95
+ * @param opts Help option options.
96
+ */
97
+ helpOption(flags: string, desc?: string, opts?: OptionOptions<TCommandOptions, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>): this;
98
+ /**
99
+ * Set help option.
100
+ * @param flags The flags of the help option.
101
+ * @param desc The description of the help option.
102
+ * @param opts The action of the help option.
103
+ */
104
+ helpOption(flags: string, desc?: string, opts?: ActionHandler<TCommandOptions, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>): this;
105
+ /**
106
+ * Add new sub-command.
107
+ * @param name Command definition. E.g: `my-command <input-file:string> <output-file:string>`
108
+ * @param cmd The new child command to register.
109
+ * @param override Override existing child command.
110
+ */
111
+ command<TCommand extends Command<(TGlobalOptions & Record<string, unknown>) | void | undefined, TGlobalTypes | void | undefined, Record<string, unknown> | void, Array<unknown>, Record<string, unknown> | void, Record<string, unknown> | void, Record<string, unknown> | void, Command<TGlobalOptions | void | undefined, TGlobalTypes | void | undefined, Record<string, unknown> | void, Array<unknown>, Record<string, unknown> | void, Record<string, unknown> | void, Record<string, unknown> | void, undefined>>, TGlobalOptions extends (TParentCommand extends Command<any> ? TParentCommandGlobals : Merge<TParentCommandGlobals, TCommandGlobals>), TGlobalTypes extends (TParentCommand extends Command<any> ? TParentCommandTypes : Merge<TParentCommandTypes, TCommandTypes>)>(name: string, cmd: TCommand, override?: boolean): ReturnType<TCommand["reset"]> extends Command<Record<string, unknown> | void, Record<string, unknown> | void, infer Options, infer Arguments, infer GlobalOptions, infer Types, infer GlobalTypes, undefined> ? Command<TGlobalOptions, TGlobalTypes, Options, Arguments, GlobalOptions, Types, GlobalTypes, OneOf<TParentCommand, this>> : never;
112
+ /**
113
+ * Add new sub-command.
114
+ * @param name Command definition. E.g: `my-command <input-file:string> <output-file:string>`
115
+ * @param cmd The new child command to register.
116
+ * @param override Override existing child command.
117
+ */
118
+ command<TCommand extends Command<TGlobalOptions | void | undefined, TGlobalTypes | void | undefined, Record<string, unknown> | void, Array<unknown>, Record<string, unknown> | void, Record<string, unknown> | void, Record<string, unknown> | void, OneOf<TParentCommand, this> | undefined>, TGlobalOptions extends (TParentCommand extends Command<any> ? TParentCommandGlobals : Merge<TParentCommandGlobals, TCommandGlobals>), TGlobalTypes extends (TParentCommand extends Command<any> ? TParentCommandTypes : Merge<TParentCommandTypes, TCommandTypes>)>(name: string, cmd: TCommand, override?: boolean): TCommand extends Command<Record<string, unknown> | void, Record<string, unknown> | void, infer Options, infer Arguments, infer GlobalOptions, infer Types, infer GlobalTypes, OneOf<TParentCommand, this> | undefined> ? Command<TGlobalOptions, TGlobalTypes, Options, Arguments, GlobalOptions, Types, GlobalTypes, OneOf<TParentCommand, this>> : never;
119
+ /**
120
+ * Add new sub-command.
121
+ * @param nameAndArguments Command definition. E.g: `my-command <input-file:string> <output-file:string>`
122
+ * @param desc The description of the new child command.
123
+ * @param override Override existing child command.
124
+ */
125
+ command<TNameAndArguments extends string, TArguments extends TypedCommandArguments<TNameAndArguments, TParentCommand extends Command<any> ? TParentCommandTypes : Merge<TParentCommandTypes, TCommandGlobalTypes>>>(nameAndArguments: TNameAndArguments, desc?: string, override?: boolean): TParentCommandGlobals extends number ? Command<any> : Command<TParentCommand extends Command<any> ? TParentCommandGlobals : Merge<TParentCommandGlobals, TCommandGlobals>, TParentCommand extends Command<any> ? TParentCommandTypes : Merge<TParentCommandTypes, TCommandGlobalTypes>, void, TArguments, void, void, void, OneOf<TParentCommand, this>>;
126
+ /**
127
+ * Add new command alias.
128
+ * @param alias Tha name of the alias.
129
+ */
130
+ alias(alias: string): this;
131
+ /** Reset internal command reference to main command. */
132
+ reset(): OneOf<TParentCommand, this>;
133
+ /**
134
+ * Set internal command pointer to child command with given name.
135
+ * @param name The name of the command to select.
136
+ */
137
+ select<TOptions extends Record<string, unknown> | void = any, TArguments extends Array<unknown> = any, TGlobalOptions extends Record<string, unknown> | void = any>(name: string): Command<TParentCommandGlobals, TParentCommandTypes, TOptions, TArguments, TGlobalOptions, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
138
+ /*****************************************************************************
139
+ **** SUB HANDLER ************************************************************
140
+ *****************************************************************************/
141
+ /** Set command name. */
142
+ name(name: string): this;
143
+ /**
144
+ * Set command version.
145
+ * @param version Semantic version string string or method that returns the version string.
146
+ */
147
+ version(version: string | VersionHandler<Partial<TCommandOptions>, Partial<TCommandArguments>, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>): this;
148
+ meta(name: string, value: string): this;
149
+ getMeta(): Record<string, string>;
150
+ getMeta(name: string): string;
151
+ /**
152
+ * Set command help.
153
+ * @param help Help string, method, or config for generator that returns the help string.
154
+ */
155
+ help(help: string | HelpHandler<Partial<TCommandOptions>, Partial<TCommandArguments>, TCommandGlobals, TParentCommandGlobals> | HelpOptions): this;
156
+ /**
157
+ * Set the long command description.
158
+ * @param description The command description.
159
+ */
160
+ description(description: Description<TCommandOptions, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>): this;
161
+ /**
162
+ * Set the command usage. Defaults to arguments.
163
+ * @param usage The command usage.
164
+ */
165
+ usage(usage: string): this;
166
+ /**
167
+ * Hide command from help, completions, etc.
168
+ */
169
+ hidden(): this;
170
+ /** Make command globally available. */
171
+ global(): this;
172
+ /** Make command executable. */
173
+ executable(): this;
174
+ /**
175
+ * Set command arguments:
176
+ *
177
+ * <requiredArg:string> [optionalArg: number] [...restArgs:string]
178
+ */
179
+ arguments<TArguments extends TypedArguments<TArgs, Merge<TParentCommandTypes, Merge<TCommandGlobalTypes, TCommandTypes>>>, TArgs extends string = string>(args: TArgs): Command<TParentCommandGlobals, TParentCommandTypes, TCommandOptions, TArguments, TCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
180
+ /**
181
+ * Set command callback method.
182
+ * @param fn Command action handler.
183
+ */
184
+ action(fn: ActionHandler<TCommandOptions, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>): this;
185
+ /**
186
+ * Don't throw an error if the command was called without arguments.
187
+ * @param allowEmpty Enable/disable allow empty.
188
+ */
189
+ allowEmpty<TAllowEmpty extends boolean | undefined = undefined>(allowEmpty?: TAllowEmpty): false extends TAllowEmpty ? this : Command<Partial<TParentCommandGlobals>, TParentCommandTypes, Partial<TCommandOptions>, TCommandArguments, TCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
190
+ /**
191
+ * Enable stop early. If enabled, all arguments starting from the first non
192
+ * option argument will be passed as arguments with type string to the command
193
+ * action handler.
194
+ *
195
+ * For example:
196
+ * `command --debug-level warning server --port 80`
197
+ *
198
+ * Will result in:
199
+ * - options: `{debugLevel: 'warning'}`
200
+ * - args: `['server', '--port', '80']`
201
+ *
202
+ * @param stopEarly Enable/disable stop early.
203
+ */
204
+ stopEarly(stopEarly?: boolean): this;
205
+ /**
206
+ * Disable parsing arguments. If enabled the raw arguments will be passed to
207
+ * the action handler. This has no effect for parent or child commands. Only
208
+ * for the command on which this method was called.
209
+ * @param useRawArgs Enable/disable raw arguments.
210
+ */
211
+ useRawArgs(useRawArgs?: boolean): Command<void, void, void, Array<string>, void, void, void, TParentCommand>;
212
+ /**
213
+ * Set default command. The default command is executed when the program
214
+ * was called without any argument and if no action handler is registered.
215
+ * @param name Name of the default command.
216
+ */
217
+ default(name: string): this;
218
+ globalType<THandler extends TypeOrTypeHandler<unknown>, TName extends string = string>(name: TName, handler: THandler, options?: Omit<TypeOptions, "global">): Command<TParentCommandGlobals, TParentCommandTypes, TCommandOptions, TCommandArguments, TCommandGlobals, TCommandTypes, Merge<TCommandGlobalTypes, TypedType<TName, THandler>>, TParentCommand>;
219
+ /**
220
+ * Register custom type.
221
+ * @param name The name of the type.
222
+ * @param handler The callback method to parse the type.
223
+ * @param options Type options.
224
+ */
225
+ type<THandler extends TypeOrTypeHandler<unknown>, TName extends string = string>(name: TName, handler: THandler, options?: TypeOptions): Command<TParentCommandGlobals, TParentCommandTypes, TCommandOptions, TCommandArguments, TCommandGlobals, Merge<TCommandTypes, TypedType<TName, THandler>>, TCommandGlobalTypes, TParentCommand>;
226
+ globalComplete(name: string, complete: CompleteHandler, options?: Omit<CompleteOptions, "global">): this;
227
+ /**
228
+ * Register command specific custom type.
229
+ * @param name The name of the completion.
230
+ * @param complete The callback method to complete the type.
231
+ * @param options Complete options.
232
+ */
233
+ complete(name: string, complete: CompleteHandler<Partial<TCommandOptions>, Partial<TCommandArguments>, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, any>, options: CompleteOptions & {
234
+ global: boolean;
235
+ }): this;
236
+ complete(name: string, complete: CompleteHandler<TCommandOptions, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>, options?: CompleteOptions): this;
237
+ /**
238
+ * Throw validation errors instead of calling `Deno.exit()` to handle
239
+ * validation errors manually.
240
+ *
241
+ * A validation error is thrown when the command is wrongly used by the user.
242
+ * For example: If the user passes some invalid options or arguments to the
243
+ * command.
244
+ *
245
+ * This has no effect for parent commands. Only for the command on which this
246
+ * method was called and all child commands.
247
+ *
248
+ * **Example:**
249
+ *
250
+ * ```
251
+ * try {
252
+ * cmd.parse();
253
+ * } catch(error) {
254
+ * if (error instanceof ValidationError) {
255
+ * cmd.showHelp();
256
+ * Deno.exit(1);
257
+ * }
258
+ * throw error;
259
+ * }
260
+ * ```
261
+ *
262
+ * @see ValidationError
263
+ */
264
+ throwErrors(): this;
265
+ error(handler: ErrorHandler): this;
266
+ private getErrorHandler;
267
+ /**
268
+ * Same as `.throwErrors()` but also prevents calling `Deno.exit` after
269
+ * printing help or version with the --help and --version option.
270
+ */
271
+ noExit(): this;
272
+ /**
273
+ * Disable inheriting global commands, options and environment variables from
274
+ * parent commands.
275
+ */
276
+ noGlobals(): this;
277
+ /** Check whether the command should throw errors or exit. */
278
+ protected shouldThrowErrors(): boolean;
279
+ /** Check whether the command should exit after printing help or version. */
280
+ protected shouldExit(): boolean;
281
+ globalOption<TFlags extends string, TGlobalOptions extends TypedOption<TFlags, TCommandOptions, Merge<TParentCommandTypes, Merge<TCommandGlobalTypes, TCommandTypes>>, undefined extends TConflicts ? TRequired : false, TDefaultValue>, TMappedGlobalOptions extends MapValue<TGlobalOptions, TMappedValue, TCollect>, TRequired extends OptionOptions["required"] = undefined, TCollect extends OptionOptions["collect"] = undefined, TConflicts extends OptionOptions["conflicts"] = undefined, TDefaultValue = undefined, TMappedValue = undefined>(flags: TFlags, desc: string, opts?: Omit<GlobalOptionOptions<Partial<TCommandOptions>, TCommandArguments, MergeOptions<TFlags, TCommandGlobals, TGlobalOptions>, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>, "value"> & {
282
+ default?: DefaultValue<TDefaultValue>;
283
+ required?: TRequired;
284
+ collect?: TCollect;
285
+ value?: OptionValueHandler<MapTypes<ValueOf<TGlobalOptions>>, TMappedValue>;
286
+ } | OptionValueHandler<MapTypes<ValueOf<TGlobalOptions>>, TMappedValue>): Command<TParentCommandGlobals, TParentCommandTypes, TCommandOptions, TCommandArguments, MergeOptions<TFlags, TCommandGlobals, TMappedGlobalOptions>, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
287
+ /**
288
+ * Enable grouping of options and set the name of the group.
289
+ * All option which are added after calling the `.group()` method will be
290
+ * grouped in the help output. If the `.group()` method can be use multiple
291
+ * times to create more groups.
292
+ *
293
+ * @param name The name of the option group.
294
+ */
295
+ group(name: string): this;
296
+ /**
297
+ * Add a new option.
298
+ * @param flags Flags string e.g: -h, --help, --manual <requiredArg:string> [optionalArg:number] [...restArgs:string]
299
+ * @param desc Flag description.
300
+ * @param opts Flag options or custom handler for processing flag value.
301
+ */
302
+ option<TFlags extends string, TGlobalOptions extends TypedOption<TFlags, TCommandOptions, Merge<TParentCommandTypes, Merge<TCommandGlobalTypes, TCommandTypes>>, undefined extends TConflicts ? TRequired : false, TDefault>, TMappedGlobalOptions extends MapValue<TGlobalOptions, TMappedValue, TCollect>, TRequired extends OptionOptions["required"] = undefined, TCollect extends OptionOptions["collect"] = undefined, TConflicts extends OptionOptions["conflicts"] = undefined, TDefault = undefined, TMappedValue = undefined>(flags: TFlags, desc: string, opts: Omit<OptionOptions<Partial<TCommandOptions>, TCommandArguments, MergeOptions<TFlags, TCommandGlobals, TGlobalOptions>, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>, "value"> & {
303
+ global: true;
304
+ default?: DefaultValue<TDefault>;
305
+ required?: TRequired;
306
+ collect?: TCollect;
307
+ value?: OptionValueHandler<MapTypes<ValueOf<TGlobalOptions>>, TMappedValue>;
308
+ } | OptionValueHandler<MapTypes<ValueOf<TGlobalOptions>>, TMappedValue>): Command<TParentCommandGlobals, TParentCommandTypes, TCommandOptions, TCommandArguments, MergeOptions<TFlags, TCommandGlobals, TMappedGlobalOptions>, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
309
+ option<TFlags extends string, TOptions extends TypedOption<TFlags, TCommandOptions, Merge<TParentCommandTypes, Merge<TCommandGlobalTypes, TCommandTypes>>, undefined extends TConflicts ? TRequired : false, TDefaultValue>, TMappedOptions extends MapValue<TOptions, TMappedValue, TCollect>, TRequired extends OptionOptions["required"] = undefined, TCollect extends OptionOptions["collect"] = undefined, TConflicts extends OptionOptions["conflicts"] = undefined, TDefaultValue = undefined, TMappedValue = undefined>(flags: TFlags, desc: string, opts?: Omit<OptionOptions<MergeOptions<TFlags, TCommandOptions, TMappedOptions>, TCommandArguments, TCommandGlobals, TParentCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>, "value"> & {
310
+ default?: DefaultValue<TDefaultValue>;
311
+ required?: TRequired;
312
+ collect?: TCollect;
313
+ conflicts?: TConflicts;
314
+ value?: OptionValueHandler<MapTypes<ValueOf<TOptions>>, TMappedValue>;
315
+ } | OptionValueHandler<MapTypes<ValueOf<TOptions>>, TMappedValue>): Command<TParentCommandGlobals, TParentCommandTypes, MergeOptions<TFlags, TCommandOptions, TMappedOptions>, TCommandArguments, TCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
316
+ /**
317
+ * Add new command example.
318
+ * @param name Name of the example.
319
+ * @param description The content of the example.
320
+ */
321
+ example(name: string, description: string): this;
322
+ globalEnv<TNameAndValue extends string, TGlobalEnvVars extends TypedEnv<TNameAndValue, TPrefix, TCommandOptions, Merge<TParentCommandTypes, Merge<TCommandGlobalTypes, TCommandTypes>>, TRequired>, TMappedGlobalEnvVars extends MapValue<TGlobalEnvVars, TMappedValue>, TRequired extends EnvVarOptions["required"] = undefined, TPrefix extends EnvVarOptions["prefix"] = undefined, TMappedValue = undefined>(name: TNameAndValue, description: string, options?: Omit<GlobalEnvVarOptions, "value"> & {
323
+ required?: TRequired;
324
+ prefix?: TPrefix;
325
+ value?: EnvVarValueHandler<MapTypes<ValueOf<TGlobalEnvVars>>, TMappedValue>;
326
+ }): Command<TParentCommandGlobals, TParentCommandTypes, TCommandOptions, TCommandArguments, Merge<TCommandGlobals, TMappedGlobalEnvVars>, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
327
+ /**
328
+ * Add new environment variable.
329
+ * @param name Name of the environment variable.
330
+ * @param description The description of the environment variable.
331
+ * @param options Environment variable options.
332
+ */
333
+ env<N extends string, G extends TypedEnv<N, P, TCommandOptions, Merge<TParentCommandTypes, Merge<TCommandGlobalTypes, TCommandTypes>>, R>, MG extends MapValue<G, V>, R extends EnvVarOptions["required"] = undefined, P extends EnvVarOptions["prefix"] = undefined, V = undefined>(name: N, description: string, options: Omit<EnvVarOptions, "value"> & {
334
+ global: true;
335
+ required?: R;
336
+ prefix?: P;
337
+ value?: EnvVarValueHandler<MapTypes<ValueOf<G>>, V>;
338
+ }): Command<TParentCommandGlobals, TParentCommandTypes, TCommandOptions, TCommandArguments, Merge<TCommandGlobals, MG>, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
339
+ env<TNameAndValue extends string, TEnvVar extends TypedEnv<TNameAndValue, TPrefix, TCommandOptions, Merge<TParentCommandTypes, Merge<TCommandGlobalTypes, TCommandTypes>>, TRequired>, TMappedEnvVar extends MapValue<TEnvVar, TMappedValue>, TRequired extends EnvVarOptions["required"] = undefined, TPrefix extends EnvVarOptions["prefix"] = undefined, TMappedValue = undefined>(name: TNameAndValue, description: string, options?: Omit<EnvVarOptions, "value"> & {
340
+ required?: TRequired;
341
+ prefix?: TPrefix;
342
+ value?: EnvVarValueHandler<MapTypes<ValueOf<TEnvVar>>, TMappedValue>;
343
+ }): Command<TParentCommandGlobals, TParentCommandTypes, Merge<TCommandOptions, TMappedEnvVar>, TCommandArguments, TCommandGlobals, TCommandTypes, TCommandGlobalTypes, TParentCommand>;
344
+ /*****************************************************************************
345
+ **** MAIN HANDLER ***********************************************************
346
+ *****************************************************************************/
347
+ /**
348
+ * Parse command line arguments and execute matched command.
349
+ * @param args Command line args to parse. Ex: `cmd.parse( Deno.args )`
350
+ */
351
+ parse(args?: string[]): Promise<TParentCommand extends Command<any> ? CommandResult<Record<string, unknown>, Array<unknown>, Record<string, unknown>, Record<string, unknown>, Record<string, unknown>, Record<string, unknown>, Record<string, unknown>, undefined> : CommandResult<MapTypes<TCommandOptions>, MapTypes<TCommandArguments>, MapTypes<TCommandGlobals>, MapTypes<TParentCommandGlobals>, TCommandTypes, TCommandGlobalTypes, TParentCommandTypes, TParentCommand>>;
352
+ private parseCommand;
353
+ private getSubCommand;
354
+ private parseGlobalOptionsAndEnvVars;
355
+ private parseOptionsAndEnvVars;
356
+ /** Register default options like `--version` and `--help`. */
357
+ private registerDefaults;
358
+ /**
359
+ * Execute command.
360
+ * @param options A map of options.
361
+ * @param args Command arguments.
362
+ */
363
+ protected execute(options: Record<string, unknown>, ...args: Array<unknown>): Promise<CommandResult>;
364
+ /**
365
+ * Execute external sub-command.
366
+ * @param args Raw command line arguments.
367
+ */
368
+ protected executeExecutable(args: string[]): Promise<void>;
369
+ /** Parse raw command line arguments. */
370
+ protected parseOptions(ctx: ParseContext, options: Option[], { stopEarly, stopOnUnknown, dotted, }?: ParseOptionsOptions): void;
371
+ /** Parse argument type. */
372
+ protected parseType(type: ArgumentValue): unknown;
373
+ /**
374
+ * Read and validate environment variables.
375
+ * @param ctx Parse context.
376
+ * @param envVars env vars defined by the command.
377
+ * @param validate when true, throws an error if a required env var is missing.
378
+ */
379
+ protected parseEnvVars(ctx: ParseContext, envVars: Array<EnvVar>, validate?: boolean): Promise<void>;
380
+ protected findEnvVar(names: readonly string[]): Promise<{
381
+ name: string;
382
+ value: string;
383
+ } | undefined>;
384
+ /**
385
+ * Parse command-line arguments.
386
+ * @param ctx Parse context.
387
+ * @param options Parsed command line options.
388
+ */
389
+ protected parseArguments(ctx: ParseContext, options: Record<string, unknown>): TCommandArguments;
390
+ private handleError;
391
+ /**
392
+ * Handle error. If `throwErrors` is enabled the error will be thrown,
393
+ * otherwise a formatted error message will be printed and `Deno.exit(1)`
394
+ * will be called. This will also trigger registered error handlers.
395
+ *
396
+ * @param error The error to handle.
397
+ */
398
+ throw(error: Error): never;
399
+ /*****************************************************************************
400
+ **** GETTER *****************************************************************
401
+ *****************************************************************************/
402
+ /** Get command name. */
403
+ getName(): string;
404
+ /** Get parent command. */
405
+ getParent(): TParentCommand;
406
+ /**
407
+ * Get parent command from global executed command.
408
+ * Be sure, to call this method only inside an action handler. Unless this or any child command was executed,
409
+ * this method returns always undefined.
410
+ */
411
+ getGlobalParent(): Command<any> | undefined;
412
+ /** Get main command. */
413
+ getMainCommand(): Command<any>;
414
+ /** Get command name aliases. */
415
+ getAliases(): string[];
416
+ /** Get full command path. */
417
+ getPath(): string;
418
+ /** Get arguments definition. E.g: <input-file:string> <output-file:string> */
419
+ getArgsDefinition(): string | undefined;
420
+ /**
421
+ * Get argument by name.
422
+ * @param name Name of the argument.
423
+ */
424
+ getArgument(name: string): Argument | undefined;
425
+ /** Get arguments. */
426
+ getArguments(): Argument[];
427
+ /** Check if command has arguments. */
428
+ hasArguments(): boolean;
429
+ /** Get command version. */
430
+ getVersion(): string | undefined;
431
+ /** Get help handler method. */
432
+ private getVersionHandler;
433
+ /** Get command description. */
434
+ getDescription(): string;
435
+ getUsage(): string | undefined;
436
+ /** Get short command description. This is the first line of the description. */
437
+ getShortDescription(): string;
438
+ /** Get original command-line arguments. */
439
+ getRawArgs(): string[];
440
+ /** Get all arguments defined after the double dash. */
441
+ getLiteralArgs(): string[];
442
+ /** Output generated help without exiting. */
443
+ showVersion(): void;
444
+ /** Returns command name, version and meta data. */
445
+ getLongVersion(): string;
446
+ /** Outputs command name, version and meta data. */
447
+ showLongVersion(): void;
448
+ /** Output generated help without exiting. */
449
+ showHelp(options?: HelpOptions): void;
450
+ /** Get generated help. */
451
+ getHelp(options?: HelpOptions): string;
452
+ /** Get help handler method. */
453
+ private getHelpHandler;
454
+ private exit;
455
+ /** Check if new version is available and add hint to version. */
456
+ checkVersion(): Promise<void>;
457
+ /*****************************************************************************
458
+ **** Options GETTER *********************************************************
459
+ *****************************************************************************/
460
+ /**
461
+ * Checks whether the command has options or not.
462
+ * @param hidden Include hidden options.
463
+ */
464
+ hasOptions(hidden?: boolean): boolean;
465
+ /**
466
+ * Get options.
467
+ * @param hidden Include hidden options.
468
+ */
469
+ getOptions(hidden?: boolean): Option[];
470
+ /**
471
+ * Get base options.
472
+ * @param hidden Include hidden options.
473
+ */
474
+ getBaseOptions(hidden?: boolean): Option[];
475
+ /**
476
+ * Get global options.
477
+ * @param hidden Include hidden options.
478
+ */
479
+ getGlobalOptions(hidden?: boolean): Option[];
480
+ /**
481
+ * Checks whether the command has an option with given name or not.
482
+ * @param name Name of the option. Must be in param-case.
483
+ * @param hidden Include hidden options.
484
+ */
485
+ hasOption(name: string, hidden?: boolean): boolean;
486
+ /**
487
+ * Get option by name.
488
+ * @param name Name of the option. Must be in param-case.
489
+ * @param hidden Include hidden options.
490
+ */
491
+ getOption(name: string, hidden?: boolean): Option | undefined;
492
+ /**
493
+ * Get base option by name.
494
+ * @param name Name of the option. Must be in param-case.
495
+ * @param hidden Include hidden options.
496
+ */
497
+ getBaseOption(name: string, hidden?: boolean): Option | undefined;
498
+ /**
499
+ * Get global option from parent commands by name.
500
+ * @param name Name of the option. Must be in param-case.
501
+ * @param hidden Include hidden options.
502
+ */
503
+ getGlobalOption(name: string, hidden?: boolean): Option | undefined;
504
+ /**
505
+ * Remove option by name.
506
+ * @param name Name of the option. Must be in param-case.
507
+ */
508
+ removeOption(name: string): Option | undefined;
509
+ /**
510
+ * Checks whether the command has sub-commands or not.
511
+ * @param hidden Include hidden commands.
512
+ */
513
+ hasCommands(hidden?: boolean): boolean;
514
+ /**
515
+ * Get commands.
516
+ * @param hidden Include hidden commands.
517
+ */
518
+ getCommands(hidden?: boolean): Array<Command<any>>;
519
+ /**
520
+ * Get base commands.
521
+ * @param hidden Include hidden commands.
522
+ */
523
+ getBaseCommands(hidden?: boolean): Array<Command<any>>;
524
+ /**
525
+ * Get global commands.
526
+ * @param hidden Include hidden commands.
527
+ */
528
+ getGlobalCommands(hidden?: boolean): Array<Command<any>>;
529
+ /**
530
+ * Checks whether a child command exists by given name or alias.
531
+ * @param name Name or alias of the command.
532
+ * @param hidden Include hidden commands.
533
+ */
534
+ hasCommand(name: string, hidden?: boolean): boolean;
535
+ /**
536
+ * Get command by name or alias.
537
+ * @param name Name or alias of the command.
538
+ * @param hidden Include hidden commands.
539
+ */
540
+ getCommand<TCommand extends Command<any>>(name: string, hidden?: boolean): TCommand | undefined;
541
+ /**
542
+ * Get base command by name or alias.
543
+ * @param name Name or alias of the command.
544
+ * @param hidden Include hidden commands.
545
+ */
546
+ getBaseCommand<TCommand extends Command<any>>(name: string, hidden?: boolean): TCommand | undefined;
547
+ /**
548
+ * Get global command by name or alias.
549
+ * @param name Name or alias of the command.
550
+ * @param hidden Include hidden commands.
551
+ */
552
+ getGlobalCommand<TCommand extends Command<any>>(name: string, hidden?: boolean): TCommand | undefined;
553
+ /**
554
+ * Remove sub-command by name or alias.
555
+ * @param name Name or alias of the command.
556
+ */
557
+ removeCommand(name: string): Command<any> | undefined;
558
+ /** Get types. */
559
+ getTypes(): Array<TypeDef>;
560
+ /** Get base types. */
561
+ getBaseTypes(): Array<TypeDef>;
562
+ /** Get global types. */
563
+ getGlobalTypes(): Array<TypeDef>;
564
+ /**
565
+ * Get type by name.
566
+ * @param name Name of the type.
567
+ */
568
+ getType(name: string): TypeDef | undefined;
569
+ /**
570
+ * Get base type by name.
571
+ * @param name Name of the type.
572
+ */
573
+ getBaseType(name: string): TypeDef | undefined;
574
+ /**
575
+ * Get global type by name.
576
+ * @param name Name of the type.
577
+ */
578
+ getGlobalType(name: string): TypeDef | undefined;
579
+ /** Get completions. */
580
+ getCompletions(): Completion<any, any, any, any, any, any, any, any>[];
581
+ /** Get base completions. */
582
+ getBaseCompletions(): Completion[];
583
+ /** Get global completions. */
584
+ getGlobalCompletions(): Completion[];
585
+ /**
586
+ * Get completion by name.
587
+ * @param name Name of the completion.
588
+ */
589
+ getCompletion(name: string): Completion | undefined;
590
+ /**
591
+ * Get base completion by name.
592
+ * @param name Name of the completion.
593
+ */
594
+ getBaseCompletion(name: string): Completion | undefined;
595
+ /**
596
+ * Get global completions by name.
597
+ * @param name Name of the completion.
598
+ */
599
+ getGlobalCompletion(name: string): Completion | undefined;
600
+ /**
601
+ * Checks whether the command has environment variables or not.
602
+ * @param hidden Include hidden environment variable.
603
+ */
604
+ hasEnvVars(hidden?: boolean): boolean;
605
+ /**
606
+ * Get environment variables.
607
+ * @param hidden Include hidden environment variable.
608
+ */
609
+ getEnvVars(hidden?: boolean): EnvVar[];
610
+ /**
611
+ * Get base environment variables.
612
+ * @param hidden Include hidden environment variable.
613
+ */
614
+ getBaseEnvVars(hidden?: boolean): EnvVar[];
615
+ /**
616
+ * Get global environment variables.
617
+ * @param hidden Include hidden environment variable.
618
+ */
619
+ getGlobalEnvVars(hidden?: boolean): EnvVar[];
620
+ /**
621
+ * Checks whether the command has an environment variable with given name or not.
622
+ * @param name Name of the environment variable.
623
+ * @param hidden Include hidden environment variable.
624
+ */
625
+ hasEnvVar(name: string, hidden?: boolean): boolean;
626
+ /**
627
+ * Get environment variable by name.
628
+ * @param name Name of the environment variable.
629
+ * @param hidden Include hidden environment variable.
630
+ */
631
+ getEnvVar(name: string, hidden?: boolean): EnvVar | undefined;
632
+ /**
633
+ * Get base environment variable by name.
634
+ * @param name Name of the environment variable.
635
+ * @param hidden Include hidden environment variable.
636
+ */
637
+ getBaseEnvVar(name: string, hidden?: boolean): EnvVar | undefined;
638
+ /**
639
+ * Get global environment variable by name.
640
+ * @param name Name of the environment variable.
641
+ * @param hidden Include hidden environment variable.
642
+ */
643
+ getGlobalEnvVar(name: string, hidden?: boolean): EnvVar | undefined;
644
+ /** Checks whether the command has examples or not. */
645
+ hasExamples(): boolean;
646
+ /** Get all examples. */
647
+ getExamples(): Example[];
648
+ /** Checks whether the command has an example with given name or not. */
649
+ hasExample(name: string): boolean;
650
+ /** Get example with given name. */
651
+ getExample(name: string): Example | undefined;
652
+ private getHelpOption;
653
+ }
654
+ type ActionOption = Option & {
655
+ action: ActionHandler;
656
+ };
657
+ interface ParseContext extends ParseFlagsContext<Record<string, unknown>> {
658
+ action?: ActionOption;
659
+ env: Record<string, unknown>;
660
+ }
661
+ interface ParseOptionsOptions {
662
+ stopEarly?: boolean;
663
+ stopOnUnknown?: boolean;
664
+ dotted?: boolean;
665
+ }
666
+ type TrimLeft<TValue extends string, TTrimValue extends string | undefined> = TValue extends `${TTrimValue}${infer TRest}` ? TRest : TValue;
667
+ type TrimRight<TValue extends string, TTrimValue extends string> = TValue extends `${infer TRest}${TTrimValue}` ? TRest : TValue;
668
+ type Lower<TValue extends string> = TValue extends Uppercase<TValue> ? Lowercase<TValue> : Uncapitalize<TValue>;
669
+ type CamelCase<TValue extends string> = TValue extends `${infer TPart}_${infer TRest}` ? `${Lower<TPart>}${Capitalize<CamelCase<TRest>>}` : TValue extends `${infer TPart}-${infer TRest}` ? `${Lower<TPart>}${Capitalize<CamelCase<TRest>>}` : Lower<TValue>;
670
+ type OneOf<TValue, TDefault> = TValue extends void ? TDefault : TValue;
671
+ type Merge<TLeft, TRight> = TLeft extends void ? TRight : TRight extends void ? TLeft : TLeft & TRight;
672
+ type MergeRecursive<TLeft, TRight> = TLeft extends void ? TRight : TRight extends void ? TLeft : TLeft & TRight;
673
+ type OptionalOrRequiredValue<TType extends string> = `[${TType}]` | `<${TType}>`;
674
+ type RestValue = `...${string}` | `${string}...`;
675
+ /**
676
+ * Rest args with list type and completions.
677
+ *
678
+ * - `[...name:type[]:completion]`
679
+ * - `<...name:type[]:completion>`
680
+ * - `[name...:type[]:completion]`
681
+ * - `<name...:type[]:completion>`
682
+ */
683
+ type RestArgsListTypeCompletion<TType extends string> = OptionalOrRequiredValue<`${RestValue}:${TType}[]:${string}`>;
684
+ /**
685
+ * Rest args with list type.
686
+ *
687
+ * - `[...name:type[]]`
688
+ * - `<...name:type[]>`
689
+ * - `[name...:type[]]`
690
+ * - `<name...:type[]>`
691
+ */
692
+ type RestArgsListType<TType extends string> = OptionalOrRequiredValue<`${RestValue}:${TType}[]`>;
693
+ /**
694
+ * Rest args with type and completions.
695
+ *
696
+ * - `[...name:type:completion]`
697
+ * - `<...name:type:completion>`
698
+ * - `[name...:type:completion]`
699
+ * - `<name...:type:completion>`
700
+ */
701
+ type RestArgsTypeCompletion<TType extends string> = OptionalOrRequiredValue<`${RestValue}:${TType}:${string}`>;
702
+ /**
703
+ * Rest args with type.
704
+ *
705
+ * - `[...name:type]`
706
+ * - `<...name:type>`
707
+ * - `[name...:type]`
708
+ * - `<name...:type>`
709
+ */
710
+ type RestArgsType<TType extends string> = OptionalOrRequiredValue<`${RestValue}:${TType}`>;
711
+ /**
712
+ * Rest args.
713
+ * - `[...name]`
714
+ * - `<...name>`
715
+ * - `[name...]`
716
+ * - `<name...>`
717
+ */
718
+ type RestArgs = OptionalOrRequiredValue<`${RestValue}`>;
719
+ /**
720
+ * Single arg with list type and completions.
721
+ *
722
+ * - `[name:type[]:completion]`
723
+ * - `<name:type[]:completion>`
724
+ */
725
+ type SingleArgListTypeCompletion<TType extends string> = OptionalOrRequiredValue<`${string}:${TType}[]:${string}`>;
726
+ /**
727
+ * Single arg with list type.
728
+ *
729
+ * - `[name:type[]]`
730
+ * - `<name:type[]>`
731
+ */
732
+ type SingleArgListType<TType extends string> = OptionalOrRequiredValue<`${string}:${TType}[]`>;
733
+ /**
734
+ * Single arg with type and completion.
735
+ *
736
+ * - `[name:type:completion]`
737
+ * - `<name:type:completion>`
738
+ */
739
+ type SingleArgTypeCompletion<TType extends string> = OptionalOrRequiredValue<`${string}:${TType}:${string}`>;
740
+ /**
741
+ * Single arg with type.
742
+ *
743
+ * - `[name:type]`
744
+ * - `<name:type>`
745
+ */
746
+ type SingleArgType<TType extends string> = OptionalOrRequiredValue<`${string}:${TType}`>;
747
+ /**
748
+ * Single arg.
749
+ *
750
+ * - `[name]`
751
+ * - `<name>`
752
+ */
753
+ type SingleArg = OptionalOrRequiredValue<`${string}`>;
754
+ type DefaultTypes = {
755
+ number: NumberType;
756
+ integer: IntegerType;
757
+ string: StringType;
758
+ boolean: BooleanType;
759
+ file: FileType;
760
+ };
761
+ type ArgumentType<TArg extends string, TCustomTypes, TTypes = Merge<DefaultTypes, TCustomTypes>> = TArg extends RestArgsListTypeCompletion<infer Type> ? TTypes extends Record<Type, infer R> ? Array<Array<R>> : unknown : TArg extends RestArgsListType<infer Type> ? TTypes extends Record<Type, infer R> ? Array<Array<R>> : unknown : TArg extends RestArgsTypeCompletion<infer Type> ? TTypes extends Record<Type, infer R> ? Array<R> : unknown : TArg extends RestArgsType<infer Type> ? TTypes extends Record<Type, infer R> ? Array<R> : unknown : TArg extends RestArgs ? Array<string> : TArg extends SingleArgListTypeCompletion<infer Type> ? TTypes extends Record<Type, infer R> ? Array<R> : unknown : TArg extends SingleArgListType<infer Type> ? TTypes extends Record<Type, infer R> ? Array<R> : unknown : TArg extends SingleArgTypeCompletion<infer Type> ? TTypes extends Record<Type, infer R> ? R : unknown : TArg extends SingleArgType<infer Type> ? TTypes extends Record<Type, infer R> ? R : unknown : TArg extends SingleArg ? string : unknown;
762
+ type ArgumentTypes<TFlags extends string, T> = TFlags extends `${string} ${string}` ? TypedArguments<TFlags, T> : ArgumentType<TFlags, T>;
763
+ type GetArguments<TFlags extends string> = TFlags extends `-${string}=${infer RestFlags}` ? GetArguments<RestFlags> : TFlags extends `-${string} ${infer RestFlags}` ? GetArguments<RestFlags> : TFlags;
764
+ type OptionName<Name extends string> = Name extends "*" ? string : CamelCase<TrimRight<Name, ",">>;
765
+ type IsRequired<TRequired extends boolean | undefined, TDefault> = TRequired extends true ? true : TDefault extends undefined ? false : true;
766
+ type NegatableOption<TName extends string, TOptions, TDefault> = TDefault extends undefined ? OptionName<TName> extends keyof TOptions ? {
767
+ [Key in OptionName<TName>]?: false;
768
+ } : {
769
+ [Key in OptionName<TName>]: boolean;
770
+ } : {
771
+ [Key in OptionName<TName>]: NonNullable<TDefault> | false;
772
+ };
773
+ type BooleanOption<TName extends string, TOptions, TRequired extends boolean | undefined = undefined, TDefault = undefined> = TName extends `no-${infer Name}` ? NegatableOption<Name, TOptions, TDefault> : TName extends `${infer Name}.${infer Rest}` ? (TRequired extends true ? {
774
+ [Key in OptionName<Name>]: BooleanOption<Rest, TOptions, TRequired, TDefault>;
775
+ } : {
776
+ [Key in OptionName<Name>]?: BooleanOption<Rest, TOptions, TRequired, TDefault>;
777
+ }) : (TRequired extends true ? {
778
+ [Key in OptionName<TName>]: true | TDefault;
779
+ } : {
780
+ [Key in OptionName<TName>]?: true | TDefault;
781
+ });
782
+ type ValueOption<TName extends string, TRestFlags extends string, TTypes, TRequired extends boolean | undefined = undefined, TDefault = undefined> = TName extends `${infer Name}.${infer RestName}` ? (TRequired extends true ? {
783
+ [Key in OptionName<Name>]: ValueOption<RestName, TRestFlags, TTypes, TRequired, TDefault>;
784
+ } : {
785
+ [Key in OptionName<Name>]?: ValueOption<RestName, TRestFlags, TTypes, TRequired, TDefault>;
786
+ }) : (TRequired extends true ? {
787
+ [Key in OptionName<TName>]: GetArguments<TRestFlags> extends `[${string}]` ? NonNullable<TDefault> | true | ArgumentType<GetArguments<TRestFlags>, TTypes> : NonNullable<TDefault> | ArgumentType<GetArguments<TRestFlags>, TTypes>;
788
+ } : {
789
+ [Key in OptionName<TName>]?: GetArguments<TRestFlags> extends `[${string}]` ? NonNullable<TDefault> | true | ArgumentType<GetArguments<TRestFlags>, TTypes> : NonNullable<TDefault> | ArgumentType<GetArguments<TRestFlags>, TTypes>;
790
+ });
791
+ type ValuesOption<TName extends string, TRestFlags extends string, TTypes, TRequired extends boolean | undefined = undefined, TDefault = undefined> = TName extends `${infer Name}.${infer RestName}` ? (TRequired extends true ? {
792
+ [Key in OptionName<Name>]: ValuesOption<RestName, TRestFlags, TTypes, TRequired, TDefault>;
793
+ } : {
794
+ [Key in OptionName<Name>]?: ValuesOption<RestName, TRestFlags, TTypes, TRequired, TDefault>;
795
+ }) : (TRequired extends true ? {
796
+ [Key in OptionName<TName>]: GetArguments<TRestFlags> extends `[${string}]` ? NonNullable<TDefault> | true | ArgumentTypes<GetArguments<TRestFlags>, TTypes> : NonNullable<TDefault> | ArgumentTypes<GetArguments<TRestFlags>, TTypes>;
797
+ } : {
798
+ [Key in OptionName<TName>]?: GetArguments<TRestFlags> extends `[${string}]` ? NonNullable<TDefault> | true | ArgumentTypes<GetArguments<TRestFlags>, TTypes> : NonNullable<TDefault> | ArgumentTypes<GetArguments<TRestFlags>, TTypes>;
799
+ });
800
+ type MapValue<TOptions, TMappedOptions, TCollect = undefined> = TMappedOptions extends undefined ? TCollect extends true ? {
801
+ [Key in keyof TOptions]: TOptions[Key] extends (Record<string, unknown> | undefined) ? MapValue<TOptions[Key], TMappedOptions> : Array<NonNullable<TOptions[Key]>>;
802
+ } : TOptions : {
803
+ [Key in keyof TOptions]: TOptions[Key] extends (Record<string, unknown> | undefined) ? MapValue<TOptions[Key], TMappedOptions> : TMappedOptions;
804
+ };
805
+ type GetOptionName<TFlags> = TFlags extends `${string}--${infer Name}=${string}` ? TrimRight<Name, ","> : TFlags extends `${string}--${infer Name} ${string}` ? TrimRight<Name, ","> : TFlags extends `${string}--${infer Name}` ? Name : TFlags extends `-${infer Name}=${string}` ? TrimRight<Name, ","> : TFlags extends `-${infer Name} ${string}` ? TrimRight<Name, ","> : TFlags extends `-${infer Name}` ? Name : unknown;
806
+ type MergeOptions<TFlags, TOptions, TMappedOptions, TName = GetOptionName<TFlags>> = TName extends `no-${string}` ? Spread<TOptions, TMappedOptions> : TName extends `${string}.${string}` ? MergeRecursive<TOptions, TMappedOptions> : Merge<TOptions, TMappedOptions>;
807
+ type TypedOption<TFlags extends string, TOptions, TTypes, TRequired extends boolean | undefined = undefined, TDefault = undefined> = number extends TTypes ? any : TFlags extends `${string}--${infer Name}=${infer TRestFlags}` ? ValuesOption<Name, TRestFlags, TTypes, IsRequired<TRequired, TDefault>, TDefault> : TFlags extends `${string}--${infer Name} ${infer TRestFlags}` ? ValuesOption<Name, TRestFlags, TTypes, IsRequired<TRequired, TDefault>, TDefault> : TFlags extends `${string}--${infer Name}` ? BooleanOption<Name, TOptions, IsRequired<TRequired, TDefault>, TDefault> : TFlags extends `-${infer Name}=${infer TRestFlags}` ? ValuesOption<Name, TRestFlags, TTypes, IsRequired<TRequired, TDefault>, TDefault> : TFlags extends `-${infer Name} ${infer TRestFlags}` ? ValuesOption<Name, TRestFlags, TTypes, IsRequired<TRequired, TDefault>, TDefault> : TFlags extends `-${infer Name}` ? BooleanOption<Name, TOptions, IsRequired<TRequired, TDefault>, TDefault> : Record<string, unknown>;
808
+ type TypedArguments<TArgs extends string, TTypes> = number extends TTypes ? any : TArgs extends `${infer TArg} ${infer TRestArgs}` ? TArg extends `[${string}]` ? [ArgumentType<TArg, TTypes>?, ...TypedArguments<TRestArgs, TTypes>] : [ArgumentType<TArg, TTypes>, ...TypedArguments<TRestArgs, TTypes>] : TArgs extends `${string}...${string}` ? [
809
+ ...ArgumentType<TArgs, TTypes> extends Array<infer TValue> ? TArgs extends `[${string}]` ? Array<TValue> : [TValue, ...Array<TValue>] : never
810
+ ] : TArgs extends `[${string}]` ? [ArgumentType<TArgs, TTypes>?] : [ArgumentType<TArgs, TTypes>];
811
+ type TypedCommandArguments<TNameAndArguments extends string, TTypes> = number extends TTypes ? any : TNameAndArguments extends `${string} ${infer TFlags}` ? TypedArguments<TFlags, TTypes> : [];
812
+ type TypedEnv<TNameAndValue extends string, TPrefix extends string | undefined, TOptions, TTypes, TRequired extends boolean | undefined = undefined, TDefault = undefined> = number extends TTypes ? any : TNameAndValue extends `${infer Name}=${infer Rest}` ? ValueOption<TrimLeft<Name, TPrefix>, Rest, TTypes, TRequired, TDefault> : TNameAndValue extends `${infer Name} ${infer Rest}` ? ValueOption<TrimLeft<Name, TPrefix>, Rest, TTypes, TRequired, TDefault> : TNameAndValue extends `${infer Name}` ? BooleanOption<TrimLeft<Name, TPrefix>, TOptions, TRequired, TDefault> : Record<string, unknown>;
813
+ type TypedType<TName extends string, THandler extends TypeOrTypeHandler<unknown>> = {
814
+ [Name in TName]: THandler;
815
+ };
816
+ type RequiredKeys<TRecord> = {
817
+ [Key in keyof TRecord]-?: {} extends Pick<TRecord, Key> ? never : Key;
818
+ }[keyof TRecord];
819
+ type OptionalKeys<TRecord> = {
820
+ [Key in keyof TRecord]-?: {} extends Pick<TRecord, Key> ? Key : never;
821
+ }[keyof TRecord];
822
+ type SpreadRequiredProperties<TTarget, TSource, TKeys extends keyof TTarget & keyof TSource> = {
823
+ [Key in TKeys]: Exclude<TTarget[Key], undefined> | Exclude<TSource[Key], undefined>;
824
+ };
825
+ type SpreadOptionalProperties<TTarget, TSource, TKeys extends keyof TTarget & keyof TSource> = {
826
+ [Key in TKeys]?: TTarget[Key] | TSource[Key];
827
+ };
828
+ /** Merge types of two objects. */
829
+ type Spread<TTarget, TSource> = TTarget extends void ? TSource : TSource extends void ? TTarget : Omit<TTarget, keyof TSource> & Omit<TSource, keyof TTarget> & SpreadRequiredProperties<TTarget, TSource, RequiredKeys<TSource> & keyof TTarget> & SpreadRequiredProperties<TTarget, TSource, RequiredKeys<TTarget> & keyof TSource> & SpreadOptionalProperties<TTarget, TSource, OptionalKeys<TTarget> & OptionalKeys<TSource>>;
830
+ type ValueOf<TValue> = TValue extends Record<string, infer V> ? ValueOf<V> : TValue;
831
+ export {};