zod-args-parser 2.0.0-beta.1 → 2.0.0-beta.3

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 (474) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +244 -282
  3. package/lib/esm/autocomplete-scripts/bash-autocomplete-script.js +74 -2
  4. package/lib/esm/autocomplete-scripts/bash-autocomplete-script.js.map +7 -1
  5. package/lib/esm/autocomplete-scripts/powershell-autocomplete-script.js +90 -2
  6. package/lib/esm/autocomplete-scripts/powershell-autocomplete-script.js.map +7 -1
  7. package/lib/esm/autocomplete-scripts/zsh-autocomplete-script.js +39 -13
  8. package/lib/esm/autocomplete-scripts/zsh-autocomplete-script.js.map +7 -1
  9. package/lib/esm/cli-error/cli-error.js +38 -0
  10. package/lib/esm/cli-error/cli-error.js.map +7 -0
  11. package/lib/esm/cli-error/error-cause.js +12 -0
  12. package/lib/esm/cli-error/error-cause.js.map +7 -0
  13. package/lib/esm/cli-error/error-code/definition-error-code.js +23 -0
  14. package/lib/esm/cli-error/error-code/definition-error-code.js.map +7 -0
  15. package/lib/esm/cli-error/error-code/internal-error-code.js +10 -0
  16. package/lib/esm/cli-error/error-code/internal-error-code.js.map +7 -0
  17. package/lib/esm/cli-error/error-code/parse-error-code.js +18 -0
  18. package/lib/esm/cli-error/error-code/parse-error-code.js.map +7 -0
  19. package/lib/esm/cli-error/error-code/validation-error-code.js +17 -0
  20. package/lib/esm/cli-error/error-code/validation-error-code.js.map +7 -0
  21. package/lib/esm/cli-error/error-message/definition-error-message.js +70 -0
  22. package/lib/esm/cli-error/error-message/definition-error-message.js.map +7 -0
  23. package/lib/esm/cli-error/error-message/internal-error-message.js +16 -0
  24. package/lib/esm/cli-error/error-message/internal-error-message.js.map +7 -0
  25. package/lib/esm/cli-error/error-message/parse-error-message.js +40 -0
  26. package/lib/esm/cli-error/error-message/parse-error-message.js.map +7 -0
  27. package/lib/esm/cli-error/error-message/validation-error-message.js +60 -0
  28. package/lib/esm/cli-error/error-message/validation-error-message.js.map +7 -0
  29. package/lib/esm/coerce/coerce-methods.js +197 -2
  30. package/lib/esm/coerce/coerce-methods.js.map +7 -1
  31. package/lib/esm/coerce/string-to-array.js +17 -2
  32. package/lib/esm/coerce/string-to-array.js.map +7 -1
  33. package/lib/esm/coerce/string-to-primitive.js +73 -2
  34. package/lib/esm/coerce/string-to-primitive.js.map +7 -1
  35. package/lib/esm/coerce/string-to-set.js +17 -2
  36. package/lib/esm/coerce/string-to-set.js.map +7 -1
  37. package/lib/esm/definitions/define-arguments.js +10 -2
  38. package/lib/esm/definitions/define-arguments.js.map +7 -1
  39. package/lib/esm/definitions/define-cli.js +89 -2
  40. package/lib/esm/definitions/define-cli.js.map +7 -1
  41. package/lib/esm/definitions/define-options.js +10 -2
  42. package/lib/esm/definitions/define-options.js.map +7 -1
  43. package/lib/esm/definitions/define-subcommand.js +56 -2
  44. package/lib/esm/definitions/define-subcommand.js.map +7 -1
  45. package/lib/esm/definitions/validate-cli-definition.js +360 -2
  46. package/lib/esm/definitions/validate-cli-definition.js.map +7 -1
  47. package/lib/esm/help-message/format-arguments.js +48 -2
  48. package/lib/esm/help-message/format-arguments.js.map +7 -1
  49. package/lib/esm/help-message/format-options.js +50 -2
  50. package/lib/esm/help-message/format-options.js.map +7 -1
  51. package/lib/esm/help-message/format-subcommands.js +37 -2
  52. package/lib/esm/help-message/format-subcommands.js.map +7 -1
  53. package/lib/esm/help-message/generate-for-cli.js +71 -2
  54. package/lib/esm/help-message/generate-for-cli.js.map +7 -1
  55. package/lib/esm/help-message/generate-for-subcommand.js +23 -2
  56. package/lib/esm/help-message/generate-for-subcommand.js.map +7 -1
  57. package/lib/esm/help-message/print-help.js +14 -2
  58. package/lib/esm/help-message/print-help.js.map +7 -1
  59. package/lib/esm/help-message/set-defaults.js +29 -2
  60. package/lib/esm/help-message/set-defaults.js.map +7 -1
  61. package/lib/esm/help-message/styles.js +154 -2
  62. package/lib/esm/help-message/styles.js.map +7 -1
  63. package/lib/esm/help-message/terminal-markdown.js +121 -2
  64. package/lib/esm/help-message/terminal-markdown.js.map +7 -1
  65. package/lib/esm/index.js +52 -2
  66. package/lib/esm/index.js.map +7 -1
  67. package/lib/esm/markdown/generate-markdown.js +153 -2
  68. package/lib/esm/markdown/generate-markdown.js.map +7 -1
  69. package/lib/esm/metadata/arguments-metadata.js +26 -2
  70. package/lib/esm/metadata/arguments-metadata.js.map +7 -1
  71. package/lib/esm/metadata/cli-metadata.js +24 -2
  72. package/lib/esm/metadata/cli-metadata.js.map +7 -1
  73. package/lib/esm/metadata/options-metadata.js +35 -2
  74. package/lib/esm/metadata/options-metadata.js.map +7 -1
  75. package/lib/esm/metadata/subcommands-metadata.js +32 -2
  76. package/lib/esm/metadata/subcommands-metadata.js.map +7 -1
  77. package/lib/esm/parse/context/cli-context-builder.js +283 -2
  78. package/lib/esm/parse/context/cli-context-builder.js.map +7 -1
  79. package/lib/esm/parse/context/object-context-builder.js +62 -2
  80. package/lib/esm/parse/context/object-context-builder.js.map +7 -1
  81. package/lib/esm/parse/parser-utilities.js +108 -2
  82. package/lib/esm/parse/parser-utilities.js.map +7 -1
  83. package/lib/esm/parse/safe-parse.js +57 -2
  84. package/lib/esm/parse/safe-parse.js.map +7 -1
  85. package/lib/esm/parse/validation/validate-context.js +17 -2
  86. package/lib/esm/parse/validation/validate-context.js.map +7 -1
  87. package/lib/esm/parse/validation/validators/arguments.js +67 -2
  88. package/lib/esm/parse/validation/validators/arguments.js.map +7 -1
  89. package/lib/esm/parse/validation/validators/conflict.js +38 -2
  90. package/lib/esm/parse/validation/validators/conflict.js.map +7 -1
  91. package/lib/esm/parse/validation/validators/exclusive.js +39 -2
  92. package/lib/esm/parse/validation/validators/exclusive.js.map +7 -1
  93. package/lib/esm/parse/validation/validators/explicitly-passed.js +18 -2
  94. package/lib/esm/parse/validation/validators/explicitly-passed.js.map +7 -1
  95. package/lib/esm/parse/validation/validators/options.js +67 -2
  96. package/lib/esm/parse/validation/validators/options.js.map +7 -1
  97. package/lib/esm/parse/validation/validators/requires.js +43 -2
  98. package/lib/esm/parse/validation/validators/requires.js.map +7 -1
  99. package/lib/esm/utilities/parse-argv.js +61 -0
  100. package/lib/esm/utilities/parse-argv.js.map +7 -0
  101. package/lib/esm/utilities/schema-utilities.js +57 -0
  102. package/lib/esm/utilities/schema-utilities.js.map +7 -0
  103. package/lib/esm/utilities/utilities.js +122 -0
  104. package/lib/esm/utilities/utilities.js.map +7 -0
  105. package/lib/iife/index.js +41 -1
  106. package/lib/iife/index.js.map +1 -1
  107. package/lib/mjs/autocomplete-scripts/bash-autocomplete-script.mjs +74 -2
  108. package/lib/mjs/autocomplete-scripts/bash-autocomplete-script.mjs.map +7 -1
  109. package/lib/mjs/autocomplete-scripts/powershell-autocomplete-script.mjs +90 -2
  110. package/lib/mjs/autocomplete-scripts/powershell-autocomplete-script.mjs.map +7 -1
  111. package/lib/mjs/autocomplete-scripts/zsh-autocomplete-script.mjs +39 -13
  112. package/lib/mjs/autocomplete-scripts/zsh-autocomplete-script.mjs.map +7 -1
  113. package/lib/mjs/cli-error/cli-error.mjs +38 -0
  114. package/lib/mjs/cli-error/cli-error.mjs.map +7 -0
  115. package/lib/mjs/cli-error/error-cause.mjs +12 -0
  116. package/lib/mjs/cli-error/error-cause.mjs.map +7 -0
  117. package/lib/mjs/cli-error/error-code/definition-error-code.mjs +23 -0
  118. package/lib/mjs/cli-error/error-code/definition-error-code.mjs.map +7 -0
  119. package/lib/mjs/cli-error/error-code/internal-error-code.mjs +10 -0
  120. package/lib/mjs/cli-error/error-code/internal-error-code.mjs.map +7 -0
  121. package/lib/mjs/cli-error/error-code/parse-error-code.mjs +18 -0
  122. package/lib/mjs/cli-error/error-code/parse-error-code.mjs.map +7 -0
  123. package/lib/mjs/cli-error/error-code/validation-error-code.mjs +17 -0
  124. package/lib/mjs/cli-error/error-code/validation-error-code.mjs.map +7 -0
  125. package/lib/mjs/cli-error/error-message/definition-error-message.mjs +70 -0
  126. package/lib/mjs/cli-error/error-message/definition-error-message.mjs.map +7 -0
  127. package/lib/mjs/cli-error/error-message/internal-error-message.mjs +16 -0
  128. package/lib/mjs/cli-error/error-message/internal-error-message.mjs.map +7 -0
  129. package/lib/mjs/cli-error/error-message/parse-error-message.mjs +40 -0
  130. package/lib/mjs/cli-error/error-message/parse-error-message.mjs.map +7 -0
  131. package/lib/mjs/cli-error/error-message/validation-error-message.mjs +60 -0
  132. package/lib/mjs/cli-error/error-message/validation-error-message.mjs.map +7 -0
  133. package/lib/mjs/coerce/coerce-methods.mjs +197 -2
  134. package/lib/mjs/coerce/coerce-methods.mjs.map +7 -1
  135. package/lib/mjs/coerce/string-to-array.mjs +17 -2
  136. package/lib/mjs/coerce/string-to-array.mjs.map +7 -1
  137. package/lib/mjs/coerce/string-to-primitive.mjs +73 -2
  138. package/lib/mjs/coerce/string-to-primitive.mjs.map +7 -1
  139. package/lib/mjs/coerce/string-to-set.mjs +17 -2
  140. package/lib/mjs/coerce/string-to-set.mjs.map +7 -1
  141. package/lib/mjs/definitions/define-arguments.mjs +10 -2
  142. package/lib/mjs/definitions/define-arguments.mjs.map +7 -1
  143. package/lib/mjs/definitions/define-cli.mjs +89 -2
  144. package/lib/mjs/definitions/define-cli.mjs.map +7 -1
  145. package/lib/mjs/definitions/define-options.mjs +10 -2
  146. package/lib/mjs/definitions/define-options.mjs.map +7 -1
  147. package/lib/mjs/definitions/define-subcommand.mjs +56 -2
  148. package/lib/mjs/definitions/define-subcommand.mjs.map +7 -1
  149. package/lib/mjs/definitions/validate-cli-definition.mjs +360 -2
  150. package/lib/mjs/definitions/validate-cli-definition.mjs.map +7 -1
  151. package/lib/mjs/help-message/format-arguments.mjs +48 -2
  152. package/lib/mjs/help-message/format-arguments.mjs.map +7 -1
  153. package/lib/mjs/help-message/format-options.mjs +50 -2
  154. package/lib/mjs/help-message/format-options.mjs.map +7 -1
  155. package/lib/mjs/help-message/format-subcommands.mjs +37 -2
  156. package/lib/mjs/help-message/format-subcommands.mjs.map +7 -1
  157. package/lib/mjs/help-message/generate-for-cli.mjs +71 -2
  158. package/lib/mjs/help-message/generate-for-cli.mjs.map +7 -1
  159. package/lib/mjs/help-message/generate-for-subcommand.mjs +23 -2
  160. package/lib/mjs/help-message/generate-for-subcommand.mjs.map +7 -1
  161. package/lib/mjs/help-message/print-help.mjs +14 -2
  162. package/lib/mjs/help-message/print-help.mjs.map +7 -1
  163. package/lib/mjs/help-message/set-defaults.mjs +29 -2
  164. package/lib/mjs/help-message/set-defaults.mjs.map +7 -1
  165. package/lib/mjs/help-message/styles.mjs +154 -2
  166. package/lib/mjs/help-message/styles.mjs.map +7 -1
  167. package/lib/mjs/help-message/terminal-markdown.mjs +121 -2
  168. package/lib/mjs/help-message/terminal-markdown.mjs.map +7 -1
  169. package/lib/mjs/index.mjs +52 -2
  170. package/lib/mjs/index.mjs.map +7 -1
  171. package/lib/mjs/markdown/generate-markdown.mjs +153 -2
  172. package/lib/mjs/markdown/generate-markdown.mjs.map +7 -1
  173. package/lib/mjs/metadata/arguments-metadata.mjs +26 -2
  174. package/lib/mjs/metadata/arguments-metadata.mjs.map +7 -1
  175. package/lib/mjs/metadata/cli-metadata.mjs +24 -2
  176. package/lib/mjs/metadata/cli-metadata.mjs.map +7 -1
  177. package/lib/mjs/metadata/options-metadata.mjs +35 -2
  178. package/lib/mjs/metadata/options-metadata.mjs.map +7 -1
  179. package/lib/mjs/metadata/subcommands-metadata.mjs +32 -2
  180. package/lib/mjs/metadata/subcommands-metadata.mjs.map +7 -1
  181. package/lib/mjs/parse/context/cli-context-builder.mjs +283 -2
  182. package/lib/mjs/parse/context/cli-context-builder.mjs.map +7 -1
  183. package/lib/mjs/parse/context/object-context-builder.mjs +62 -2
  184. package/lib/mjs/parse/context/object-context-builder.mjs.map +7 -1
  185. package/lib/mjs/parse/parser-utilities.mjs +108 -2
  186. package/lib/mjs/parse/parser-utilities.mjs.map +7 -1
  187. package/lib/mjs/parse/safe-parse.mjs +57 -2
  188. package/lib/mjs/parse/safe-parse.mjs.map +7 -1
  189. package/lib/mjs/parse/validation/validate-context.mjs +17 -2
  190. package/lib/mjs/parse/validation/validate-context.mjs.map +7 -1
  191. package/lib/mjs/parse/validation/validators/arguments.mjs +67 -2
  192. package/lib/mjs/parse/validation/validators/arguments.mjs.map +7 -1
  193. package/lib/mjs/parse/validation/validators/conflict.mjs +38 -2
  194. package/lib/mjs/parse/validation/validators/conflict.mjs.map +7 -1
  195. package/lib/mjs/parse/validation/validators/exclusive.mjs +39 -2
  196. package/lib/mjs/parse/validation/validators/exclusive.mjs.map +7 -1
  197. package/lib/mjs/parse/validation/validators/explicitly-passed.mjs +18 -2
  198. package/lib/mjs/parse/validation/validators/explicitly-passed.mjs.map +7 -1
  199. package/lib/mjs/parse/validation/validators/options.mjs +67 -2
  200. package/lib/mjs/parse/validation/validators/options.mjs.map +7 -1
  201. package/lib/mjs/parse/validation/validators/requires.mjs +43 -2
  202. package/lib/mjs/parse/validation/validators/requires.mjs.map +7 -1
  203. package/lib/mjs/utilities/parse-argv.mjs +61 -0
  204. package/lib/mjs/utilities/parse-argv.mjs.map +7 -0
  205. package/lib/mjs/utilities/schema-utilities.mjs +57 -0
  206. package/lib/mjs/utilities/schema-utilities.mjs.map +7 -0
  207. package/lib/mjs/utilities/utilities.mjs +122 -0
  208. package/lib/mjs/utilities/utilities.mjs.map +7 -0
  209. package/lib/{typescript → types}/autocomplete-scripts/bash-autocomplete-script.d.ts.map +1 -1
  210. package/lib/types/autocomplete-scripts/powershell-autocomplete-script.d.ts +15 -0
  211. package/lib/{typescript → types}/autocomplete-scripts/powershell-autocomplete-script.d.ts.map +1 -1
  212. package/lib/types/autocomplete-scripts/zsh-autocomplete-script.d.ts +4 -0
  213. package/lib/{typescript → types}/autocomplete-scripts/zsh-autocomplete-script.d.ts.map +1 -1
  214. package/lib/types/cli-error/cli-error.d.ts +152 -0
  215. package/lib/types/cli-error/cli-error.d.ts.map +1 -0
  216. package/lib/types/cli-error/error-cause.d.ts +5 -0
  217. package/lib/types/cli-error/error-cause.d.ts.map +1 -0
  218. package/lib/types/cli-error/error-code/definition-error-code.d.ts +5 -0
  219. package/lib/types/cli-error/error-code/definition-error-code.d.ts.map +1 -0
  220. package/lib/types/cli-error/error-code/internal-error-code.d.ts +5 -0
  221. package/lib/types/cli-error/error-code/internal-error-code.d.ts.map +1 -0
  222. package/lib/types/cli-error/error-code/parse-error-code.d.ts +5 -0
  223. package/lib/types/cli-error/error-code/parse-error-code.d.ts.map +1 -0
  224. package/lib/types/cli-error/error-code/validation-error-code.d.ts +5 -0
  225. package/lib/types/cli-error/error-code/validation-error-code.d.ts.map +1 -0
  226. package/lib/types/cli-error/error-message/definition-error-message.d.ts +3 -0
  227. package/lib/types/cli-error/error-message/definition-error-message.d.ts.map +1 -0
  228. package/lib/types/cli-error/error-message/internal-error-message.d.ts +3 -0
  229. package/lib/types/cli-error/error-message/internal-error-message.d.ts.map +1 -0
  230. package/lib/types/cli-error/error-message/parse-error-message.d.ts +3 -0
  231. package/lib/types/cli-error/error-message/parse-error-message.d.ts.map +1 -0
  232. package/lib/types/cli-error/error-message/validation-error-message.d.ts +3 -0
  233. package/lib/types/cli-error/error-message/validation-error-message.d.ts.map +1 -0
  234. package/lib/types/coerce/coerce-methods.d.ts +122 -0
  235. package/lib/types/coerce/coerce-methods.d.ts.map +1 -0
  236. package/lib/{typescript → types}/coerce/string-to-array.d.ts +2 -2
  237. package/lib/types/coerce/string-to-array.d.ts.map +1 -0
  238. package/lib/types/coerce/string-to-primitive.d.ts +21 -0
  239. package/lib/types/coerce/string-to-primitive.d.ts.map +1 -0
  240. package/lib/{typescript → types}/coerce/string-to-set.d.ts +2 -2
  241. package/lib/{typescript → types}/coerce/string-to-set.d.ts.map +1 -1
  242. package/lib/{typescript → types}/definitions/define-cli.d.ts +2 -6
  243. package/lib/types/definitions/define-cli.d.ts.map +1 -0
  244. package/lib/{typescript → types}/definitions/define-subcommand.d.ts +2 -4
  245. package/lib/types/definitions/define-subcommand.d.ts.map +1 -0
  246. package/lib/{typescript → types}/definitions/validate-cli-definition.d.ts +1 -1
  247. package/lib/types/definitions/validate-cli-definition.d.ts.map +1 -0
  248. package/lib/{typescript → types}/help-message/terminal-markdown.d.ts.map +1 -1
  249. package/lib/{typescript → types}/index.d.ts +7 -0
  250. package/lib/{typescript → types}/index.d.ts.map +1 -1
  251. package/lib/{typescript → types}/metadata/arguments-metadata.d.ts.map +1 -1
  252. package/lib/{typescript → types}/metadata/options-metadata.d.ts.map +1 -1
  253. package/lib/{typescript → types}/parse/context/cli-context-builder.d.ts +1 -1
  254. package/lib/{typescript → types}/parse/context/cli-context-builder.d.ts.map +1 -1
  255. package/lib/{typescript → types}/parse/context/object-context-builder.d.ts +1 -1
  256. package/lib/types/parse/context/object-context-builder.d.ts.map +1 -0
  257. package/lib/{typescript → types}/parse/parser-utilities.d.ts +9 -0
  258. package/lib/{typescript → types}/parse/parser-utilities.d.ts.map +1 -1
  259. package/lib/{typescript → types}/parse/safe-parse.d.ts.map +1 -1
  260. package/lib/{typescript → types}/parse/validation/validate-context.d.ts +1 -1
  261. package/lib/{typescript → types}/parse/validation/validate-context.d.ts.map +1 -1
  262. package/lib/{typescript → types}/parse/validation/validators/arguments.d.ts +1 -1
  263. package/lib/{typescript → types}/parse/validation/validators/arguments.d.ts.map +1 -1
  264. package/lib/{typescript → types}/parse/validation/validators/conflict.d.ts +3 -3
  265. package/lib/{typescript → types}/parse/validation/validators/conflict.d.ts.map +1 -1
  266. package/lib/{typescript → types}/parse/validation/validators/exclusive.d.ts +3 -3
  267. package/lib/{typescript → types}/parse/validation/validators/exclusive.d.ts.map +1 -1
  268. package/lib/{typescript → types}/parse/validation/validators/options.d.ts +1 -1
  269. package/lib/{typescript → types}/parse/validation/validators/options.d.ts.map +1 -1
  270. package/lib/{typescript → types}/parse/validation/validators/requires.d.ts +3 -3
  271. package/lib/{typescript → types}/parse/validation/validators/requires.d.ts.map +1 -1
  272. package/lib/{typescript → types}/types/definitions-types.d.ts +35 -4
  273. package/lib/types/types/definitions-types.d.ts.map +1 -0
  274. package/lib/types/types/error-types.d.ts +275 -0
  275. package/lib/types/types/error-types.d.ts.map +1 -0
  276. package/lib/types/types/types.d.ts +146 -0
  277. package/lib/types/types/types.d.ts.map +1 -0
  278. package/lib/{typescript → types}/types/utilities-types.d.ts +0 -2
  279. package/lib/{typescript → types}/types/utilities-types.d.ts.map +1 -1
  280. package/lib/types/utilities/parse-argv.d.ts +3 -0
  281. package/lib/types/utilities/parse-argv.d.ts.map +1 -0
  282. package/lib/types/utilities/schema-utilities.d.ts +15 -0
  283. package/lib/types/utilities/schema-utilities.d.ts.map +1 -0
  284. package/lib/{typescript → types/utilities}/utilities.d.ts +12 -15
  285. package/lib/types/utilities/utilities.d.ts.map +1 -0
  286. package/package.json +10 -9
  287. package/src/autocomplete-scripts/bash-autocomplete-script.ts +14 -12
  288. package/src/autocomplete-scripts/powershell-autocomplete-script.ts +67 -33
  289. package/src/autocomplete-scripts/zsh-autocomplete-script.ts +39 -31
  290. package/src/cli-error/cli-error.ts +44 -0
  291. package/src/cli-error/error-cause.ts +10 -0
  292. package/src/cli-error/error-code/definition-error-code.ts +21 -0
  293. package/src/cli-error/error-code/internal-error-code.ts +8 -0
  294. package/src/cli-error/error-code/parse-error-code.ts +16 -0
  295. package/src/cli-error/error-code/validation-error-code.ts +15 -0
  296. package/src/cli-error/error-message/definition-error-message.ts +144 -0
  297. package/src/cli-error/error-message/internal-error-message.ts +19 -0
  298. package/src/cli-error/error-message/parse-error-message.ts +76 -0
  299. package/src/cli-error/error-message/validation-error-message.ts +104 -0
  300. package/src/coerce/coerce-methods.ts +194 -39
  301. package/src/coerce/string-to-array.ts +2 -2
  302. package/src/coerce/string-to-primitive.ts +72 -13
  303. package/src/coerce/string-to-set.ts +2 -2
  304. package/src/definitions/define-arguments.ts +1 -1
  305. package/src/definitions/define-cli.ts +65 -30
  306. package/src/definitions/define-options.ts +1 -1
  307. package/src/definitions/define-subcommand.ts +47 -17
  308. package/src/definitions/validate-cli-definition.ts +287 -172
  309. package/src/help-message/format-arguments.ts +1 -1
  310. package/src/help-message/format-options.ts +1 -1
  311. package/src/help-message/format-subcommands.ts +1 -1
  312. package/src/help-message/generate-for-cli.ts +1 -1
  313. package/src/help-message/terminal-markdown.ts +3 -4
  314. package/src/index.ts +16 -0
  315. package/src/markdown/generate-markdown.ts +5 -4
  316. package/src/metadata/arguments-metadata.ts +2 -1
  317. package/src/metadata/options-metadata.ts +2 -1
  318. package/src/parse/context/cli-context-builder.ts +166 -39
  319. package/src/parse/context/object-context-builder.ts +37 -11
  320. package/src/parse/parser-utilities.ts +24 -10
  321. package/src/parse/safe-parse.ts +3 -6
  322. package/src/parse/validation/validate-context.ts +1 -1
  323. package/src/parse/validation/validators/arguments.ts +42 -14
  324. package/src/parse/validation/validators/conflict.ts +11 -20
  325. package/src/parse/validation/validators/exclusive.ts +16 -25
  326. package/src/parse/validation/validators/options.ts +40 -12
  327. package/src/parse/validation/validators/requires.ts +11 -20
  328. package/src/types/definitions-types.ts +36 -8
  329. package/src/types/error-types.ts +326 -0
  330. package/src/types/types.ts +100 -7
  331. package/src/types/utilities-types.ts +0 -10
  332. package/src/utilities/parse-argv.ts +79 -0
  333. package/src/utilities/schema-utilities.ts +72 -0
  334. package/src/{utilities.ts → utilities/utilities.ts} +25 -138
  335. package/lib/cjs/autocomplete-scripts/bash-autocomplete-script.cjs +0 -2
  336. package/lib/cjs/autocomplete-scripts/bash-autocomplete-script.cjs.map +0 -1
  337. package/lib/cjs/autocomplete-scripts/powershell-autocomplete-script.cjs +0 -2
  338. package/lib/cjs/autocomplete-scripts/powershell-autocomplete-script.cjs.map +0 -1
  339. package/lib/cjs/autocomplete-scripts/zsh-autocomplete-script.cjs +0 -42
  340. package/lib/cjs/autocomplete-scripts/zsh-autocomplete-script.cjs.map +0 -1
  341. package/lib/cjs/coerce/coerce-methods.cjs +0 -2
  342. package/lib/cjs/coerce/coerce-methods.cjs.map +0 -1
  343. package/lib/cjs/coerce/string-to-array.cjs +0 -2
  344. package/lib/cjs/coerce/string-to-array.cjs.map +0 -1
  345. package/lib/cjs/coerce/string-to-primitive.cjs +0 -2
  346. package/lib/cjs/coerce/string-to-primitive.cjs.map +0 -1
  347. package/lib/cjs/coerce/string-to-set.cjs +0 -2
  348. package/lib/cjs/coerce/string-to-set.cjs.map +0 -1
  349. package/lib/cjs/definitions/define-arguments.cjs +0 -2
  350. package/lib/cjs/definitions/define-arguments.cjs.map +0 -1
  351. package/lib/cjs/definitions/define-cli.cjs +0 -2
  352. package/lib/cjs/definitions/define-cli.cjs.map +0 -1
  353. package/lib/cjs/definitions/define-options.cjs +0 -2
  354. package/lib/cjs/definitions/define-options.cjs.map +0 -1
  355. package/lib/cjs/definitions/define-subcommand.cjs +0 -2
  356. package/lib/cjs/definitions/define-subcommand.cjs.map +0 -1
  357. package/lib/cjs/definitions/validate-cli-definition.cjs +0 -2
  358. package/lib/cjs/definitions/validate-cli-definition.cjs.map +0 -1
  359. package/lib/cjs/help-message/format-arguments.cjs +0 -2
  360. package/lib/cjs/help-message/format-arguments.cjs.map +0 -1
  361. package/lib/cjs/help-message/format-options.cjs +0 -2
  362. package/lib/cjs/help-message/format-options.cjs.map +0 -1
  363. package/lib/cjs/help-message/format-subcommands.cjs +0 -2
  364. package/lib/cjs/help-message/format-subcommands.cjs.map +0 -1
  365. package/lib/cjs/help-message/generate-for-cli.cjs +0 -2
  366. package/lib/cjs/help-message/generate-for-cli.cjs.map +0 -1
  367. package/lib/cjs/help-message/generate-for-subcommand.cjs +0 -2
  368. package/lib/cjs/help-message/generate-for-subcommand.cjs.map +0 -1
  369. package/lib/cjs/help-message/print-help.cjs +0 -2
  370. package/lib/cjs/help-message/print-help.cjs.map +0 -1
  371. package/lib/cjs/help-message/set-defaults.cjs +0 -2
  372. package/lib/cjs/help-message/set-defaults.cjs.map +0 -1
  373. package/lib/cjs/help-message/styles.cjs +0 -2
  374. package/lib/cjs/help-message/styles.cjs.map +0 -1
  375. package/lib/cjs/help-message/terminal-markdown.cjs +0 -2
  376. package/lib/cjs/help-message/terminal-markdown.cjs.map +0 -1
  377. package/lib/cjs/index.cjs +0 -2
  378. package/lib/cjs/index.cjs.map +0 -1
  379. package/lib/cjs/markdown/generate-markdown.cjs +0 -2
  380. package/lib/cjs/markdown/generate-markdown.cjs.map +0 -1
  381. package/lib/cjs/metadata/arguments-metadata.cjs +0 -2
  382. package/lib/cjs/metadata/arguments-metadata.cjs.map +0 -1
  383. package/lib/cjs/metadata/cli-metadata.cjs +0 -2
  384. package/lib/cjs/metadata/cli-metadata.cjs.map +0 -1
  385. package/lib/cjs/metadata/options-metadata.cjs +0 -2
  386. package/lib/cjs/metadata/options-metadata.cjs.map +0 -1
  387. package/lib/cjs/metadata/subcommands-metadata.cjs +0 -2
  388. package/lib/cjs/metadata/subcommands-metadata.cjs.map +0 -1
  389. package/lib/cjs/parse/context/cli-context-builder.cjs +0 -2
  390. package/lib/cjs/parse/context/cli-context-builder.cjs.map +0 -1
  391. package/lib/cjs/parse/context/object-context-builder.cjs +0 -2
  392. package/lib/cjs/parse/context/object-context-builder.cjs.map +0 -1
  393. package/lib/cjs/parse/parser-utilities.cjs +0 -2
  394. package/lib/cjs/parse/parser-utilities.cjs.map +0 -1
  395. package/lib/cjs/parse/safe-parse.cjs +0 -2
  396. package/lib/cjs/parse/safe-parse.cjs.map +0 -1
  397. package/lib/cjs/parse/validation/validate-context.cjs +0 -2
  398. package/lib/cjs/parse/validation/validate-context.cjs.map +0 -1
  399. package/lib/cjs/parse/validation/validators/arguments.cjs +0 -2
  400. package/lib/cjs/parse/validation/validators/arguments.cjs.map +0 -1
  401. package/lib/cjs/parse/validation/validators/conflict.cjs +0 -2
  402. package/lib/cjs/parse/validation/validators/conflict.cjs.map +0 -1
  403. package/lib/cjs/parse/validation/validators/exclusive.cjs +0 -2
  404. package/lib/cjs/parse/validation/validators/exclusive.cjs.map +0 -1
  405. package/lib/cjs/parse/validation/validators/explicitly-passed.cjs +0 -2
  406. package/lib/cjs/parse/validation/validators/explicitly-passed.cjs.map +0 -1
  407. package/lib/cjs/parse/validation/validators/options.cjs +0 -2
  408. package/lib/cjs/parse/validation/validators/options.cjs.map +0 -1
  409. package/lib/cjs/parse/validation/validators/requires.cjs +0 -2
  410. package/lib/cjs/parse/validation/validators/requires.cjs.map +0 -1
  411. package/lib/cjs/utilities.cjs +0 -2
  412. package/lib/cjs/utilities.cjs.map +0 -1
  413. package/lib/esm/utilities.js +0 -2
  414. package/lib/esm/utilities.js.map +0 -1
  415. package/lib/mjs/utilities.mjs +0 -2
  416. package/lib/mjs/utilities.mjs.map +0 -1
  417. package/lib/typescript/autocomplete-scripts/powershell-autocomplete-script.d.ts +0 -14
  418. package/lib/typescript/autocomplete-scripts/zsh-autocomplete-script.d.ts +0 -11
  419. package/lib/typescript/coerce/coerce-methods.d.ts +0 -20
  420. package/lib/typescript/coerce/coerce-methods.d.ts.map +0 -1
  421. package/lib/typescript/coerce/string-to-array.d.ts.map +0 -1
  422. package/lib/typescript/coerce/string-to-primitive.d.ts +0 -5
  423. package/lib/typescript/coerce/string-to-primitive.d.ts.map +0 -1
  424. package/lib/typescript/definitions/define-cli.d.ts.map +0 -1
  425. package/lib/typescript/definitions/define-subcommand.d.ts.map +0 -1
  426. package/lib/typescript/definitions/validate-cli-definition.d.ts.map +0 -1
  427. package/lib/typescript/parse/context/object-context-builder.d.ts.map +0 -1
  428. package/lib/typescript/types/definitions-types.d.ts.map +0 -1
  429. package/lib/typescript/types/types.d.ts +0 -61
  430. package/lib/typescript/types/types.d.ts.map +0 -1
  431. package/lib/typescript/utilities.d.ts.map +0 -1
  432. /package/lib/{typescript → types}/autocomplete-scripts/bash-autocomplete-script.d.ts +0 -0
  433. /package/lib/{typescript → types}/definitions/define-arguments.d.ts +0 -0
  434. /package/lib/{typescript → types}/definitions/define-arguments.d.ts.map +0 -0
  435. /package/lib/{typescript → types}/definitions/define-options.d.ts +0 -0
  436. /package/lib/{typescript → types}/definitions/define-options.d.ts.map +0 -0
  437. /package/lib/{typescript → types}/help-message/format-arguments.d.ts +0 -0
  438. /package/lib/{typescript → types}/help-message/format-arguments.d.ts.map +0 -0
  439. /package/lib/{typescript → types}/help-message/format-options.d.ts +0 -0
  440. /package/lib/{typescript → types}/help-message/format-options.d.ts.map +0 -0
  441. /package/lib/{typescript → types}/help-message/format-subcommands.d.ts +0 -0
  442. /package/lib/{typescript → types}/help-message/format-subcommands.d.ts.map +0 -0
  443. /package/lib/{typescript → types}/help-message/generate-for-cli.d.ts +0 -0
  444. /package/lib/{typescript → types}/help-message/generate-for-cli.d.ts.map +0 -0
  445. /package/lib/{typescript → types}/help-message/generate-for-subcommand.d.ts +0 -0
  446. /package/lib/{typescript → types}/help-message/generate-for-subcommand.d.ts.map +0 -0
  447. /package/lib/{typescript → types}/help-message/print-help.d.ts +0 -0
  448. /package/lib/{typescript → types}/help-message/print-help.d.ts.map +0 -0
  449. /package/lib/{typescript → types}/help-message/set-defaults.d.ts +0 -0
  450. /package/lib/{typescript → types}/help-message/set-defaults.d.ts.map +0 -0
  451. /package/lib/{typescript → types}/help-message/styles.d.ts +0 -0
  452. /package/lib/{typescript → types}/help-message/styles.d.ts.map +0 -0
  453. /package/lib/{typescript → types}/help-message/terminal-markdown.d.ts +0 -0
  454. /package/lib/{typescript → types}/markdown/generate-markdown.d.ts +0 -0
  455. /package/lib/{typescript → types}/markdown/generate-markdown.d.ts.map +0 -0
  456. /package/lib/{typescript → types}/metadata/arguments-metadata.d.ts +0 -0
  457. /package/lib/{typescript → types}/metadata/cli-metadata.d.ts +0 -0
  458. /package/lib/{typescript → types}/metadata/cli-metadata.d.ts.map +0 -0
  459. /package/lib/{typescript → types}/metadata/options-metadata.d.ts +0 -0
  460. /package/lib/{typescript → types}/metadata/subcommands-metadata.d.ts +0 -0
  461. /package/lib/{typescript → types}/metadata/subcommands-metadata.d.ts.map +0 -0
  462. /package/lib/{typescript → types}/parse/safe-parse.d.ts +0 -0
  463. /package/lib/{typescript → types}/parse/validation/validators/explicitly-passed.d.ts +0 -0
  464. /package/lib/{typescript → types}/parse/validation/validators/explicitly-passed.d.ts.map +0 -0
  465. /package/lib/{typescript → types}/types/context-types.d.ts +0 -0
  466. /package/lib/{typescript → types}/types/context-types.d.ts.map +0 -0
  467. /package/lib/{typescript → types}/types/help-message-types.d.ts +0 -0
  468. /package/lib/{typescript → types}/types/help-message-types.d.ts.map +0 -0
  469. /package/lib/{typescript → types}/types/io-types.d.ts +0 -0
  470. /package/lib/{typescript → types}/types/io-types.d.ts.map +0 -0
  471. /package/lib/{typescript → types}/types/metadata-types.d.ts +0 -0
  472. /package/lib/{typescript → types}/types/metadata-types.d.ts.map +0 -0
  473. /package/lib/{typescript → types}/types/schema-types.d.ts +0 -0
  474. /package/lib/{typescript → types}/types/schema-types.d.ts.map +0 -0
