zod-args-parser 2.0.0-alpha.0 → 2.0.0-beta.1

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 (510) hide show
  1. package/README.md +525 -588
  2. package/lib/cjs/autocomplete-scripts/bash-autocomplete-script.cjs +2 -0
  3. package/lib/cjs/autocomplete-scripts/bash-autocomplete-script.cjs.map +1 -0
  4. package/lib/cjs/autocomplete-scripts/powershell-autocomplete-script.cjs +2 -0
  5. package/lib/cjs/autocomplete-scripts/powershell-autocomplete-script.cjs.map +1 -0
  6. package/lib/cjs/autocomplete-scripts/zsh-autocomplete-script.cjs +42 -0
  7. package/lib/cjs/autocomplete-scripts/zsh-autocomplete-script.cjs.map +1 -0
  8. package/lib/cjs/coerce/coerce-methods.cjs +2 -0
  9. package/lib/cjs/coerce/coerce-methods.cjs.map +1 -0
  10. package/lib/cjs/coerce/string-to-array.cjs +2 -0
  11. package/lib/cjs/coerce/string-to-array.cjs.map +1 -0
  12. package/lib/cjs/coerce/string-to-primitive.cjs +2 -0
  13. package/lib/cjs/coerce/string-to-primitive.cjs.map +1 -0
  14. package/lib/cjs/coerce/string-to-set.cjs +2 -0
  15. package/lib/cjs/coerce/string-to-set.cjs.map +1 -0
  16. package/lib/cjs/definitions/define-arguments.cjs +2 -0
  17. package/lib/cjs/definitions/define-arguments.cjs.map +1 -0
  18. package/lib/cjs/definitions/define-cli.cjs +2 -0
  19. package/lib/cjs/definitions/define-cli.cjs.map +1 -0
  20. package/lib/cjs/definitions/define-options.cjs +2 -0
  21. package/lib/cjs/definitions/define-options.cjs.map +1 -0
  22. package/lib/cjs/definitions/define-subcommand.cjs +2 -0
  23. package/lib/cjs/definitions/define-subcommand.cjs.map +1 -0
  24. package/lib/cjs/definitions/validate-cli-definition.cjs +2 -0
  25. package/lib/cjs/definitions/validate-cli-definition.cjs.map +1 -0
  26. package/lib/cjs/help-message/format-arguments.cjs +2 -0
  27. package/lib/cjs/help-message/format-arguments.cjs.map +1 -0
  28. package/lib/cjs/help-message/format-options.cjs +2 -0
  29. package/lib/cjs/help-message/format-options.cjs.map +1 -0
  30. package/lib/cjs/help-message/format-subcommands.cjs +2 -0
  31. package/lib/cjs/help-message/format-subcommands.cjs.map +1 -0
  32. package/lib/cjs/help-message/generate-for-cli.cjs +2 -0
  33. package/lib/cjs/help-message/generate-for-cli.cjs.map +1 -0
  34. package/lib/cjs/help-message/generate-for-subcommand.cjs +2 -0
  35. package/lib/cjs/help-message/generate-for-subcommand.cjs.map +1 -0
  36. package/lib/cjs/help-message/print-help.cjs +2 -0
  37. package/lib/cjs/help-message/print-help.cjs.map +1 -0
  38. package/lib/cjs/help-message/set-defaults.cjs +2 -0
  39. package/lib/cjs/help-message/set-defaults.cjs.map +1 -0
  40. package/lib/cjs/help-message/styles.cjs +2 -0
  41. package/lib/cjs/help-message/styles.cjs.map +1 -0
  42. package/lib/cjs/help-message/terminal-markdown.cjs +2 -0
  43. package/lib/cjs/help-message/terminal-markdown.cjs.map +1 -0
  44. package/lib/cjs/index.cjs +2 -0
  45. package/lib/cjs/index.cjs.map +1 -0
  46. package/lib/cjs/markdown/generate-markdown.cjs +2 -0
  47. package/lib/cjs/markdown/generate-markdown.cjs.map +1 -0
  48. package/lib/cjs/metadata/arguments-metadata.cjs +2 -0
  49. package/lib/cjs/metadata/arguments-metadata.cjs.map +1 -0
  50. package/lib/cjs/metadata/cli-metadata.cjs +2 -0
  51. package/lib/cjs/metadata/cli-metadata.cjs.map +1 -0
  52. package/lib/cjs/metadata/options-metadata.cjs +2 -0
  53. package/lib/cjs/metadata/options-metadata.cjs.map +1 -0
  54. package/lib/cjs/metadata/subcommands-metadata.cjs +2 -0
  55. package/lib/cjs/metadata/subcommands-metadata.cjs.map +1 -0
  56. package/lib/cjs/parse/context/cli-context-builder.cjs +2 -0
  57. package/lib/cjs/parse/context/cli-context-builder.cjs.map +1 -0
  58. package/lib/cjs/parse/context/object-context-builder.cjs +2 -0
  59. package/lib/cjs/parse/context/object-context-builder.cjs.map +1 -0
  60. package/lib/cjs/parse/parser-utilities.cjs +2 -0
  61. package/lib/cjs/parse/parser-utilities.cjs.map +1 -0
  62. package/lib/cjs/parse/safe-parse.cjs +2 -0
  63. package/lib/cjs/parse/safe-parse.cjs.map +1 -0
  64. package/lib/cjs/parse/validation/validate-context.cjs +2 -0
  65. package/lib/cjs/parse/validation/validate-context.cjs.map +1 -0
  66. package/lib/cjs/parse/validation/validators/arguments.cjs +2 -0
  67. package/lib/cjs/parse/validation/validators/arguments.cjs.map +1 -0
  68. package/lib/cjs/parse/validation/validators/conflict.cjs +2 -0
  69. package/lib/cjs/parse/validation/validators/conflict.cjs.map +1 -0
  70. package/lib/cjs/parse/validation/validators/exclusive.cjs +2 -0
  71. package/lib/cjs/parse/validation/validators/exclusive.cjs.map +1 -0
  72. package/lib/cjs/parse/validation/validators/explicitly-passed.cjs +2 -0
  73. package/lib/cjs/parse/validation/validators/explicitly-passed.cjs.map +1 -0
  74. package/lib/cjs/parse/validation/validators/options.cjs +2 -0
  75. package/lib/cjs/parse/validation/validators/options.cjs.map +1 -0
  76. package/lib/cjs/parse/validation/validators/requires.cjs +2 -0
  77. package/lib/cjs/parse/validation/validators/requires.cjs.map +1 -0
  78. package/lib/cjs/utilities.cjs +2 -0
  79. package/lib/cjs/utilities.cjs.map +1 -0
  80. package/lib/esm/autocomplete-scripts/bash-autocomplete-script.js +2 -0
  81. package/lib/esm/autocomplete-scripts/bash-autocomplete-script.js.map +1 -0
  82. package/lib/esm/autocomplete-scripts/powershell-autocomplete-script.js +2 -0
  83. package/lib/esm/autocomplete-scripts/powershell-autocomplete-script.js.map +1 -0
  84. package/lib/esm/autocomplete-scripts/zsh-autocomplete-script.js +42 -0
  85. package/lib/esm/autocomplete-scripts/zsh-autocomplete-script.js.map +1 -0
  86. package/lib/esm/coerce/coerce-methods.js +2 -0
  87. package/lib/esm/coerce/coerce-methods.js.map +1 -0
  88. package/lib/esm/coerce/string-to-array.js +2 -0
  89. package/lib/esm/coerce/string-to-array.js.map +1 -0
  90. package/lib/esm/coerce/string-to-primitive.js +2 -0
  91. package/lib/esm/coerce/string-to-primitive.js.map +1 -0
  92. package/lib/esm/coerce/string-to-set.js +2 -0
  93. package/lib/esm/coerce/string-to-set.js.map +1 -0
  94. package/lib/esm/definitions/define-arguments.js +2 -0
  95. package/lib/esm/definitions/define-arguments.js.map +1 -0
  96. package/lib/esm/definitions/define-cli.js +2 -0
  97. package/lib/esm/definitions/define-cli.js.map +1 -0
  98. package/lib/esm/definitions/define-options.js +2 -0
  99. package/lib/esm/definitions/define-options.js.map +1 -0
  100. package/lib/esm/definitions/define-subcommand.js +2 -0
  101. package/lib/esm/definitions/define-subcommand.js.map +1 -0
  102. package/lib/esm/definitions/validate-cli-definition.js +2 -0
  103. package/lib/esm/definitions/validate-cli-definition.js.map +1 -0
  104. package/lib/esm/help-message/format-arguments.js +2 -0
  105. package/lib/esm/help-message/format-arguments.js.map +1 -0
  106. package/lib/esm/help-message/format-options.js +2 -0
  107. package/lib/esm/help-message/format-options.js.map +1 -0
  108. package/lib/esm/help-message/format-subcommands.js +2 -0
  109. package/lib/esm/help-message/format-subcommands.js.map +1 -0
  110. package/lib/esm/help-message/generate-for-cli.js +2 -0
  111. package/lib/esm/help-message/generate-for-cli.js.map +1 -0
  112. package/lib/esm/help-message/generate-for-subcommand.js +2 -0
  113. package/lib/esm/help-message/generate-for-subcommand.js.map +1 -0
  114. package/lib/esm/help-message/print-help.js +2 -0
  115. package/lib/esm/help-message/print-help.js.map +1 -0
  116. package/lib/esm/help-message/set-defaults.js +2 -0
  117. package/lib/esm/help-message/set-defaults.js.map +1 -0
  118. package/lib/esm/help-message/styles.js +2 -0
  119. package/lib/esm/help-message/styles.js.map +1 -0
  120. package/lib/esm/help-message/terminal-markdown.js +2 -0
  121. package/lib/esm/help-message/terminal-markdown.js.map +1 -0
  122. package/lib/esm/index.js +2 -0
  123. package/lib/esm/index.js.map +1 -0
  124. package/lib/esm/markdown/generate-markdown.js +2 -0
  125. package/lib/esm/markdown/generate-markdown.js.map +1 -0
  126. package/lib/esm/metadata/arguments-metadata.js +2 -0
  127. package/lib/esm/metadata/arguments-metadata.js.map +1 -0
  128. package/lib/esm/metadata/cli-metadata.js +2 -0
  129. package/lib/esm/metadata/cli-metadata.js.map +1 -0
  130. package/lib/esm/metadata/options-metadata.js +2 -0
  131. package/lib/esm/metadata/options-metadata.js.map +1 -0
  132. package/lib/esm/metadata/subcommands-metadata.js +2 -0
  133. package/lib/esm/metadata/subcommands-metadata.js.map +1 -0
  134. package/lib/esm/parse/context/cli-context-builder.js +2 -0
  135. package/lib/esm/parse/context/cli-context-builder.js.map +1 -0
  136. package/lib/esm/parse/context/object-context-builder.js +2 -0
  137. package/lib/esm/parse/context/object-context-builder.js.map +1 -0
  138. package/lib/esm/parse/parser-utilities.js +2 -0
  139. package/lib/esm/parse/parser-utilities.js.map +1 -0
  140. package/lib/esm/parse/safe-parse.js +2 -0
  141. package/lib/esm/parse/safe-parse.js.map +1 -0
  142. package/lib/esm/parse/validation/validate-context.js +2 -0
  143. package/lib/esm/parse/validation/validate-context.js.map +1 -0
  144. package/lib/esm/parse/validation/validators/arguments.js +2 -0
  145. package/lib/esm/parse/validation/validators/arguments.js.map +1 -0
  146. package/lib/esm/parse/validation/validators/conflict.js +2 -0
  147. package/lib/esm/parse/validation/validators/conflict.js.map +1 -0
  148. package/lib/esm/parse/validation/validators/exclusive.js +2 -0
  149. package/lib/esm/parse/validation/validators/exclusive.js.map +1 -0
  150. package/lib/esm/parse/validation/validators/explicitly-passed.js +2 -0
  151. package/lib/esm/parse/validation/validators/explicitly-passed.js.map +1 -0
  152. package/lib/esm/parse/validation/validators/options.js +2 -0
  153. package/lib/esm/parse/validation/validators/options.js.map +1 -0
  154. package/lib/esm/parse/validation/validators/requires.js +2 -0
  155. package/lib/esm/parse/validation/validators/requires.js.map +1 -0
  156. package/lib/esm/utilities.js +2 -0
  157. package/lib/esm/utilities.js.map +1 -0
  158. package/lib/iife/index.js +2 -0
  159. package/lib/iife/index.js.map +1 -0
  160. package/lib/mjs/autocomplete-scripts/bash-autocomplete-script.mjs +2 -0
  161. package/lib/mjs/autocomplete-scripts/bash-autocomplete-script.mjs.map +1 -0
  162. package/lib/mjs/autocomplete-scripts/powershell-autocomplete-script.mjs +2 -0
  163. package/lib/mjs/autocomplete-scripts/powershell-autocomplete-script.mjs.map +1 -0
  164. package/lib/mjs/autocomplete-scripts/zsh-autocomplete-script.mjs +42 -0
  165. package/lib/mjs/autocomplete-scripts/zsh-autocomplete-script.mjs.map +1 -0
  166. package/lib/mjs/coerce/coerce-methods.mjs +2 -0
  167. package/lib/mjs/coerce/coerce-methods.mjs.map +1 -0
  168. package/lib/mjs/coerce/string-to-array.mjs +2 -0
  169. package/lib/mjs/coerce/string-to-array.mjs.map +1 -0
  170. package/lib/mjs/coerce/string-to-primitive.mjs +2 -0
  171. package/lib/mjs/coerce/string-to-primitive.mjs.map +1 -0
  172. package/lib/mjs/coerce/string-to-set.mjs +2 -0
  173. package/lib/mjs/coerce/string-to-set.mjs.map +1 -0
  174. package/lib/mjs/definitions/define-arguments.mjs +2 -0
  175. package/lib/mjs/definitions/define-arguments.mjs.map +1 -0
  176. package/lib/mjs/definitions/define-cli.mjs +2 -0
  177. package/lib/mjs/definitions/define-cli.mjs.map +1 -0
  178. package/lib/mjs/definitions/define-options.mjs +2 -0
  179. package/lib/mjs/definitions/define-options.mjs.map +1 -0
  180. package/lib/mjs/definitions/define-subcommand.mjs +2 -0
  181. package/lib/mjs/definitions/define-subcommand.mjs.map +1 -0
  182. package/lib/mjs/definitions/validate-cli-definition.mjs +2 -0
  183. package/lib/mjs/definitions/validate-cli-definition.mjs.map +1 -0
  184. package/lib/mjs/help-message/format-arguments.mjs +2 -0
  185. package/lib/mjs/help-message/format-arguments.mjs.map +1 -0
  186. package/lib/mjs/help-message/format-options.mjs +2 -0
  187. package/lib/mjs/help-message/format-options.mjs.map +1 -0
  188. package/lib/mjs/help-message/format-subcommands.mjs +2 -0
  189. package/lib/mjs/help-message/format-subcommands.mjs.map +1 -0
  190. package/lib/mjs/help-message/generate-for-cli.mjs +2 -0
  191. package/lib/mjs/help-message/generate-for-cli.mjs.map +1 -0
  192. package/lib/mjs/help-message/generate-for-subcommand.mjs +2 -0
  193. package/lib/mjs/help-message/generate-for-subcommand.mjs.map +1 -0
  194. package/lib/mjs/help-message/print-help.mjs +2 -0
  195. package/lib/mjs/help-message/print-help.mjs.map +1 -0
  196. package/lib/mjs/help-message/set-defaults.mjs +2 -0
  197. package/lib/mjs/help-message/set-defaults.mjs.map +1 -0
  198. package/lib/mjs/help-message/styles.mjs +2 -0
  199. package/lib/mjs/help-message/styles.mjs.map +1 -0
  200. package/lib/mjs/help-message/terminal-markdown.mjs +2 -0
  201. package/lib/mjs/help-message/terminal-markdown.mjs.map +1 -0
  202. package/lib/mjs/index.mjs +2 -0
  203. package/lib/mjs/index.mjs.map +1 -0
  204. package/lib/mjs/markdown/generate-markdown.mjs +2 -0
  205. package/lib/mjs/markdown/generate-markdown.mjs.map +1 -0
  206. package/lib/mjs/metadata/arguments-metadata.mjs +2 -0
  207. package/lib/mjs/metadata/arguments-metadata.mjs.map +1 -0
  208. package/lib/mjs/metadata/cli-metadata.mjs +2 -0
  209. package/lib/mjs/metadata/cli-metadata.mjs.map +1 -0
  210. package/lib/mjs/metadata/options-metadata.mjs +2 -0
  211. package/lib/mjs/metadata/options-metadata.mjs.map +1 -0
  212. package/lib/mjs/metadata/subcommands-metadata.mjs +2 -0
  213. package/lib/mjs/metadata/subcommands-metadata.mjs.map +1 -0
  214. package/lib/mjs/parse/context/cli-context-builder.mjs +2 -0
  215. package/lib/mjs/parse/context/cli-context-builder.mjs.map +1 -0
  216. package/lib/mjs/parse/context/object-context-builder.mjs +2 -0
  217. package/lib/mjs/parse/context/object-context-builder.mjs.map +1 -0
  218. package/lib/mjs/parse/parser-utilities.mjs +2 -0
  219. package/lib/mjs/parse/parser-utilities.mjs.map +1 -0
  220. package/lib/mjs/parse/safe-parse.mjs +2 -0
  221. package/lib/mjs/parse/safe-parse.mjs.map +1 -0
  222. package/lib/mjs/parse/validation/validate-context.mjs +2 -0
  223. package/lib/mjs/parse/validation/validate-context.mjs.map +1 -0
  224. package/lib/mjs/parse/validation/validators/arguments.mjs +2 -0
  225. package/lib/mjs/parse/validation/validators/arguments.mjs.map +1 -0
  226. package/lib/mjs/parse/validation/validators/conflict.mjs +2 -0
  227. package/lib/mjs/parse/validation/validators/conflict.mjs.map +1 -0
  228. package/lib/mjs/parse/validation/validators/exclusive.mjs +2 -0
  229. package/lib/mjs/parse/validation/validators/exclusive.mjs.map +1 -0
  230. package/lib/mjs/parse/validation/validators/explicitly-passed.mjs +2 -0
  231. package/lib/mjs/parse/validation/validators/explicitly-passed.mjs.map +1 -0
  232. package/lib/mjs/parse/validation/validators/options.mjs +2 -0
  233. package/lib/mjs/parse/validation/validators/options.mjs.map +1 -0
  234. package/lib/mjs/parse/validation/validators/requires.mjs +2 -0
  235. package/lib/mjs/parse/validation/validators/requires.mjs.map +1 -0
  236. package/lib/mjs/utilities.mjs +2 -0
  237. package/lib/mjs/utilities.mjs.map +1 -0
  238. package/lib/typescript/autocomplete-scripts/bash-autocomplete-script.d.ts +2 -2
  239. package/lib/typescript/autocomplete-scripts/bash-autocomplete-script.d.ts.map +1 -1
  240. package/lib/typescript/autocomplete-scripts/powershell-autocomplete-script.d.ts +2 -2
  241. package/lib/typescript/autocomplete-scripts/powershell-autocomplete-script.d.ts.map +1 -1
  242. package/lib/typescript/autocomplete-scripts/zsh-autocomplete-script.d.ts +2 -2
  243. package/lib/typescript/autocomplete-scripts/zsh-autocomplete-script.d.ts.map +1 -1
  244. package/lib/typescript/coerce/coerce-methods.d.ts +20 -0
  245. package/lib/typescript/coerce/coerce-methods.d.ts.map +1 -0
  246. package/lib/typescript/coerce/string-to-array.d.ts +6 -0
  247. package/lib/typescript/coerce/string-to-array.d.ts.map +1 -0
  248. package/lib/typescript/coerce/string-to-primitive.d.ts +5 -0
  249. package/lib/typescript/coerce/string-to-primitive.d.ts.map +1 -0
  250. package/lib/typescript/coerce/string-to-set.d.ts +6 -0
  251. package/lib/typescript/coerce/string-to-set.d.ts.map +1 -0
  252. package/lib/typescript/definitions/define-arguments.d.ts +7 -0
  253. package/lib/typescript/definitions/define-arguments.d.ts.map +1 -0
  254. package/lib/typescript/definitions/define-cli.d.ts +24 -0
  255. package/lib/typescript/definitions/define-cli.d.ts.map +1 -0
  256. package/lib/typescript/definitions/define-options.d.ts +7 -0
  257. package/lib/typescript/definitions/define-options.d.ts.map +1 -0
  258. package/lib/typescript/definitions/define-subcommand.d.ts +17 -0
  259. package/lib/typescript/definitions/define-subcommand.d.ts.map +1 -0
  260. package/lib/typescript/definitions/validate-cli-definition.d.ts +4 -0
  261. package/lib/typescript/definitions/validate-cli-definition.d.ts.map +1 -0
  262. package/lib/typescript/help-message/format-arguments.d.ts +3 -3
  263. package/lib/typescript/help-message/format-arguments.d.ts.map +1 -1
  264. package/lib/typescript/help-message/format-options.d.ts +3 -3
  265. package/lib/typescript/help-message/format-options.d.ts.map +1 -1
  266. package/lib/typescript/help-message/format-subcommands.d.ts +3 -3
  267. package/lib/typescript/help-message/format-subcommands.d.ts.map +1 -1
  268. package/lib/typescript/help-message/generate-for-cli.d.ts +8 -0
  269. package/lib/typescript/help-message/generate-for-cli.d.ts.map +1 -0
  270. package/lib/typescript/help-message/generate-for-subcommand.d.ts +4 -0
  271. package/lib/typescript/help-message/generate-for-subcommand.d.ts.map +1 -0
  272. package/lib/typescript/help-message/print-help.d.ts +5 -0
  273. package/lib/typescript/help-message/print-help.d.ts.map +1 -0
  274. package/lib/typescript/help-message/set-defaults.d.ts +4 -0
  275. package/lib/typescript/help-message/set-defaults.d.ts.map +1 -0
  276. package/lib/typescript/help-message/styles.d.ts +30 -106
  277. package/lib/typescript/help-message/styles.d.ts.map +1 -1
  278. package/lib/typescript/help-message/terminal-markdown.d.ts +3 -0
  279. package/lib/typescript/help-message/terminal-markdown.d.ts.map +1 -0
  280. package/lib/typescript/index.d.ts +23 -35
  281. package/lib/typescript/index.d.ts.map +1 -1
  282. package/lib/typescript/markdown/generate-markdown.d.ts +2 -2
  283. package/lib/typescript/markdown/generate-markdown.d.ts.map +1 -1
  284. package/lib/typescript/metadata/arguments-metadata.d.ts +4 -0
  285. package/lib/typescript/metadata/arguments-metadata.d.ts.map +1 -0
  286. package/lib/typescript/metadata/cli-metadata.d.ts +4 -0
  287. package/lib/typescript/metadata/cli-metadata.d.ts.map +1 -0
  288. package/lib/typescript/metadata/options-metadata.d.ts +4 -0
  289. package/lib/typescript/metadata/options-metadata.d.ts.map +1 -0
  290. package/lib/typescript/metadata/subcommands-metadata.d.ts +4 -0
  291. package/lib/typescript/metadata/subcommands-metadata.d.ts.map +1 -0
  292. package/lib/typescript/parse/context/cli-context-builder.d.ts +9 -0
  293. package/lib/typescript/parse/context/cli-context-builder.d.ts.map +1 -0
  294. package/lib/typescript/parse/context/object-context-builder.d.ts +6 -0
  295. package/lib/typescript/parse/context/object-context-builder.d.ts.map +1 -0
  296. package/lib/typescript/{parser/parse/parser-helpers.d.ts → parse/parser-utilities.d.ts} +18 -9
  297. package/lib/typescript/parse/parser-utilities.d.ts.map +1 -0
  298. package/lib/typescript/parse/safe-parse.d.ts +5 -0
  299. package/lib/typescript/parse/safe-parse.d.ts.map +1 -0
  300. package/lib/typescript/parse/validation/validate-context.d.ts +6 -0
  301. package/lib/typescript/parse/validation/validate-context.d.ts.map +1 -0
  302. package/lib/typescript/parse/validation/validators/arguments.d.ts +12 -0
  303. package/lib/typescript/parse/validation/validators/arguments.d.ts.map +1 -0
  304. package/lib/typescript/parse/validation/validators/conflict.d.ts +16 -0
  305. package/lib/typescript/parse/validation/validators/conflict.d.ts.map +1 -0
  306. package/lib/typescript/parse/validation/validators/exclusive.d.ts +16 -0
  307. package/lib/typescript/parse/validation/validators/exclusive.d.ts.map +1 -0
  308. package/lib/typescript/parse/validation/validators/explicitly-passed.d.ts +5 -0
  309. package/lib/typescript/parse/validation/validators/explicitly-passed.d.ts.map +1 -0
  310. package/lib/typescript/parse/validation/validators/options.d.ts +12 -0
  311. package/lib/typescript/parse/validation/validators/options.d.ts.map +1 -0
  312. package/lib/typescript/parse/validation/validators/requires.d.ts +18 -0
  313. package/lib/typescript/parse/validation/validators/requires.d.ts.map +1 -0
  314. package/lib/typescript/types/context-types.d.ts +135 -0
  315. package/lib/typescript/types/context-types.d.ts.map +1 -0
  316. package/lib/typescript/types/definitions-types.d.ts +294 -0
  317. package/lib/typescript/types/definitions-types.d.ts.map +1 -0
  318. package/lib/typescript/types/help-message-types.d.ts +134 -0
  319. package/lib/typescript/types/help-message-types.d.ts.map +1 -0
  320. package/lib/typescript/types/io-types.d.ts +96 -0
  321. package/lib/typescript/types/io-types.d.ts.map +1 -0
  322. package/lib/typescript/types/metadata-types.d.ts +75 -0
  323. package/lib/typescript/types/metadata-types.d.ts.map +1 -0
  324. package/lib/typescript/types/schema-types.d.ts +6 -0
  325. package/lib/typescript/types/schema-types.d.ts.map +1 -0
  326. package/lib/typescript/types/types.d.ts +61 -0
  327. package/lib/typescript/types/types.d.ts.map +1 -0
  328. package/lib/typescript/types/utilities-types.d.ts +17 -0
  329. package/lib/typescript/types/utilities-types.d.ts.map +1 -0
  330. package/lib/typescript/utilities.d.ts +24 -10
  331. package/lib/typescript/utilities.d.ts.map +1 -1
  332. package/package.json +29 -26
  333. package/src/autocomplete-scripts/bash-autocomplete-script.ts +13 -9
  334. package/src/autocomplete-scripts/powershell-autocomplete-script.ts +21 -13
  335. package/src/autocomplete-scripts/zsh-autocomplete-script.ts +27 -23
  336. package/src/coerce/coerce-methods.ts +75 -0
  337. package/src/coerce/string-to-array.ts +18 -0
  338. package/src/coerce/string-to-primitive.ts +31 -0
  339. package/src/coerce/string-to-set.ts +15 -0
  340. package/src/definitions/define-arguments.ts +10 -0
  341. package/src/definitions/define-cli.ts +105 -0
  342. package/src/definitions/define-options.ts +12 -0
  343. package/src/definitions/define-subcommand.ts +57 -0
  344. package/src/definitions/validate-cli-definition.ts +331 -0
  345. package/src/help-message/format-arguments.ts +57 -33
  346. package/src/help-message/format-options.ts +59 -34
  347. package/src/help-message/format-subcommands.ts +43 -21
  348. package/src/help-message/generate-for-cli.ts +114 -0
  349. package/src/help-message/generate-for-subcommand.ts +32 -0
  350. package/src/help-message/print-help.ts +13 -0
  351. package/src/help-message/set-defaults.ts +34 -0
  352. package/src/help-message/styles.ts +148 -103
  353. package/src/help-message/terminal-markdown.ts +147 -0
  354. package/src/index.ts +28 -97
  355. package/src/markdown/generate-markdown.ts +47 -58
  356. package/src/metadata/arguments-metadata.ts +28 -0
  357. package/src/metadata/cli-metadata.ts +26 -0
  358. package/src/metadata/options-metadata.ts +38 -0
  359. package/src/metadata/subcommands-metadata.ts +35 -0
  360. package/src/parse/context/cli-context-builder.ts +246 -0
  361. package/src/parse/context/object-context-builder.ts +63 -0
  362. package/src/{parser/parse/parser-helpers.ts → parse/parser-utilities.ts} +46 -25
  363. package/src/parse/safe-parse.ts +76 -0
  364. package/src/parse/validation/validate-context.ts +23 -0
  365. package/src/parse/validation/validators/arguments.ts +59 -0
  366. package/src/parse/validation/validators/conflict.ts +68 -0
  367. package/src/parse/validation/validators/exclusive.ts +70 -0
  368. package/src/parse/validation/validators/explicitly-passed.ts +15 -0
  369. package/src/parse/validation/validators/options.ts +59 -0
  370. package/src/parse/validation/validators/requires.ts +82 -0
  371. package/src/types/context-types.ts +171 -0
  372. package/src/types/definitions-types.ts +340 -0
  373. package/src/types/help-message-types.ts +153 -0
  374. package/src/types/io-types.ts +131 -0
  375. package/src/types/metadata-types.ts +104 -0
  376. package/src/types/schema-types.ts +9 -0
  377. package/src/types/types.ts +72 -0
  378. package/src/types/utilities-types.ts +26 -0
  379. package/src/utilities.ts +200 -23
  380. package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.cjs +0 -42
  381. package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.cjs.map +0 -1
  382. package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.cjs +0 -31
  383. package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.cjs.map +0 -1
  384. package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.cjs +0 -41
  385. package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.cjs.map +0 -1
  386. package/lib/commonjs/help-message/format-arguments.cjs +0 -1
  387. package/lib/commonjs/help-message/format-arguments.cjs.map +0 -1
  388. package/lib/commonjs/help-message/format-cli.cjs +0 -1
  389. package/lib/commonjs/help-message/format-cli.cjs.map +0 -1
  390. package/lib/commonjs/help-message/format-options.cjs +0 -1
  391. package/lib/commonjs/help-message/format-options.cjs.map +0 -1
  392. package/lib/commonjs/help-message/format-subcommands.cjs +0 -1
  393. package/lib/commonjs/help-message/format-subcommands.cjs.map +0 -1
  394. package/lib/commonjs/help-message/styles.cjs +0 -1
  395. package/lib/commonjs/help-message/styles.cjs.map +0 -1
  396. package/lib/commonjs/index.cjs +0 -1
  397. package/lib/commonjs/index.cjs.map +0 -1
  398. package/lib/commonjs/markdown/generate-markdown.cjs +0 -1
  399. package/lib/commonjs/markdown/generate-markdown.cjs.map +0 -1
  400. package/lib/commonjs/metadata/get-arguments-metadata.cjs +0 -1
  401. package/lib/commonjs/metadata/get-arguments-metadata.cjs.map +0 -1
  402. package/lib/commonjs/metadata/get-cli-metadata.cjs +0 -1
  403. package/lib/commonjs/metadata/get-cli-metadata.cjs.map +0 -1
  404. package/lib/commonjs/metadata/get-options-metadata.cjs +0 -1
  405. package/lib/commonjs/metadata/get-options-metadata.cjs.map +0 -1
  406. package/lib/commonjs/metadata/get-subcommands-metadata.cjs +0 -1
  407. package/lib/commonjs/metadata/get-subcommands-metadata.cjs.map +0 -1
  408. package/lib/commonjs/parser/parse/parse.cjs +0 -1
  409. package/lib/commonjs/parser/parse/parse.cjs.map +0 -1
  410. package/lib/commonjs/parser/parse/parser-helpers.cjs +0 -1
  411. package/lib/commonjs/parser/parse/parser-helpers.cjs.map +0 -1
  412. package/lib/commonjs/parser/safe-parse.cjs +0 -1
  413. package/lib/commonjs/parser/safe-parse.cjs.map +0 -1
  414. package/lib/commonjs/parser/unsafe-parse.cjs +0 -1
  415. package/lib/commonjs/parser/unsafe-parse.cjs.map +0 -1
  416. package/lib/commonjs/parser/validate/validate-type.cjs +0 -1
  417. package/lib/commonjs/parser/validate/validate-type.cjs.map +0 -1
  418. package/lib/commonjs/parser/validate/validate.cjs +0 -1
  419. package/lib/commonjs/parser/validate/validate.cjs.map +0 -1
  420. package/lib/commonjs/utilities.cjs +0 -1
  421. package/lib/commonjs/utilities.cjs.map +0 -1
  422. package/lib/commonjs/zod-utilities.cjs +0 -1
  423. package/lib/commonjs/zod-utilities.cjs.map +0 -1
  424. package/lib/module/autocomplete-scripts/bash-autocomplete-script.mjs +0 -42
  425. package/lib/module/autocomplete-scripts/bash-autocomplete-script.mjs.map +0 -1
  426. package/lib/module/autocomplete-scripts/powershell-autocomplete-script.mjs +0 -31
  427. package/lib/module/autocomplete-scripts/powershell-autocomplete-script.mjs.map +0 -1
  428. package/lib/module/autocomplete-scripts/zsh-autocomplete-script.mjs +0 -41
  429. package/lib/module/autocomplete-scripts/zsh-autocomplete-script.mjs.map +0 -1
  430. package/lib/module/help-message/format-arguments.mjs +0 -1
  431. package/lib/module/help-message/format-arguments.mjs.map +0 -1
  432. package/lib/module/help-message/format-cli.mjs +0 -1
  433. package/lib/module/help-message/format-cli.mjs.map +0 -1
  434. package/lib/module/help-message/format-options.mjs +0 -1
  435. package/lib/module/help-message/format-options.mjs.map +0 -1
  436. package/lib/module/help-message/format-subcommands.mjs +0 -1
  437. package/lib/module/help-message/format-subcommands.mjs.map +0 -1
  438. package/lib/module/help-message/styles.mjs +0 -1
  439. package/lib/module/help-message/styles.mjs.map +0 -1
  440. package/lib/module/index.mjs +0 -1
  441. package/lib/module/index.mjs.map +0 -1
  442. package/lib/module/markdown/generate-markdown.mjs +0 -1
  443. package/lib/module/markdown/generate-markdown.mjs.map +0 -1
  444. package/lib/module/metadata/get-arguments-metadata.mjs +0 -1
  445. package/lib/module/metadata/get-arguments-metadata.mjs.map +0 -1
  446. package/lib/module/metadata/get-cli-metadata.mjs +0 -1
  447. package/lib/module/metadata/get-cli-metadata.mjs.map +0 -1
  448. package/lib/module/metadata/get-options-metadata.mjs +0 -1
  449. package/lib/module/metadata/get-options-metadata.mjs.map +0 -1
  450. package/lib/module/metadata/get-subcommands-metadata.mjs +0 -1
  451. package/lib/module/metadata/get-subcommands-metadata.mjs.map +0 -1
  452. package/lib/module/parser/parse/parse.mjs +0 -1
  453. package/lib/module/parser/parse/parse.mjs.map +0 -1
  454. package/lib/module/parser/parse/parser-helpers.mjs +0 -1
  455. package/lib/module/parser/parse/parser-helpers.mjs.map +0 -1
  456. package/lib/module/parser/safe-parse.mjs +0 -1
  457. package/lib/module/parser/safe-parse.mjs.map +0 -1
  458. package/lib/module/parser/unsafe-parse.mjs +0 -1
  459. package/lib/module/parser/unsafe-parse.mjs.map +0 -1
  460. package/lib/module/parser/validate/validate-type.mjs +0 -1
  461. package/lib/module/parser/validate/validate-type.mjs.map +0 -1
  462. package/lib/module/parser/validate/validate.mjs +0 -1
  463. package/lib/module/parser/validate/validate.mjs.map +0 -1
  464. package/lib/module/utilities.mjs +0 -1
  465. package/lib/module/utilities.mjs.map +0 -1
  466. package/lib/module/zod-utilities.mjs +0 -1
  467. package/lib/module/zod-utilities.mjs.map +0 -1
  468. package/lib/typescript/help-message/format-cli.d.ts +0 -6
  469. package/lib/typescript/help-message/format-cli.d.ts.map +0 -1
  470. package/lib/typescript/metadata/get-arguments-metadata.d.ts +0 -4
  471. package/lib/typescript/metadata/get-arguments-metadata.d.ts.map +0 -1
  472. package/lib/typescript/metadata/get-cli-metadata.d.ts +0 -4
  473. package/lib/typescript/metadata/get-cli-metadata.d.ts.map +0 -1
  474. package/lib/typescript/metadata/get-options-metadata.d.ts +0 -4
  475. package/lib/typescript/metadata/get-options-metadata.d.ts.map +0 -1
  476. package/lib/typescript/metadata/get-subcommands-metadata.d.ts +0 -4
  477. package/lib/typescript/metadata/get-subcommands-metadata.d.ts.map +0 -1
  478. package/lib/typescript/metadata/metadata-types.d.ts +0 -80
  479. package/lib/typescript/metadata/metadata-types.d.ts.map +0 -1
  480. package/lib/typescript/parser/parse/parse-types.d.ts +0 -85
  481. package/lib/typescript/parser/parse/parse-types.d.ts.map +0 -1
  482. package/lib/typescript/parser/parse/parse.d.ts +0 -4
  483. package/lib/typescript/parser/parse/parse.d.ts.map +0 -1
  484. package/lib/typescript/parser/parse/parser-helpers.d.ts.map +0 -1
  485. package/lib/typescript/parser/safe-parse.d.ts +0 -4
  486. package/lib/typescript/parser/safe-parse.d.ts.map +0 -1
  487. package/lib/typescript/parser/unsafe-parse.d.ts +0 -4
  488. package/lib/typescript/parser/unsafe-parse.d.ts.map +0 -1
  489. package/lib/typescript/parser/validate/validate-type.d.ts +0 -23
  490. package/lib/typescript/parser/validate/validate-type.d.ts.map +0 -1
  491. package/lib/typescript/parser/validate/validate.d.ts +0 -12
  492. package/lib/typescript/parser/validate/validate.d.ts.map +0 -1
  493. package/lib/typescript/types.d.ts +0 -294
  494. package/lib/typescript/types.d.ts.map +0 -1
  495. package/lib/typescript/zod-utilities.d.ts +0 -28
  496. package/lib/typescript/zod-utilities.d.ts.map +0 -1
  497. package/src/help-message/format-cli.ts +0 -141
  498. package/src/metadata/get-arguments-metadata.ts +0 -25
  499. package/src/metadata/get-cli-metadata.ts +0 -23
  500. package/src/metadata/get-options-metadata.ts +0 -35
  501. package/src/metadata/get-subcommands-metadata.ts +0 -32
  502. package/src/metadata/metadata-types.ts +0 -114
  503. package/src/parser/parse/parse-types.ts +0 -89
  504. package/src/parser/parse/parse.ts +0 -235
  505. package/src/parser/safe-parse.ts +0 -103
  506. package/src/parser/unsafe-parse.ts +0 -98
  507. package/src/parser/validate/validate-type.ts +0 -20
  508. package/src/parser/validate/validate.ts +0 -71
  509. package/src/types.ts +0 -365
  510. package/src/zod-utilities.ts +0 -214
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io-types.d.ts","sourceRoot":"","sources":["../../../src/types/io-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { SchemaType } from "./schema-types.ts";
2
+ interface MetadataBase {
3
+ /** Empty string if not provided */
4
+ description: string;
5
+ /** Empty string if not provided */
6
+ descriptionMarkdown: string;
7
+ /** Empty string if not provided */
8
+ example: string;
9
+ /** Whether the metadata is hidden from the documentation. */
10
+ hidden: boolean;
11
+ }
12
+ export interface CliMetadata extends Omit<MetadataBase, "hidden"> {
13
+ /** The name of the cli program. */
14
+ name: string;
15
+ /** Empty string if not provided */
16
+ usage: string;
17
+ /** Whether the cli program allows positionals arguments. */
18
+ allowPositionals: boolean;
19
+ /** Empty array if not provided */
20
+ options: OptionMetadata[];
21
+ /** Empty array if not provided */
22
+ arguments: ArgumentMetadata[];
23
+ /** Empty array if not provided */
24
+ subcommands: SubcommandMetadata[];
25
+ }
26
+ export interface SubcommandMetadata extends MetadataBase {
27
+ /** The subcommand name. */
28
+ name: string;
29
+ /** Empty array if not provided */
30
+ aliases: string[];
31
+ /** Empty string if not provided */
32
+ placeholder: string;
33
+ /** Empty string if not provided */
34
+ usage: string;
35
+ /** Whether the subcommand allows positionals arguments. */
36
+ allowPositionals: boolean;
37
+ /** Empty array if not provided */
38
+ options: OptionMetadata[];
39
+ /** Empty array if not provided */
40
+ arguments: ArgumentMetadata[];
41
+ }
42
+ export interface OptionMetadata extends MetadataBase {
43
+ /** The option name. */
44
+ name: string;
45
+ /** The option name as argument. E.g. `--option-name` */
46
+ nameAsArg: string;
47
+ /** Empty array if not provided. */
48
+ aliases: string[];
49
+ /** Empty array if not provided. E.g. `[--alias-name, ...]` */
50
+ aliasesAsArgs: string[];
51
+ /** Empty string if not provided */
52
+ placeholder: string;
53
+ /** The default value of the option. */
54
+ defaultValue: unknown;
55
+ /** Empty string if not provided. */
56
+ defaultValueAsString: string;
57
+ /** Is optional. */
58
+ optional: boolean;
59
+ /** Standard Schema V1. */
60
+ schema: SchemaType;
61
+ }
62
+ export interface ArgumentMetadata extends MetadataBase {
63
+ /** The argument name. */
64
+ name: string;
65
+ /** The default value of the argument. */
66
+ defaultValue: unknown;
67
+ /** The default value of the argument as string. */
68
+ defaultValueAsString: string;
69
+ /** Is optional. */
70
+ optional: boolean;
71
+ /** Standard Schema V1. */
72
+ schema: SchemaType;
73
+ }
74
+ export {};
75
+ //# sourceMappingURL=metadata-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-types.d.ts","sourceRoot":"","sources":["../../../src/types/metadata-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,YAAY;IACpB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAE5B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,6DAA6D;IAC7D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;IAC/D,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IAEd,4DAA4D;IAC5D,gBAAgB,EAAE,OAAO,CAAC;IAE1B,kCAAkC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,kCAAkC;IAClC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAE9B,kCAAkC;IAClC,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,gBAAgB,EAAE,OAAO,CAAC;IAE1B,kCAAkC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,kCAAkC;IAClC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAElB,mCAAmC;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAC;IAEtB,oCAAoC;IACpC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,mBAAmB;IACnB,QAAQ,EAAE,OAAO,CAAC;IAElB,0BAA0B;IAC1B,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,yCAAyC;IACzC,YAAY,EAAE,OAAO,CAAC;IAEtB,mDAAmD;IACnD,oBAAoB,EAAE,MAAM,CAAC;IAE7B,mBAAmB;IACnB,QAAQ,EAAE,OAAO,CAAC;IAElB,0BAA0B;IAC1B,MAAM,EAAE,UAAU,CAAC;CACpB"}
@@ -0,0 +1,6 @@
1
+ import type { StandardSchemaV1 } from "@standard-schema/spec";
2
+ export type SchemaType<T = unknown> = StandardSchemaV1<T>;
3
+ export type InferSchemaInputType<T extends SchemaType> = StandardSchemaV1.InferInput<T>;
4
+ export type InferSchemaOutputType<T extends SchemaType> = StandardSchemaV1.InferOutput<T>;
5
+ export type SchemaResult<T = unknown> = StandardSchemaV1.Result<T>;
6
+ //# sourceMappingURL=schema-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../../../src/types/schema-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAExF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,UAAU,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAE1F,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { Cli, Subcommand } from "./definitions-types.ts";
2
+ import type { PrintHelpOptions } from "./help-message-types.ts";
3
+ import type { InferInputType, InputTypeWide, OutputType, OutputTypeWide } from "./io-types.ts";
4
+ type PrimitiveTypeNames = "string" | "number" | "boolean" | "object" | "unknown";
5
+ export type CoerceTypes = PrimitiveTypeNames | `${PrimitiveTypeNames}[]` | `set<${PrimitiveTypeNames}>` | (string & {});
6
+ export interface CoerceMethod<Value> {
7
+ (terminalInput: string): Value;
8
+ type?: CoerceTypes;
9
+ }
10
+ type GetSubcommandsNames<T extends Partial<Subcommand>> = T extends Cli ? T["subcommands"] extends infer S extends readonly [Subcommand, ...Subcommand[]] ? {
11
+ [Index in keyof S]: S[Index] extends {
12
+ name: string;
13
+ } ? S[Index]["name"] : never;
14
+ }[number] : never : never;
15
+ type Unsubscribe = () => void;
16
+ export interface AttachedMethods<T extends Cli | Subcommand> {
17
+ /**
18
+ * Add a handler to be called when the subcommand/cli is executed.
19
+ *
20
+ * @example
21
+ * const unsubscribe = cli.onExecute(result => console.log(result));
22
+ */
23
+ onExecute: (handler: (data: OutputType<[T]>) => void) => Unsubscribe;
24
+ execute: InferInputType<T> extends infer InputType ? undefined extends InputType ? (input?: InputType) => void : (input: InputType) => void : never;
25
+ /** **WARNING**: This will only be available after the CLI schema has been created */
26
+ generateCliHelpMessage?: (options?: PrintHelpOptions) => string;
27
+ /**
28
+ * **WARNING**: This will only be available after the CLI schema has been created
29
+ *
30
+ * @throws {Error} - When the subcommand is not found
31
+ */
32
+ generateSubcommandHelpMessage?: (subcommandName: GetSubcommandsNames<T> | (string & {}), options?: PrintHelpOptions) => string;
33
+ }
34
+ export interface AttachedMethodsWide {
35
+ onExecute: (handler: (data: OutputTypeWide) => void) => Unsubscribe;
36
+ execute: (input?: InputTypeWide) => void;
37
+ generateCliHelpMessage?: (options?: PrintHelpOptions) => void;
38
+ /** @throws {Error} - When the subcommand is not found */
39
+ generateSubcommandHelpMessage?: (subcommandName: string, options?: PrintHelpOptions) => void;
40
+ }
41
+ export type CliOutputType<S extends Cli> = OutputType<[S]> | (S["subcommands"] extends readonly [Subcommand, ...Subcommand[]] ? OutputType<S["subcommands"]> : never);
42
+ export type CliParseResult<S extends Cli> = {
43
+ value: CliOutputType<S>;
44
+ error?: undefined;
45
+ } | {
46
+ value?: never;
47
+ error: Error;
48
+ };
49
+ export type CliParseResultWide = {
50
+ value: OutputTypeWide;
51
+ error?: undefined;
52
+ } | {
53
+ value?: never;
54
+ error: Error;
55
+ };
56
+ export interface ValidateMethods<S extends Cli> {
57
+ run(input: string | string[]): CliParseResult<S>;
58
+ runAsync(input: string | string[]): Promise<CliParseResult<S>>;
59
+ }
60
+ export {};
61
+ //# 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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"}
@@ -0,0 +1,17 @@
1
+ /** `{ some props } & { other props }` => `{ some props, other props }` */
2
+ export type Prettify<T> = {
3
+ [K in keyof T]: T[K];
4
+ } & {};
5
+ /** Extract the undefined properties from an object */
6
+ export type UndefinedProperties<T> = {
7
+ [P in keyof T]-?: undefined extends T[P] ? P : never;
8
+ }[keyof T];
9
+ /** Make undefined properties optional? */
10
+ export type ToOptional<T> = Partial<Pick<T, UndefinedProperties<T>>> & Pick<T, Exclude<keyof T, UndefinedProperties<T>>>;
11
+ /** If every property in a record is optional, widen the type to `T | undefined`. */
12
+ export type AllowUndefinedIfOptional<T> = {
13
+ [K in keyof T]-?: object extends Pick<T, K> ? never : K;
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
+ //# sourceMappingURL=utilities-types.d.ts.map
@@ -0,0 +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,11 +1,16 @@
1
- import { SubcommandMetadata } from "./metadata/metadata-types.js";
2
- /**
3
- * Converts a string to its corresponding boolean value if the string is "true" or "false" (case-insensitive).
4
- *
5
- * @param string - The input string to convert.
6
- * @returns `true` if the input is "true", `false` if the input is "false", or the original string otherwise.
7
- */
8
- export declare function stringToBoolean(string: string): boolean | string;
1
+ import type { Argument, Option, PreparedType } from "./types/definitions-types.ts";
2
+ import type { SubcommandMetadata } from "./types/metadata-types.ts";
3
+ import type { SchemaResult, SchemaType } from "./types/schema-types.ts";
4
+ import type { CoerceMethod } from "./types/types.ts";
5
+ /** @throws */
6
+ export declare function validateSync(schema: SchemaType, value?: unknown): SchemaResult;
7
+ export declare function defaultValueAndIsOptional(schema: SchemaType): {
8
+ defaultValue: unknown;
9
+ optional: boolean;
10
+ };
11
+ export declare function PrepareType(schema: SchemaType, coerceHandler: CoerceMethod<unknown>): PreparedType;
12
+ export declare function prepareDefinitionTypes(definition: Record<string, Argument> | Record<string, Option> | undefined): void;
13
+ export declare function toKebabCase(input: string): string;
9
14
  /**
10
15
  * Converts a zero-based index into its human-readable ordinal form.
11
16
  *
@@ -21,11 +26,20 @@ export declare function generateOrdinalSuffix(index: number): string;
21
26
  export declare function ln(count: number): string;
22
27
  /** Space */
23
28
  export declare function indent(count: number): string;
24
- /** Concat strings */
25
- export declare function concat(...messages: string[]): string;
29
+ /** Indents every line in the given text by the provided number of spaces. Empty lines are preserved. */
30
+ export declare function indentLines(text: string, spaces: number): string;
26
31
  export declare function stringifyValue(value: unknown): string;
27
32
  /** Insert text at the end of the first line */
28
33
  export declare function insertAtEndOfFirstLine(string: string, insert: string): string;
29
34
  /** Get the placeholder for a subcommand */
30
35
  export declare function subcommandPlaceholder(metadata: SubcommandMetadata): string;
36
+ /** Parse a string into an argv (array of arguments) */
37
+ export declare function parseArgv(input: string): string[];
38
+ /**
39
+ * Escape HTML characters inside HTML tags in a Markdown string, but leave code blocks, inline code, and HTML comments
40
+ * unchanged.
41
+ */
42
+ export declare function escapeHtmlTags(markdown: string): string;
43
+ export declare function stripAnsi(string: string): string;
44
+ export declare function findDuplicateStrings(values: readonly string[]): string[];
31
45
  //# sourceMappingURL=utilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAUhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B3D;AAED,eAAe;AACf,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,UAE/B;AAED,YAAY;AACZ,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAGnC;AAED,qBAAqB;AACrB,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,UAG3C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcrD;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIpE;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAoB1E"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,cAAc;AACd,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAO9E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAQ1G;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAUlG;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,QAY/G;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B3D;AAED,eAAe;AACf,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,UAE/B;AAED,YAAY;AACZ,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAGnC;AAED,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcrD;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIpE;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAwB1E;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA4EjD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBvD;AAoBD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAcxE"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zod-args-parser",
3
- "version": "2.0.0-alpha.0",
4
- "description": "A strictly typed command-line arguments parser powered by Zod.",
3
+ "version": "2.0.0-beta.1",
4
+ "description": "A TypeScript-first CLI argument parser with schema-based validation.",
5
5
  "author": "Ahmed ALABSI <alabsi91@gmail.com>",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -10,20 +10,21 @@
10
10
  },