@@ -6,7 +6,7 @@ interface ValidateArgument {
6
6
  context: ContextWide;
7
7
  output: OutputTypeWide;
8
8
  }
9
- /** @throws {Error} */
9
+ /** @throws {CliError} */
10
10
  export declare function validateArguments({ commandDefinition, context, output }: ValidateArgument): void;
11
11
  export {};
12
12
  //# sourceMappingURL=arguments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/arguments.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,UAAU,gBAAgB;IACxB,iBAAiB,EAAE,UAAU,GAAG,GAAG,CAAC;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,sBAAsB;AACtB,wBAAgB,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,gBAAgB,QA0CzF"}
1
+ {"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/arguments.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,UAAU,gBAAgB;IACxB,iBAAiB,EAAE,UAAU,GAAG,GAAG,CAAC;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,yBAAyB;AACzB,wBAAgB,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,gBAAgB,QAkEzF"}
@@ -8,9 +8,9 @@ interface ValidateConflictOptions {
8
8
  /** The parsed context */
9
9
  context: ContextWide;
10
10
  /** What we're checking */
11
- type: "option" | "argument";
11
+ kind: "option" | "argument";
12
12
  }
13
- /** @throws {Error} */
14
- export declare function validateConflictWith({ name, optionOrArgument, context, type }: ValidateConflictOptions): void;
13
+ /** @throws {CliError} */
14
+ export declare function validateConflictWith({ name, optionOrArgument, context, kind }: ValidateConflictOptions): void;
15
15
  export {};
16
16
  //# sourceMappingURL=conflict.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conflict.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/conflict.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE5E,UAAU,uBAAuB;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpC,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAC;IAErB,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7B;AAED,sBAAsB;AACtB,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,uBAAuB,QA+CtG"}
1
+ {"version":3,"file":"conflict.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/conflict.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE5E,UAAU,uBAAuB;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpC,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAC;IAErB,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7B;AAED,yBAAyB;AACzB,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,uBAAuB,QAmCtG"}
@@ -8,9 +8,9 @@ interface ValidateExclusiveOptions {
8
8
  /** The parsed context */
9
9
  context: ContextWide;
10
10
  /** What we're checking */
11
- type: "option" | "argument";
11
+ kind: "option" | "argument";
12
12
  }
13
- /** @throws {Error} */
14
- export declare function validateExclusive({ name, optionOrArgument, context, type }: ValidateExclusiveOptions): void;
13
+ /** @throws {CliError} */
14
+ export declare function validateExclusive({ name, optionOrArgument, context, kind }: ValidateExclusiveOptions): void;
15
15
  export {};
16
16
  //# sourceMappingURL=exclusive.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exclusive.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/exclusive.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE5E,UAAU,wBAAwB;IAChC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpC,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAC;IAErB,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7B;AAED,sBAAsB;AACtB,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,wBAAwB,QAiDpG"}