11
11
  "type": "module",
12
12
  "scripts": {
13
- "dev": "tsx watch example/index.ts",
14
- "build": "node scripts/build.mjs",
15
- "test": "eslint src/** --fix && tsc --noEmit && tsx test/test.ts",
13
+ "dev": "tsx --watch example/index.ts",
14
+ "build": "node scripts/build.ts",
15
+ "test": "node --test && echo Checking types... && tsgo --noEmit && echo Linting... && eslint --config eslint.config.js --fix",
16
16
  "prepare": "npm run test && npm run build"
17
17
  },
18
- "types": "./lib/typescript/index.d.ts",
19
18
  "exports": {
20
19
  ".": {
21
- "import": "./lib/module/index.mjs",
22
- "require": "./lib/commonjs/index.cjs",
23
- "default": "./lib/module/index.mjs",
24
- "types": "./lib/typescript/index.d.ts"
20
+ "types": "./lib/typescript/index.d.ts",
21
+ "browser": "./lib/esm/index.js",
22
+ "import": "./lib/mjs/index.mjs",
23
+ "require": "./lib/cjs/index.cjs"
25
24
  }
26
25
  },
26
+ "jsdelivr": "./lib/iife/index.js",
27
+ "unpkg": "./lib/iife/index.js",
27
28
  "files": [
28
29
  "lib",
29
30
  "src"
@@ -33,32 +34,34 @@
33
34
  "cli",
34
35
  "arguments",
35
36
  "parser",
37
+ "schema",
38
+ "validation",
36
39
  "zod",
37
40
  "typescript"
38
41
  ],