1
+ {"version":3,"file":"exclusive.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/exclusive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE5E,UAAU,wBAAwB;IAChC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpC,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAC;IAErB,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7B;AAED,yBAAyB;AACzB,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,wBAAwB,QAqCpG"}
@@ -6,7 +6,7 @@ interface ValidateOptions {
6
6
  context: ContextWide;
7
7
  output: OutputTypeWide;
8
8
  }
9
- /** @throws {Error} */
9
+ /** @throws {CliError} */
10
10
  export declare function validateOptions({ commandDefinition, context, output }: ValidateOptions): void;
11
11
  export {};
12
12
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/options.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,UAAU,eAAe;IACvB,iBAAiB,EAAE,UAAU,GAAG,GAAG,CAAC;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,sBAAsB;AACtB,wBAAgB,eAAe,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,QA0CtF"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/options.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,UAAU,eAAe;IACvB,iBAAiB,EAAE,UAAU,GAAG,GAAG,CAAC;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,yBAAyB;AACzB,wBAAgB,eAAe,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe,QAkEtF"}
@@ -10,9 +10,9 @@ interface ValidateRequiresOptions {
10
10
  /** The parsed context */
11
11
  context: ContextWide;
12
12
  /** What we're checking */
13
- type: "option" | "argument";
13
+ kind: "option" | "argument";
14
14
  }