39
42
  "devDependencies": {
40
- "@babel/core": "^7.28.5",
41
- "@babel/preset-env": "^7.28.5",
42
- "@babel/preset-typescript": "^7.28.5",
43
- "@eslint/js": "^9.38.0",
44
- "@types/babel__core": "^7.20.5",
45
- "@types/node": "^24.9.1",
46
- "babel-plugin-replace-import-extension": "^1.1.5",
47
- "eslint": "^9.38.0",
43
+ "@eslint/js": "^9.39.1",
44
+ "@eslint/markdown": "^7.5.1",
45
+ "@trivago/prettier-plugin-sort-imports": "^6.0.0",
46
+ "@types/node": "^24.10.0",
47
+ "@typescript/native-preview": "^7.0.0-dev.20251104.1",
48
+ "esbuild": "^0.27.0",
49
+ "eslint": "^9.39.1",
48
50
  "eslint-config-prettier": "^10.1.8",
49
51
  "eslint-plugin-prettier": "^5.5.4",
50
- "eslint-plugin-unicorn": "^61.0.2",
52
+ "eslint-plugin-unicorn": "^62.0.0",
51
53
  "glob": "^11.0.3",
52
- "globals": "^16.4.0",
54
+ "globals": "^16.5.0",
53
55
  "prettier": "^3.6.2",
54
- "prettier-plugin-jsdoc": "^1.3.3",
55
- "tsx": "^4.20.6",
56
+ "prettier-plugin-jsdoc": "^1.5.0",
57
+ "terser": "^5.44.1",
56
58
  "typescript": "^5.9.3",
57
- "typescript-eslint": "^8.46.2",
59
+ "typescript-eslint": "^8.46.4",
58
60
  "zod": "^4.1.12"
59
61
  },