15
- /** @throws {Error} */
16
- export declare function validateRequires({ name, commandDefinition, optionOrArgument, context, type, }: ValidateRequiresOptions): void;
15
+ /** @throws {CliError} */
16
+ export declare function validateRequires({ name, commandDefinition, optionOrArgument, context, kind, }: ValidateRequiresOptions): void;
17
17
  export {};
18
18
  //# sourceMappingURL=requires.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requires.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/requires.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAE7F,UAAU,uBAAuB;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,iBAAiB,EAAE,UAAU,GAAG,GAAG,CAAC;IAEpC,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpC,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAC;IAErB,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7B;AAED,sBAAsB;AACtB,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,IAAI,GACL,EAAE,uBAAuB,QAgDzB"}
1
+ {"version":3,"file":"requires.d.ts","sourceRoot":"","sources":["../../../../../src/parse/validation/validators/requires.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAE7F,UAAU,uBAAuB;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IAEb,0CAA0C;IAC1C,iBAAiB,EAAE,UAAU,GAAG,GAAG,CAAC;IAEpC,sCAAsC;IACtC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEpC,yBAAyB;IACzB,OAAO,EAAE,WAAW,CAAC;IAErB,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7B;AAED,yBAAyB;AACzB,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,IAAI,GACL,EAAE,uBAAuB,QAoCzB"}
@@ -1,7 +1,6 @@
1
1
  import type { OutputTypeWide } from "./io-types.ts";
2
2
  import type { InferSchemaOutputType, SchemaResult, SchemaType } from "./schema-types.ts";
3
3
  import type { CoerceMethod, CoerceTypes } from "./types.ts";
4
- import type { Widen } from "./utilities-types.ts";
5
4
  export interface PreparedType {
6
5
  schema: SchemaType;
7
6
  coerceTo: CoerceTypes | undefined;
@@ -11,13 +10,45 @@ export interface PreparedType {
11
10
  }
12
11
  /** `schema` (generic) with required `coerce` */
13
12
  interface RequiredCoerce<Schema extends SchemaType> {
13
+ /**
14
+ * The schema to validate the input against.
15
+ *
16
+ * Any validation library that supports [`StandardSchemaV1`](https://github.com/standard-schema/standard-schema) and
17
+ * allows primitive types to be optional or have default values can be used.
18
+ *
19
+ * @example
20
+ * schema: z.boolean().optional(),
21
+ * schema: z.number().default(0),
22
+ * schema: z.string(),
23
+ * schema: z.array(z.string())
24
+ */
14
25
  schema: Schema;
15
- coerce: CoerceMethod<Widen<InferSchemaOutputType<Schema>>>;
26
+ /**
27
+ * A function to convert the terminal string input into the schema's output type.
28
+ *
29
+ * When the expected input type is `string`, this is not required and can be omitted.
30
+ *
31
+ * The return type of this function must be the same as the output type of the `schema`.
32
+ *
33
+ * @example
34
+ * schema: z.boolean(),
35
+ * coerce: coerce.boolean
36
+ *
37
+ * schema: z.number(),
38
+ * coerce: coerce.number
39
+ *
40
+ * schema: z.string(),
41
+ * // coerce is not required in this case
42
+ *
43
+ * schema: z.array(z.string()),
44
+ * coerce: coerce.stringArray(",")
45
+ */
46
+ coerce: CoerceMethod<InferSchemaOutputType<Schema>>;
16
47
  }
17
48
  /** `schema` (string) with optional `coerce` */
18
49
  interface OptionalCoerce {
19
50
  schema: SchemaType<string | undefined>;
20
- coerce?: CoerceMethod<string | undefined>;
51
+ coerce?: never;
21
52
  }
22
53
  export interface Cli extends Omit<Subcommand, "name" | "aliases" | "meta"> {
23
54
  /** The name of the CLI program (main command). */
@@ -130,7 +161,7 @@ export interface Subcommand {
130
161
  * const myCli = defineCLI({ name: "my-cli", subcommands: [helpCommand] });
131
162
  * myCli.onExecute((result) => console.log(result));
132
163
  */
133
- _onExecute?: ((result: OutputTypeWide) => void)[];
164
+ _onExecute?: ((result: OutputTypeWide) => void | Promise<void>)[];
134
165
  }
135
166
  interface OptionMeta extends MetaBase {
136
167
  /** Text to display as a placeholder for the expected value (e.g. `<path>`, `<value>`). */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions-types.d.ts","sourceRoot":"","sources":["../../../src/types/definitions-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,275 @@
1
+ import type { SchemaType } from "./schema-types.ts";
2
+ import type { StandardSchemaV1 } from "@standard-schema/spec";
3
+ export interface ErrorCauseI {
4
+ /** Unexpected errors caused by the library itself */
5
+ readonly Internal: keyof InternalErrorI;
6
+ /** Errors occurring while parsing terminal arguments, usually due to user input */
7
+ readonly Parse: keyof ParseErrorI;
8
+ /** Errors occurring during validation of parsed arguments, usually due to user input */
9
+ readonly Validation: keyof ValidationErrorI;
10
+ /** Errors caused by incorrect CLI or subcommand definitions */
11
+ readonly Definition: keyof DefinitionErrorI;
12
+ }
13
+ export interface InternalErrorI {
14
+ /** The option or argument definition has undefined `_preparedType` */
15
+ readonly MissingPreparedTypes: {
16
+ readonly commandKind: "command" | "subcommand";
17
+ readonly commandName: string;
18
+ readonly kind: "option" | "argument";
19
+ readonly name: string;
20
+ };
21
+ /** Occurs when attempting to access an undefined subcommand, which should return a CLI definition. */
22
+ readonly CannotFindCliDefinition: {
23
+ readonly cliName: string;
24
+ };
25
+ }
26
+ export interface DefinitionErrorI {
27
+ /** The CLI or subcommand definition is missing the required `name` or `cliName` property. */
28
+ readonly MissingDefinitionName: {
29
+ readonly commandKind: "command" | "subcommand";
30
+ };
31
+ /** Calling */
32
+ readonly MissingOnExecute: {
33
+ readonly commandKind: "command" | "subcommand";
34
+ readonly commandName: string;
35
+ };
36
+ /** An option or argument definition is missing the required `schema` property. */
37
+ readonly MissingSchema: {
38
+ readonly commandKind: "command" | "subcommand";
39
+ readonly commandName: string;
40
+ readonly kind: "option" | "argument";
41
+ readonly name: string;
42
+ };
43
+ /** The `options` record, `arguments` record, or `subcommands` array is defined but empty. */
44
+ readonly EmptyDefinitionGroup: {
45
+ readonly commandKind: "command" | "subcommand";
46
+ readonly commandName: string;
47
+ readonly kind: "option" | "argument" | "subcommands";
48
+ };
49
+ /** An option or alias name is written as a negated name (e.g., `noFoo` → `--no-foo`). */
50
+ readonly InvalidDefinitionOptionName: {
51
+ readonly commandKind: "command" | "subcommand";
52
+ readonly commandName: string;
53
+ readonly optionName: string;
54
+ readonly negatedAliasName?: string | undefined;
55
+ };
56
+ /** An option, option alias, or argument name is duplicated within the same CLI or subcommand. */
57
+ readonly DuplicateDefinitionName: {
58
+ readonly commandKind: "command" | "subcommand";
59
+ readonly commandName: string;
60
+ readonly kind: "option" | "subcommand";
61
+ readonly name: string;
62
+ /** Present when the checked name is an alias. */
63
+ readonly duplicatedAlias?: string | undefined;
64
+ /** Where the duplicated name was found. */
65
+ readonly foundInKind: "option" | "argument" | "subcommand";
66
+ /** Present when the duplicate was found inside aliases of another kind. */
67
+ readonly foundInName?: string;
68
+ };
69
+ /** Argument names cannot be numeric. */
70
+ readonly InvalidDefinitionArgumentName: {
71
+ readonly commandKind: "command" | "subcommand";
72
+ readonly commandName: string;
73
+ readonly name: string;
74
+ };
75
+ /**
76
+ * Argument optionality rules:
77
+ *
78
+ * - When `allowPositionals` is enabled, typed arguments cannot be optional.
79
+ * - Otherwise, only the last typed argument may be optional.
80
+ */
81
+ readonly InvalidOptionalArgumentDefinition: {
82
+ readonly commandKind: "command" | "subcommand";
83
+ readonly commandName: string;
84
+ readonly name: string;
85
+ readonly allowPositionals: boolean;
86
+ };
87
+ /** The option has an `aliases` array containing an empty string. */
88
+ readonly EmptyStringAliasName: {
89
+ readonly commandKind: "command" | "subcommand";
90
+ readonly commandName: string;
91
+ readonly optionName?: string;
92
+ };
93
+ /** The option or argument definition incorrectly requires itself. */
94
+ readonly SelfRequire: {
95
+ readonly commandKind: "command" | "subcommand";
96
+ readonly commandName: string;
97
+ readonly kind: "option" | "argument";
98
+ readonly name: string;
99
+ };
100
+ /** The `requires` list contains a name that does not exist. */
101
+ readonly UnknownRequireName: {
102
+ readonly commandKind: "command" | "subcommand";
103
+ readonly commandName: string;
104
+ readonly kind: "option" | "argument";
105
+ readonly name: string;
106
+ readonly requiredName: string;
107
+ };
108
+ /** The `conflictWith` list contains the same name as the definition itself. */
109
+ readonly SelfConflict: DefinitionErrorI["SelfRequire"];
110
+ /** The `conflictWith` list contains a name that does not exist. */
111
+ readonly UnknownConflictName: DefinitionErrorI["UnknownRequireName"];
112
+ /** The `requires` list overlaps with the `conflictWith` list. */
113
+ readonly DefinitionRequiresConflictOverlap: {
114
+ readonly commandKind: "command" | "subcommand";
115
+ readonly commandName: string;
116
+ readonly kind: "option" | "argument";
117
+ readonly name: string;
118
+ readonly intersectedNames: readonly string[];
119
+ };
120
+ /** Triggered when attempting to generate a help message for a subcommand that does not exist in the CLI definition. */
121
+ readonly SubcommandHelpNotFound: {
122
+ readonly cliName: string;
123
+ readonly subcommandName: string;
124
+ };
125
+ }
126
+ export interface ParseErrorI {
127
+ /** The parser could not find a matching command in the CLI definition */
128
+ readonly UnknownSubcommand: {
129
+ readonly commandName: string;
130
+ };
131
+ /** Received an option for a cli or subcommand but no options were defined */
132
+ readonly CommandWithoutOptions: {
133
+ readonly commandKind: "command" | "subcommand";
134
+ readonly commandName: string;
135
+ readonly optionName: string;
136
+ };
137
+ /** The cli or subcommand define options but could not find a matching option */
138
+ readonly UnknownOption: {
139
+ readonly commandKind: "command" | "subcommand";
140
+ readonly commandName: string;
141
+ readonly optionName: string;
142
+ };
143
+ /** Triggered when a duplicate option is supplied to a command or subcommand. */
144
+ readonly DuplicateOptionProvided: {
145
+ readonly commandKind: "command" | "subcommand";
146
+ readonly commandName: string;
147
+ readonly optionName: string;
148
+ };
149
+ /** Triggered when a non-boolean option is incorrectly used with a negation prefix. */
150
+ readonly InvalidNegationForNonBooleanOption: {
151
+ readonly commandKind: "command" | "subcommand";
152
+ readonly commandName: string;
153
+ readonly optionName: string;
154
+ };
155
+ /** Triggered when a argument is provided to a command or subcommand that does not allow positional arguments. */
156
+ readonly PositionalArgumentNotAllowed: {
157
+ readonly commandKind: "command" | "subcommand";
158
+ readonly commandName: string;
159
+ readonly argumentName: string;
160
+ };
161
+ /** Triggered when a required option is not provided to a command or subcommand. */
162
+ readonly MissingRequiredOption: {
163
+ readonly commandKind: "command" | "subcommand";
164
+ readonly commandName: string;
165
+ readonly optionName: string;
166
+ };
167
+ /** Triggered when a required argument is not provided to a command or subcommand. */
168
+ readonly MissingRequiredArgument: {
169
+ readonly commandKind: "command" | "subcommand";
170
+ readonly commandName: string;
171
+ readonly argumentName: string;
172
+ };
173
+ /** Triggered when an option that requires a value is provided without one in a command or subcommand. */
174
+ readonly OptionMissingValue: {
175
+ readonly commandKind: "command" | "subcommand";
176
+ readonly commandName: string;
177
+ readonly optionName: string;
178
+ };
179
+ /** Triggered when a flag (single letter options: -v) argument is incorrectly assigned a value using "=". */
180
+ readonly FlagAssignedValue: {
181
+ readonly commandKind: "command" | "subcommand";
182
+ readonly commandName: string;
183
+ readonly flag: string;
184
+ readonly value: string;
185
+ };
186
+ }
187
+ export interface ValidationErrorI {
188
+ /** Triggered when validating an option on a command or subcommand that has no options defined. */
189
+ readonly NoOptionsToValidate: {
190
+ readonly commandKind: "command" | "subcommand";
191
+ readonly commandName: string;
192
+ };
193
+ /** Triggered when validating an argument on a command or subcommand that has no arguments defined. */
194
+ readonly NoArgumentsToValidate: {
195
+ readonly commandKind: "command" | "subcommand";
196
+ readonly commandName: string;
197
+ };
198
+ /** Triggered when attempting to validate an option that does not exist for a command or subcommand. */
199
+ readonly UnknownOptionValidation: {
200
+ readonly commandKind: "command" | "subcommand";
201
+ readonly commandName: string;
202
+ readonly optionName: string;
203
+ };
204
+ /** Triggered when attempting to validate an argument that does not exist for a command or subcommand. */
205
+ readonly UnknownArgumentValidation: {
206
+ readonly commandKind: "command" | "subcommand";
207
+ readonly commandName: string;
208
+ readonly argumentName: string;
209
+ };
210
+ /** Triggered when schema validation of an option or argument fails */
211
+ readonly SchemaValidationFailed: {
212
+ readonly commandKind: "command" | "subcommand";
213
+ readonly commandName: string;
214
+ readonly kind: "option" | "argument";
215
+ readonly name: string;
216
+ readonly inputValue: unknown;
217
+ readonly issues: ReadonlyArray<StandardSchemaV1.Issue>;
218
+ };
219
+ /**
220
+ * Triggered when an option or argument cannot be used together with certain other options or arguments due to mutual
221
+ * exclusivity.
222
+ */
223
+ readonly MutuallyExclusiveConflict: {
224
+ readonly kind: "option" | "argument";
225
+ readonly name: string;
226
+ readonly conflictedOptions: readonly string[];
227
+ readonly conflictedArguments: readonly string[];
228
+ };
229
+ /** Triggered when an option or argument is missing a required dependent option or argument in a command or subcommand. */
230
+ readonly RequiredDependencyMissing: {
231
+ readonly kind: "option" | "argument";
232
+ readonly name: string;
233
+ readonly missingOptions: readonly string[];
234
+ readonly missingArguments: readonly string[];
235
+ };
236
+ /** Triggered when attempting to perform synchronous validation on an asynchronous schema. */
237
+ readonly AsyncSchemaNotSupported: {
238
+ value: unknown;
239
+ schema: SchemaType;
240
+ };
241
+ /** Triggered when coercion of a value to the expected type fails during validation. */
242
+ readonly CoercionFailed: {
243
+ readonly providedValue: unknown;
244
+ readonly coerceToType: string;
245
+ };
246
+ }
247
+ export interface CliErrorI extends DefinitionErrorI, ParseErrorI, ValidationErrorI, InternalErrorI {
248
+ }
249
+ export interface CliErrorImpl<O extends CliErrorOptionUnion = CliErrorOptionUnion> extends Error {
250
+ readonly cause: O["cause"];
251
+ readonly code: O["code"];
252
+ readonly context: O["context"];
253
+ }
254
+ /**
255
+ * Represents a subset of CliErrorOptions filtered by the provided cause. Removes the 'message' property and narrows the
256
+ * union to only relevant cause.
257
+ */
258
+ export type CliErrorOptionByCause<K extends keyof ErrorCauseI, T = CliErrorOptionUnion> = T extends CliErrorOptionUnion ? T["cause"] extends K ? T : never : never;
259
+ interface CliErrorOption<Code extends keyof CliErrorI> {
260
+ cause: {
261
+ [K in keyof ErrorCauseI]: Code extends ErrorCauseI[K] ? K : never;
262
+ }[keyof ErrorCauseI];
263
+ code: Code;
264
+ context: CliErrorI[Code];
265
+ message?: string;
266
+ }
267
+ /** A union of all possible CLI error options, one per error code. Each member includes: */
268
+ export type CliErrorOptionUnion = {
269
+ [Code in keyof CliErrorI]: CliErrorOption<Code>;
270
+ }[keyof CliErrorI];
271
+ /** A union of all possible CLI error instances */
272
+ export type CliErrorInstanceUnion = CliErrorOptionUnion extends infer T ? T extends CliErrorOptionUnion ? CliErrorImpl<T> : never : never;
273
+ export type AllCliErrorInstances = CliErrorInstanceUnion & {};
274
+ export {};
275
+ //# sourceMappingURL=error-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-types.d.ts","sourceRoot":"","sources":["../../../src/types/error-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import type { Cli, Subcommand } from "./definitions-types.ts";
2
+ import type { AllCliErrorInstances } from "./error-types.ts";
3
+ import type { PrintHelpOptions } from "./help-message-types.ts";
4
+ import type { InferInputType, InputTypeWide, OutputType, OutputTypeWide } from "./io-types.ts";
5
+ export type CoerceTypes = "boolean" | (string & {});
6
+ export interface ObjectCoerceMethodOptions {
7
+ /**
8
+ * Converts `'true'` or `'false'` (case-sensitive) strings to boolean values.
9
+ *
10
+ * The coercion is applied after parsing the string as JSON.
11
+ *
12
+ * ```bash
13
+ * # coerced to boolean
14
+ * --obj.key=true # true
15
+ * --obj.key false # false
16
+ *
17
+ * # remains a string (case-sensitive)
18
+ * --obj.key=FALSE # "FALSE"
19
+ * ```
20
+ *
21
+ * @example
22
+ * coerce: coerce.object({ coerceBoolean: true }); // coerce all boolean-like keys
23
+ * coerce: coerce.object({ coerceBoolean: ["key.nested"] }); // coerce only specific keys
24
+ */
25
+ coerceBoolean?: boolean | string[];
26
+ /**
27
+ * Converts strings matching a number regex to numbers.
28
+ *
29
+ * The coercion is applied after parsing the string as JSON.
30
+ *
31
+ * ```bash
32
+ * # parsed as number
33
+ * --obj.key=123
34
+ * --obj.key 123.45
35
+ * --obj.key -123.45
36
+ * --obj.key +123.45
37
+ *
38
+ * # remains a string (invalid number)
39
+ * --obj.key 1.23.45
40
+ * --obj.key string
41
+ * ```
42
+ *
43
+ * @example
44
+ * coerce: coerce.object({ coerceNumber: true }); // coerce all numeric keys
45
+ * coerce: coerce.object({ coerceNumber: ["key.nested"] }); // coerce only specific keys
46
+ */
47
+ coerceNumber?: boolean | string[];
48
+ /**
49
+ * Converts strings matching a number regex to bigints.
50
+ *
51
+ * The coercion is applied after parsing the string as JSON.
52
+ *
53
+ * ```bash
54
+ * # parsed as bigint
55
+ * --obj.key=12345678901234567890
56
+ *
57
+ * # remains a string (invalid bigint)
58
+ * --obj.key 123.45
59
+ * --obj.key string
60
+ * ```
61
+ *
62
+ * @example
63
+ * coerce: coerce.object({ coerceBigint: true }); // coerce all bigint-like keys
64
+ * coerce: coerce.object({ coerceBigint: ["key.id"] }); // coerce only specific keys
65
+ */
66
+ coerceBigint?: boolean | string[];
67
+ /**
68
+ * Converts tries to convert any string to `Date` objects.
69
+ *
70
+ * The coercion is applied after parsing the string as JSON.
71
+ *
72
+ * ```bash
73
+ * # parsed as Date
74
+ * --obj.key="2024-03-12T10:30:00Z"
75
+ * --obj.key "2025-11-13"
76
+ *
77
+ * # remains a string (invalid date)
78
+ * --obj.key "invalid-date"
79
+ * ```
80
+ *
81
+ * @example
82
+ * coerce: coerce.object({ coerceDate: true }); // coerce all date-like keys
83
+ * coerce: coerce.object({ coerceDate: ["user.createdAt"] }); // coerce only specific keys
84
+ */
85
+ coerceDate?: boolean | string[];
86
+ }
87
+ export interface CoerceMethod<Value> {
88
+ (terminalInput: string): Value;
89
+ type?: CoerceTypes;
90
+ }
91
+ type GetSubcommandsNames<T extends Partial<Subcommand>> = T extends Cli ? T["subcommands"] extends infer S extends readonly [Subcommand, ...Subcommand[]] ? {
92
+ [Index in keyof S]: S[Index] extends {
93
+ name: string;
94
+ } ? S[Index]["name"] : never;
95
+ }[number] : never : never;
96
+ type Unsubscribe = () => void;
97
+ export interface AttachedMethods<T extends Cli | Subcommand> {
98
+ /**
99
+ * Add a handler to be called when the subcommand/cli is executed.
100
+ *
101
+ * @example
102
+ * const unsubscribe = cli.onExecute(result => console.log(result));
103
+ */
104
+ onExecute: (handler: (data: OutputType<[T]>) => void) => Unsubscribe;
105
+ /** Execute the main command/subcommand programmatically */
106
+ execute: InferInputType<T> extends infer InputType ? undefined extends InputType ? (input?: InputType) => void : (input: InputType) => void : never;
107
+ /** Execute the main command/subcommand programmatically */
108
+ executeAsync: InferInputType<T> extends infer InputType ? undefined extends InputType ? (input?: InputType) => Promise<void> : (input: InputType) => Promise<void> : never;
109
+ /** **WARNING**: This will only be available after the CLI schema has been created */
110
+ generateCliHelpMessage?: (options?: PrintHelpOptions) => string;
111
+ /**
112
+ * **WARNING**: This will only be available after the CLI schema has been created
113
+ *
114
+ * @throws {CliError} - When the subcommand is not found
115
+ */
116
+ generateSubcommandHelpMessage?: (subcommandName: GetSubcommandsNames<T> | (string & {}), options?: PrintHelpOptions) => string;
117
+ }
118
+ export interface AttachedMethodsWide {
119
+ onExecute: (handler: (data: OutputTypeWide) => void | Promise<void>) => Unsubscribe;
120
+ execute: (input?: InputTypeWide) => void;
121
+ executeAsync: (input?: InputTypeWide) => Promise<void>;
122
+ generateCliHelpMessage?: (options?: PrintHelpOptions) => void;
123
+ /** @throws {CliError} - When the subcommand is not found */
124
+ generateSubcommandHelpMessage?: (subcommandName: string, options?: PrintHelpOptions) => void;
125
+ }
126
+ export type CliOutputType<S extends Cli> = OutputType<[S]> | (S["subcommands"] extends readonly [Subcommand, ...Subcommand[]] ? OutputType<S["subcommands"]> : never);
127
+ export type CliParseResult<S extends Cli> = {
128
+ value: CliOutputType<S>;
129
+ error?: undefined;
130
+ } | {
131
+ value?: never;
132
+ error: AllCliErrorInstances;
133
+ };
134
+ export type CliParseResultWide = {
135
+ value: OutputTypeWide;
136
+ error?: undefined;
137
+ } | {
138
+ value?: never;
139
+ error: Error;
140
+ };
141
+ export interface ValidateMethods<S extends Cli> {
142
+ run(input: string | string[]): CliParseResult<S>;
143
+ runAsync(input: string | string[]): Promise<CliParseResult<S>>;
144
+ }
145
+ export {};
146
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,4 @@ export type ToOptional<T> = Partial<Pick<T, UndefinedProperties<T>>> & Pick<T, E
12
12
  export type AllowUndefinedIfOptional<T> = {
13
13
  [K in keyof T]-?: object extends Pick<T, K> ? never : K;
14
14
  }[keyof T] extends never ? T | undefined : T;
15
- /** Widen literal and tuples */
16
- export type Widen<T> = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends readonly (infer U)[] ? Widen<U>[] : T extends Set<infer U> ? Set<Widen<U>> : T;
17
15
  //# sourceMappingURL=utilities-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilities-types.d.ts","sourceRoot":"","sources":["../../../src/types/utilities-types.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAExD,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvG,0CAA0C;AAC1C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAClE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,oFAAoF;AACpF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACxD,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GACpB,CAAC,GAAG,SAAS,GACb,CAAC,CAAC;AAEN,+BAA+B;AAE/B,MAAM,MAAM,KAAK,CAAC,CAAC,IACjB,CAAC,SAAS,MAAM,GAAG,MAAM,GACzB,CAAC,SAAS,MAAM,GAAG,MAAM,GACzB,CAAC,SAAS,OAAO,GAAG,OAAO,GAC3B,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAC3C,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"utilities-types.d.ts","sourceRoot":"","sources":["../../../src/types/utilities-types.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAExD,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvG,0CAA0C;AAC1C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAClE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,oFAAoF;AACpF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACxD,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GACpB,CAAC,GAAG,SAAS,GACb,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Parse a string into an argv (array of arguments) */
2
+ export declare function parseArgv(input: string): string[];
3
+ //# sourceMappingURL=parse-argv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-argv.d.ts","sourceRoot":"","sources":["../../../src/utilities/parse-argv.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA6EjD"}