60
- "peerDependencies": {
61
- "chalk": "*",
62
- "zod": "^3.25.0 || ^4.0.0"
62
+ "dependencies": {
63
+ "@standard-schema/spec": "^1.0.0",
64
+ "chalk": "^5.6.2",
65
+ "marked": "^17.0.0"
63
66
  }
64
67
  }
@@ -1,6 +1,6 @@
1
- import { transformOptionToArgument } from "../parser/parse/parser-helpers.js";
1
+ import { transformOptionToArgument } from "../parse/parser-utilities.ts";
2
2
 
3
- import type { Cli, Subcommand } from "../types.js";
3
+ import type { Cli } from "../types/definitions-types.ts";
4
4
 
5
5
  /**
6
6
  * - Generate bash autocomplete script for your CLI
@@ -10,15 +10,16 @@ import type { Cli, Subcommand } from "../types.js";
10
10
  * - Add the following line: `source <generated script path>`
11
11
  * - Save and reopen bash to take effect
12
12
  */
13
- export function generateBashAutocompleteScript(...parameters: [Cli, ...Subcommand[]]): string {
14
- const [cli, ...subcommands] = parameters;
13
+ export function generateBashAutocompleteScript(cliDefinition: Cli): string {
14
+ const subcommands = cliDefinition.subcommands ?? [];
15
15
 
16
16
  type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;
17
17
 
18
18
  const mappedCommands: MappedCommands = {};
19
+
19
20
  for (const subcommand of subcommands) {
20
21
  mappedCommands[subcommand.name] = {
21
- options: subcommand.options?.map(option => transformOptionToArgument(option.name)) ?? [],
22
+ options: subcommand.options ? Object.keys(subcommand.options).map(key => transformOptionToArgument(key)) : [],
22
23
  aliases: subcommand.aliases ?? [],
23
24
  };
24
25
  }
@@ -30,15 +31,18 @@ export function generateBashAutocompleteScript(...parameters: [Cli, ...Subcomman
30
31
  switchCase += " ;;\n";
31
32
  }
32
33
 
33
- if (cli.options?.length) {
34
+ if (cliDefinition.options?.length) {
35
+ const optionsNames = cliDefinition.options
36
+ ? Object.keys(cliDefinition.options).map(key => transformOptionToArgument(key))
37
+ : [];
34
38
  switchCase += ` "-"*)\n`;
35
- switchCase += ` opts="${cli.options.map(option => transformOptionToArgument(option.name)).join(" ")}"\n`;
39
+ switchCase += ` opts="${optionsNames.join(" ")}"\n`;
36
40
  switchCase += " ;;\n";
37
41
  }
38
42
 
39
43
  return `# Auto-generated by zod-args-parser
40
44
 
41
- _${cli.cliName}_autocomplete() {
45
+ _${cliDefinition.cliName}_autocomplete() {
42
46
  local cur prev commands opts subcommand used_opts filtered_opts
43
47
 
44
48
  cur="\${COMP_WORDS[COMP_CWORD]}"
@@ -76,6 +80,6 @@ ${switchCase}
76
80
  fi
77
81
  }
78
82
 
79
- complete -F _${cli.cliName}_autocomplete ${cli.cliName}
83
+ complete -F _${cliDefinition.cliName}_autocomplete ${cliDefinition.cliName}
80
84
  `;
81
85
  }
@@ -1,6 +1,6 @@
1
- import { transformOptionToArgument } from "../parser/parse/parser-helpers.js";
1
+ import { transformOptionToArgument } from "../parse/parser-utilities.ts";
2
2
 
3
- import type { Cli, Subcommand } from "../types.js";
3
+ import type { Cli } from "../types/definitions-types.ts";
4
4
 
5
5
  /**
6
6
  * - Generates a PowerShell autocomplete script for your CLI.
@@ -13,15 +13,17 @@ import type { Cli, Subcommand } from "../types.js";
13
13
  * - Add the following line: `. "<generated script path>"`
14
14
  * - Save and reopen powershell to take effect
15
15
  */
16
- export function generatePowerShellAutocompleteScript(...parameters: [Cli, ...Subcommand[]]): string {
17
- const [cli, ...subcommands] = parameters;
16
+ export function generatePowerShellAutocompleteScript(cliDefinition: Cli): string {
17
+ const subcommands = cliDefinition.subcommands ?? [];
18
+ const meta = cliDefinition.meta ?? {};
18
19
 
19
20
  type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;
20
21
 
21
22
  const mappedCommands: MappedCommands = {};
23
+
22
24
  for (const subcommand of subcommands) {
23
25
  mappedCommands[subcommand.name] = {
24
- options: subcommand.options?.map(option => transformOptionToArgument(option.name)) ?? [],
26
+ options: subcommand.options ? Object.keys(subcommand.options).map(key => transformOptionToArgument(key)) : [],
25
27
  aliases: subcommand.aliases ?? [],
26
28
  };
27
29
  }
@@ -29,7 +31,11 @@ export function generatePowerShellAutocompleteScript(...parameters: [Cli, ...Sub
29
31
  const subcommandsString = Object.keys(mappedCommands)
30
32
  .map(key => `'${key}'`)
31
33
  .join(", ");
32
- const cliOptionsString = cli.options?.map(option => `'${transformOptionToArgument(option.name)}'`).join(", ") || "";
34
+
35
+ const optionsNames = cliDefinition.options
36
+ ? Object.keys(cliDefinition.options).map(key => transformOptionToArgument(key))
37
+ : [];
38
+ const cliOptionsString = optionsNames.map(option => `'${option}'`).join(", ");
33
39
 
34
40
  let switchCase = "switch ($subcommand) {\n";
35
41
  for (const [key, { options, aliases }] of Object.entries(mappedCommands)) {
@@ -41,37 +47,39 @@ export function generatePowerShellAutocompleteScript(...parameters: [Cli, ...Sub
41
47
  }
42
48
  switchCase += ` default { @(${cliOptionsString}) }\n }`;
43
49
 
50
+ const description = meta.description ?? meta.descriptionMarkdown;
51
+
44
52
  let functionInfo = "";
45
- if (cli.description) {
46
- functionInfo = `<#\n.DESCRIPTION\n${cli.description}\n${cli.example ? `\n.EXAMPLE\n${cli.example}` : ""}\n#>`;
53
+ if (description) {
54
+ functionInfo = `<#\n.DESCRIPTION\n${description}\n${meta.example ? `\n.EXAMPLE\n${meta.example}` : ""}\n#>`;
47
55
  }
48
56
 
49
57
  return `# Auto-generated by zod-args-parser
50
58
 
51
59
  ${functionInfo}
52
- function ${cli.cliName} {
60
+ function ${cliDefinition.cliName} {
53
61
  param(
54
62
  [Parameter(Position = 0, Mandatory = $false)]
55
63
  [string]$subcommand,
56
64
  [Parameter(Position = 1, ValueFromRemainingArguments = $true)]
57
65
  [string[]]$arguments
58
66
  )
59
- $scriptPath = (Get-Command '${cli.cliName}.ps1').Source
67
+ $scriptPath = (Get-Command '${cliDefinition.cliName}.ps1').Source
60
68
  if ($scriptPath) {
61
69
  $argumentList = @($subcommand) + ($arguments | Where-Object { $_ -notin '--', '--%' }) | Where-Object { $_ -ne '' }
62
70
  & $scriptPath @argumentList
63
71
  return
64
72
  }
65
- Write-Error "Could not find '${cli.cliName}.ps1' script"
73
+ Write-Error "Could not find '${cliDefinition.cliName}.ps1' script"
66
74
  }
67
75
 
68
- Register-ArgumentCompleter -CommandName '${cli.cliName}' -ParameterName 'subcommand' -ScriptBlock {
76
+ Register-ArgumentCompleter -CommandName '${cliDefinition.cliName}' -ParameterName 'subcommand' -ScriptBlock {
69
77
  param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
70
78
  $subcommands = @(${subcommandsString}${subcommandsString && cliOptionsString ? ", " : ""}${cliOptionsString})
71
79
  $subcommands | Where-Object { $_ -like "$wordToComplete*" }
72
80
  }
73
81
 
74
- Register-ArgumentCompleter -CommandName '${cli.cliName}' -ParameterName 'arguments' -ScriptBlock {
82
+ Register-ArgumentCompleter -CommandName '${cliDefinition.cliName}' -ParameterName 'arguments' -ScriptBlock {
75
83
  param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
76
84
  $subcommand = $commandAst.CommandElements[1].Value
77
85
  $arguments = ${switchCase}
@@ -1,6 +1,6 @@
1
- import { transformOptionToArgument } from "../parser/parse/parser-helpers.js";
1
+ import { transformOptionToArgument } from "../parse/parser-utilities.ts";
2
2
 
3
- import type { Cli, Option, Subcommand } from "../types.js";
3
+ import type { Cli, Subcommand } from "../types/definitions-types.ts";
4
4
 
5
5
  /**
6
6
  * - Generates a ZSH autocomplete script for your CLI.
@@ -10,34 +10,38 @@ import type { Cli, Option, Subcommand } from "../types.js";
10
10
  * - Add the following line: `source <generated script path>`
11
11
  * - Save and reopen zsh to take effect
12
12
  */
13
- export function generateZshAutocompleteScript(...parameters: [Cli, ...Subcommand[]]): string {
14
- const [cli, ...subcommands] = parameters;
13
+ export function generateZshAutocompleteScript(cliDefinition: Cli): string {
14
+ const subcommands = cliDefinition.subcommands ?? [];
15
15
 
16
- const genArguments = (options: Option[]) => {
17
- return options
18
- ?.map(option => `'${transformOptionToArgument(option.name)}[${option.description ?? ""}]'`)
19
- .join(" \\\n ");
16
+ const genArguments = (command: Subcommand) => {
17
+ const optionsNameDesc = command.options
18
+ ? Object.entries(command.options).map(
19
+ ([name, value]) => `'${transformOptionToArgument(name)}[${value.meta?.description ?? ""}]'`,
20
+ )
21
+ : [];
22
+
23
+ return optionsNameDesc.join(" \\\n ");
20
24
  };
21
25
 
22
26
  const genSubCommand = (subcommand: Subcommand) => {
23
27
  const options = subcommand.options;
24
- if (!options || options.length === 0) return "";
25
- return `${subcommand.name})
26
- _arguments \\
27
- ${genArguments(options)} \\
28
- '*: :_files' \\
28
+ if (!options) return "";
29
+ return String.raw`${subcommand.name})
30
+ _arguments \
31
+ ${genArguments(subcommand)} \
32
+ '*: :_files' \
29
33
  && ret=0
30
34
  ;;`;
31
35
  };
32
36
 
33
- return `# Auto-generated by zod-args-parser
37
+ return String.raw`# Auto-generated by zod-args-parser
34
38
 
35
- _${cli.cliName}_autocomplete() {
39
+ _${cliDefinition.cliName}_autocomplete() {
36
40
  local ret=1
37
41
 
38
- _arguments -C \\
39
- '1: :_${cli.cliName}_commands' \\
40
- '*:: :->subcmds' \\
42
+ _arguments -C \
43
+ '1: :_${cliDefinition.cliName}_commands' \
44
+ '*:: :->subcmds' \
41
45
  && ret=0
42
46
 
43
47
  case $state in
@@ -48,8 +52,8 @@ _${cli.cliName}_autocomplete() {
48
52
  .filter(Boolean)
49
53
  .join("\n ")}
50
54
  *)
51
- _arguments \\
52
- '*: :_files' \\
55
+ _arguments \
56
+ '*: :_files' \
53
57
  && ret=0
54
58
  ;;
55
59
  esac
@@ -59,14 +63,14 @@ _${cli.cliName}_autocomplete() {
59
63
  return $ret
60
64
  }
61
65
 
62
- _${cli.cliName}_commands() {
66
+ _${cliDefinition.cliName}_commands() {
63
67
  local -a commands=(
64
- ${subcommands.map(subcommand => `"${subcommand.name}:${subcommand.description ?? ""}"`).join("\n ")}
68
+ ${subcommands.map(subcommand => `"${subcommand.name}:${subcommand.meta?.description ?? ""}"`).join("\n ")}
65
69
  )
66
70
 
67
71
  _describe -t subcommands 'subcommand' commands
68
72
  }
69
73
 
70
- compdef _${cli.cliName}_autocomplete ${cli.cliName}
74
+ compdef _${cliDefinition.cliName}_autocomplete ${cliDefinition.cliName}
71
75
  `;
72
76
  }