zod-args-parser 1.2.8 → 2.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 -22
  490. package/lib/typescript/parser/validate/validate-type.d.ts.map +0 -1
  491. package/lib/typescript/parser/validate/validate.d.ts +0 -11
  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 -230
  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 -21
  508. package/src/parser/validate/validate.ts +0 -66
  509. package/src/types.ts +0 -365
  510. package/src/zod-utilities.ts +0 -214
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,o)=>{for(var t in o)__defProp(e,t,{get:o[t],enumerable:!0})},__copyProps=(e,o,t,n)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let r of __getOwnPropNames(o))__hasOwnProp.call(e,r)||r===t||__defProp(e,r,{get:()=>o[r],enumerable:!(n=__getOwnPropDesc(o,r))||n.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),bash_autocomplete_script_exports={};__export(bash_autocomplete_script_exports,{generateBashAutocompleteScript:()=>generateBashAutocompleteScript}),module.exports=__toCommonJS(bash_autocomplete_script_exports);var import_parser_utilities=require("../parse/parser-utilities.cjs");function generateBashAutocompleteScript(e){const o=e.subcommands??[],t={};for(const e of o)t[e.name]={options:e.options?Object.keys(e.options).map(e=>(0,import_parser_utilities.transformOptionToArgument)(e)):[],aliases:e.aliases??[]};let n="";for(const[e,{options:o,aliases:r}]of Object.entries(t))n+=` ${e}${r.length>0?"|":""}${r.join("|")})\n`,n+=` opts="${o.join(" ")}"\n`,n+=" ;;\n";if(e.options?.length){n+=' "-"*)\n',n+=` opts="${(e.options?Object.keys(e.options).map(e=>(0,import_parser_utilities.transformOptionToArgument)(e)):[]).join(" ")}"\n`,n+=" ;;\n"}return`# Auto-generated by zod-args-parser\n\n_${e.cliName}_autocomplete() {\n local cur prev commands opts subcommand used_opts filtered_opts\n\n cur="\${COMP_WORDS[COMP_CWORD]}"\n prev="\${COMP_WORDS[COMP_CWORD-1]}"\n subcommand="\${COMP_WORDS[1]}"\n\n commands="${Object.keys(t).join(" ")}"\n\n case "$subcommand" in\n${n}\n esac\n\n used_opts=""\n if [[ " \${commands[@]} " =~ " $subcommand " ]]; then\n for word in "\${COMP_WORDS[@]:2}"; do\n if [[ "$word" =~ ^- ]]; then\n used_opts+=" $word"\n fi\n done\n fi\n\n if [[ -n "$opts" ]]; then\n filtered_opts=""\n for opt in $opts; do\n if [[ ! " $used_opts " =~ " $opt " ]]; then\n filtered_opts+="$opt "\n fi\n done\n COMPREPLY=( $(compgen -W "$filtered_opts" -- "$cur") )\n return\n fi\n\n if [[ "\${COMP_CWORD}" -eq 1 ]]; then\n COMPREPLY=( $(compgen -W "$commands" -- "$cur") )\n fi\n}\n\ncomplete -F _${e.cliName}_autocomplete ${e.cliName}\n`}
2
+ //# sourceMappingURL=bash-autocomplete-script.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bash_autocomplete_script_exports","__export","generateBashAutocompleteScript","module","exports","__toCommonJS","import_parser_utilities","require","cliDefinition","subcommands","mappedCommands","subcommand","name","options","Object","keys","map","key","transformOptionToArgument","aliases","switchCase","entries","length","join","cliName"],"sources":["../../../src/autocomplete-scripts/bash-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArgument } from \"../parse/parser-utilities.ts\";\n\nimport type { Cli } from \"../types/definitions-types.ts\";\n\n/**\n * - Generate bash autocomplete script for your CLI\n * - The generated script should be added to your `.bash_profile` or `.bashrc` file:\n *\n * - Run: `nano $HOME/.bash_profile` or `nano $HOME/.bashrc`\n * - Add the following line: `source <generated script path>`\n * - Save and reopen bash to take effect\n */\nexport function generateBashAutocompleteScript(cliDefinition: Cli): string {\n const subcommands = cliDefinition.subcommands ?? [];\n\n type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;\n\n const mappedCommands: MappedCommands = {};\n\n for (const subcommand of subcommands) {\n mappedCommands[subcommand.name] = {\n options: subcommand.options ? Object.keys(subcommand.options).map(key => transformOptionToArgument(key)) : [],\n aliases: subcommand.aliases ?? [],\n };\n }\n\n let switchCase = \"\";\n for (const [key, { options, aliases }] of Object.entries(mappedCommands)) {\n switchCase += ` ${key}${aliases.length > 0 ? \"|\" : \"\"}${aliases.join(\"|\")})\\n`;\n switchCase += ` opts=\"${options.join(\" \")}\"\\n`;\n switchCase += \" ;;\\n\";\n }\n\n if (cliDefinition.options?.length) {\n const optionsNames = cliDefinition.options\n ? Object.keys(cliDefinition.options).map(key => transformOptionToArgument(key))\n : [];\n switchCase += ` \"-\"*)\\n`;\n switchCase += ` opts=\"${optionsNames.join(\" \")}\"\\n`;\n switchCase += \" ;;\\n\";\n }\n\n return `# Auto-generated by zod-args-parser\n\n_${cliDefinition.cliName}_autocomplete() {\n local cur prev commands opts subcommand used_opts filtered_opts\n\n cur=\"\\${COMP_WORDS[COMP_CWORD]}\"\n prev=\"\\${COMP_WORDS[COMP_CWORD-1]}\"\n subcommand=\"\\${COMP_WORDS[1]}\"\n\n commands=\"${Object.keys(mappedCommands).join(\" \")}\"\n\n case \"$subcommand\" in\n${switchCase}\n esac\n\n used_opts=\"\"\n if [[ \" \\${commands[@]} \" =~ \" $subcommand \" ]]; then\n for word in \"\\${COMP_WORDS[@]:2}\"; do\n if [[ \"$word\" =~ ^- ]]; then\n used_opts+=\" $word\"\n fi\n done\n fi\n\n if [[ -n \"$opts\" ]]; then\n filtered_opts=\"\"\n for opt in $opts; do\n if [[ ! \" $used_opts \" =~ \" $opt \" ]]; then\n filtered_opts+=\"$opt \"\n fi\n done\n COMPREPLY=( $(compgen -W \"$filtered_opts\" -- \"$cur\") )\n return\n fi\n\n if [[ \"\\${COMP_CWORD}\" -eq 1 ]]; then\n COMPREPLY=( $(compgen -W \"$commands\" -- \"$cur\") )\n fi\n}\n\ncomplete -F _${cliDefinition.cliName}_autocomplete ${cliDefinition.cliName}\n`;\n}\n"],"mappings":"8iBAAAA,iCAAA,GAAAC,SAAAD,iCAAA,CAAAE,+BAAA,IAAAA,iCAAAC,OAAAC,QAAAC,aAAAL,kCAAA,IAAAM,wBAA0CC,QAAA,iCAYnC,SAASL,+BAA+BM,GAC7C,MAAMC,EAAcD,EAAcC,aAAe,GAI3CC,EAAiC,CAAC,EAExC,UAAWC,KAAcF,EACvBC,EAAeC,EAAWC,MAAQ,CAChCC,QAASF,EAAWE,QAAUC,OAAOC,KAAKJ,EAAWE,SAASG,IAAIC,IAAA,EAAOX,wBAAAY,2BAA0BD,IAAQ,GAC3GE,QAASR,EAAWQ,SAAW,IAInC,IAAIC,EAAa,GACjB,UAAYH,GAAKJ,QAAEA,EAAAM,QAASA,MAAcL,OAAOO,QAAQX,GACvDU,GAAc,OAAOH,IAAME,EAAQG,OAAS,EAAI,IAAM,KAAKH,EAAQI,KAAK,UACxEH,GAAc,eAAeP,EAAQU,KAAK,UAC1CH,GAAc,aAGhB,GAAIZ,EAAcK,SAASS,OAAQ,CAIjCF,GAAc,cACdA,GAAc,gBAJOZ,EAAcK,QAC/BC,OAAOC,KAAKP,EAAcK,SAASG,IAAIC,IAAA,EAAOX,wBAAAY,2BAA0BD,IACxE,IAEsCM,KAAK,UAC/CH,GAAc,YAChB,CAEA,MAAO,2CAENZ,EAAcgB,6NAOHV,OAAOC,KAAKL,GAAgBa,KAAK,qCAG7CH,6lBA4BaZ,EAAcgB,wBAAwBhB,EAAcgB,WAEnE","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var o in t)__defProp(e,o,{get:t[o],enumerable:!0})},__copyProps=(e,t,o,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===o||__defProp(e,n,{get:()=>t[n],enumerable:!(r=__getOwnPropDesc(t,n))||r.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),powershell_autocomplete_script_exports={};__export(powershell_autocomplete_script_exports,{generatePowerShellAutocompleteScript:()=>generatePowerShellAutocompleteScript}),module.exports=__toCommonJS(powershell_autocomplete_script_exports);var import_parser_utilities=require("../parse/parser-utilities.cjs");function generatePowerShellAutocompleteScript(e){const t=e.subcommands??[],o=e.meta??{},r={};for(const e of t)r[e.name]={options:e.options?Object.keys(e.options).map(e=>(0,import_parser_utilities.transformOptionToArgument)(e)):[],aliases:e.aliases??[]};const n=Object.keys(r).map(e=>`'${e}'`).join(", "),a=(e.options?Object.keys(e.options).map(e=>(0,import_parser_utilities.transformOptionToArgument)(e)):[]).map(e=>`'${e}'`).join(", ");let m="switch ($subcommand) {\n";for(const[e,{options:t,aliases:o}]of Object.entries(r)){const r=t.map(e=>`'${e}'`).join(", ");m+=` '${e}' { @(${r}) }\n`;for(const e of o)m+=` '${e}' { @(${r}) }\n`}m+=` default { @(${a}) }\n }`;const s=o.description??o.descriptionMarkdown;let p="";return s&&(p=`<#\n.DESCRIPTION\n${s}\n${o.example?`\n.EXAMPLE\n${o.example}`:""}\n#>`),`# Auto-generated by zod-args-parser\n\n${p}\nfunction ${e.cliName} {\n param(\n [Parameter(Position = 0, Mandatory = $false)]\n [string]$subcommand,\n [Parameter(Position = 1, ValueFromRemainingArguments = $true)]\n [string[]]$arguments\n )\n $scriptPath = (Get-Command '${e.cliName}.ps1').Source\n if ($scriptPath) {\n $argumentList = @($subcommand) + ($arguments | Where-Object { $_ -notin '--', '--%' }) | Where-Object { $_ -ne '' }\n & $scriptPath @argumentList\n return\n }\n Write-Error "Could not find '${e.cliName}.ps1' script"\n}\n\nRegister-ArgumentCompleter -CommandName '${e.cliName}' -ParameterName 'subcommand' -ScriptBlock {\n param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)\n $subcommands = @(${n}${n&&a?", ":""}${a})\n $subcommands | Where-Object { $_ -like "$wordToComplete*" }\n}\n\nRegister-ArgumentCompleter -CommandName '${e.cliName}' -ParameterName 'arguments' -ScriptBlock {\n param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)\n $subcommand = $commandAst.CommandElements[1].Value\n $arguments = ${m}\n $arguments | Where-Object { $_ -like "$wordToComplete*" }\n}`}
2
+ //# sourceMappingURL=powershell-autocomplete-script.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["powershell_autocomplete_script_exports","__export","generatePowerShellAutocompleteScript","module","exports","__toCommonJS","import_parser_utilities","require","cliDefinition","subcommands","meta","mappedCommands","subcommand","name","options","Object","keys","map","key","transformOptionToArgument","aliases","subcommandsString","join","cliOptionsString","option","switchCase","entries","optionsString","a","description","descriptionMarkdown","functionInfo","example","cliName"],"sources":["../../../src/autocomplete-scripts/powershell-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArgument } from \"../parse/parser-utilities.ts\";\n\nimport type { Cli } from \"../types/definitions-types.ts\";\n\n/**\n * - Generates a PowerShell autocomplete script for your CLI.\n * - The script assumes that your CLI is available as a `.ps1` file in the environment variable. For example:\n * `cliName.ps1`.\n * - This should return a path to your script: `(Get-Command <cliName>.ps1).Source`\n * - The generated script should be added to your `profile.ps1` file:\n *\n * - Run: `notepad $profile`\n * - Add the following line: `. \"<generated script path>\"`\n * - Save and reopen powershell to take effect\n */\nexport function generatePowerShellAutocompleteScript(cliDefinition: Cli): string {\n const subcommands = cliDefinition.subcommands ?? [];\n const meta = cliDefinition.meta ?? {};\n\n type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;\n\n const mappedCommands: MappedCommands = {};\n\n for (const subcommand of subcommands) {\n mappedCommands[subcommand.name] = {\n options: subcommand.options ? Object.keys(subcommand.options).map(key => transformOptionToArgument(key)) : [],\n aliases: subcommand.aliases ?? [],\n };\n }\n\n const subcommandsString = Object.keys(mappedCommands)\n .map(key => `'${key}'`)\n .join(\", \");\n\n const optionsNames = cliDefinition.options\n ? Object.keys(cliDefinition.options).map(key => transformOptionToArgument(key))\n : [];\n const cliOptionsString = optionsNames.map(option => `'${option}'`).join(\", \");\n\n let switchCase = \"switch ($subcommand) {\\n\";\n for (const [key, { options, aliases }] of Object.entries(mappedCommands)) {\n const optionsString = options.map(option => `'${option}'`).join(\", \");\n switchCase += ` '${key}' { @(${optionsString}) }\\n`;\n for (const a of aliases) {\n switchCase += ` '${a}' { @(${optionsString}) }\\n`;\n }\n }\n switchCase += ` default { @(${cliOptionsString}) }\\n }`;\n\n const description = meta.description ?? meta.descriptionMarkdown;\n\n let functionInfo = \"\";\n if (description) {\n functionInfo = `<#\\n.DESCRIPTION\\n${description}\\n${meta.example ? `\\n.EXAMPLE\\n${meta.example}` : \"\"}\\n#>`;\n }\n\n return `# Auto-generated by zod-args-parser\n\n${functionInfo}\nfunction ${cliDefinition.cliName} {\n param(\n [Parameter(Position = 0, Mandatory = $false)]\n [string]$subcommand,\n [Parameter(Position = 1, ValueFromRemainingArguments = $true)]\n [string[]]$arguments\n )\n $scriptPath = (Get-Command '${cliDefinition.cliName}.ps1').Source\n if ($scriptPath) {\n $argumentList = @($subcommand) + ($arguments | Where-Object { $_ -notin '--', '--%' }) | Where-Object { $_ -ne '' }\n & $scriptPath @argumentList\n return\n }\n Write-Error \"Could not find '${cliDefinition.cliName}.ps1' script\"\n}\n\nRegister-ArgumentCompleter -CommandName '${cliDefinition.cliName}' -ParameterName 'subcommand' -ScriptBlock {\n param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)\n $subcommands = @(${subcommandsString}${subcommandsString && cliOptionsString ? \", \" : \"\"}${cliOptionsString})\n $subcommands | Where-Object { $_ -like \"$wordToComplete*\" }\n}\n\nRegister-ArgumentCompleter -CommandName '${cliDefinition.cliName}' -ParameterName 'arguments' -ScriptBlock {\n param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)\n $subcommand = $commandAst.CommandElements[1].Value\n $arguments = ${switchCase}\n $arguments | Where-Object { $_ -like \"$wordToComplete*\" }\n}`;\n}\n"],"mappings":"8iBAAAA,uCAAA,GAAAC,SAAAD,uCAAA,CAAAE,qCAAA,IAAAA,uCAAAC,OAAAC,QAAAC,aAAAL,wCAAA,IAAAM,wBAA0CC,QAAA,iCAenC,SAASL,qCAAqCM,GACnD,MAAMC,EAAcD,EAAcC,aAAe,GAC3CC,EAAOF,EAAcE,MAAQ,CAAC,EAI9BC,EAAiC,CAAC,EAExC,UAAWC,KAAcH,EACvBE,EAAeC,EAAWC,MAAQ,CAChCC,QAASF,EAAWE,QAAUC,OAAOC,KAAKJ,EAAWE,SAASG,IAAIC,IAAA,EAAOZ,wBAAAa,2BAA0BD,IAAQ,GAC3GE,QAASR,EAAWQ,SAAW,IAInC,MAAMC,EAAoBN,OAAOC,KAAKL,GACnCM,IAAIC,GAAO,IAAIA,MACfI,KAAK,MAKFC,GAHef,EAAcM,QAC/BC,OAAOC,KAAKR,EAAcM,SAASG,IAAIC,IAAA,EAAOZ,wBAAAa,2BAA0BD,IACxE,IACkCD,IAAIO,GAAU,IAAIA,MAAWF,KAAK,MAExE,IAAIG,EAAa,2BACjB,UAAYP,GAAKJ,QAAEA,EAAAM,QAASA,MAAcL,OAAOW,QAAQf,GAAiB,CACxE,MAAMgB,EAAgBb,EAAQG,IAAIO,GAAU,IAAIA,MAAWF,KAAK,MAChEG,GAAc,YAAYP,UAAYS,SACtC,UAAWC,KAAKR,EACdK,GAAc,YAAYG,UAAUD,QAExC,CACAF,GAAc,uBAAuBF,cAErC,MAAMM,EAAcnB,EAAKmB,aAAenB,EAAKoB,oBAE7C,IAAIC,EAAe,GAKnB,OAJIF,IACFE,EAAe,qBAAqBF,MAAgBnB,EAAKsB,QAAU,eAAetB,EAAKsB,UAAY,UAG9F,0CAEPD,eACSvB,EAAcyB,4PAOSzB,EAAcyB,2QAMbzB,EAAcyB,uEAGNzB,EAAcyB,0KAElCZ,IAAoBA,GAAqBE,EAAmB,KAAO,KAAKA,sHAIpDf,EAAcyB,6NAGtCR,qEAGnB","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var r in t)__defProp(e,r,{get:t[r],enumerable:!0})},__copyProps=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of __getOwnPropNames(t))__hasOwnProp.call(e,s)||s===r||__defProp(e,s,{get:()=>t[s],enumerable:!(o=__getOwnPropDesc(t,s))||o.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),zsh_autocomplete_script_exports={};__export(zsh_autocomplete_script_exports,{generateZshAutocompleteScript:()=>generateZshAutocompleteScript}),module.exports=__toCommonJS(zsh_autocomplete_script_exports);var import_parser_utilities=require("../parse/parser-utilities.cjs");function generateZshAutocompleteScript(e){const t=e.subcommands??[],r=e=>{return e.options?String.raw`${e.name})
2
+ _arguments \
3
+ ${t=e,(t.options?Object.entries(t.options).map(([e,t])=>`'${(0,import_parser_utilities.transformOptionToArgument)(e)}[${t.meta?.description??""}]'`):[]).join(" \\\n ")} \
4
+ '*: :_files' \
5
+ && ret=0
6
+ ;;`:"";var t};return String.raw`# Auto-generated by zod-args-parser
7
+
8
+ _${e.cliName}_autocomplete() {
9
+ local ret=1
10
+
11
+ _arguments -C \
12
+ '1: :_${e.cliName}_commands' \
13
+ '*:: :->subcmds' \
14
+ && ret=0
15
+
16
+ case $state in
17
+ subcmds)
18
+ case "$words[1]" in
19
+ ${t.map(e=>r(e)).filter(Boolean).join("\n ")}
20
+ *)
21
+ _arguments \
22
+ '*: :_files' \
23
+ && ret=0
24
+ ;;
25
+ esac
26
+ ;;
27
+ esac
28
+
29
+ return $ret
30
+ }
31
+
32
+ _${e.cliName}_commands() {
33
+ local -a commands=(
34
+ ${t.map(e=>`"${e.name}:${e.meta?.description??""}"`).join("\n ")}
35
+ )
36
+
37
+ _describe -t subcommands 'subcommand' commands
38
+ }
39
+
40
+ compdef _${e.cliName}_autocomplete ${e.cliName}
41
+ `}
42
+ //# sourceMappingURL=zsh-autocomplete-script.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["zsh_autocomplete_script_exports","__export","generateZshAutocompleteScript","module","exports","__toCommonJS","import_parser_utilities","require","cliDefinition","subcommands","genSubCommand","subcommand","options","String","raw","name","command","Object","entries","map","value","transformOptionToArgument","meta","description","join","cliName","subCommand","filter","Boolean"],"sources":["../../../src/autocomplete-scripts/zsh-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArgument } from \"../parse/parser-utilities.ts\";\n\nimport type { Cli, Subcommand } from \"../types/definitions-types.ts\";\n\n/**\n * - Generates a ZSH autocomplete script for your CLI.\n * - The generated script should be added to your `~/.zshrc` or `~/.zsh_profile` file:\n *\n * - Run: `nano $HOME/.zshrc` or `nano $HOME/.zsh_profile`\n * - Add the following line: `source <generated script path>`\n * - Save and reopen zsh to take effect\n */\nexport function generateZshAutocompleteScript(cliDefinition: Cli): string {\n const subcommands = cliDefinition.subcommands ?? [];\n\n const genArguments = (command: Subcommand) => {\n const optionsNameDesc = command.options\n ? Object.entries(command.options).map(\n ([name, value]) => `'${transformOptionToArgument(name)}[${value.meta?.description ?? \"\"}]'`,\n )\n : [];\n\n return optionsNameDesc.join(\" \\\\\\n \");\n };\n\n const genSubCommand = (subcommand: Subcommand) => {\n const options = subcommand.options;\n if (!options) return \"\";\n return String.raw`${subcommand.name})\n _arguments \\\n ${genArguments(subcommand)} \\\n '*: :_files' \\\n && ret=0\n ;;`;\n };\n\n return String.raw`# Auto-generated by zod-args-parser\n\n_${cliDefinition.cliName}_autocomplete() {\n local ret=1\n\n _arguments -C \\\n '1: :_${cliDefinition.cliName}_commands' \\\n '*:: :->subcmds' \\\n && ret=0\n\n case $state in\n subcmds)\n case \"$words[1]\" in\n ${subcommands\n .map(subCommand => genSubCommand(subCommand))\n .filter(Boolean)\n .join(\"\\n \")}\n *)\n _arguments \\\n '*: :_files' \\\n && ret=0\n ;;\n esac\n ;;\n esac\n\n return $ret\n}\n \n_${cliDefinition.cliName}_commands() {\n local -a commands=(\n ${subcommands.map(subcommand => `\"${subcommand.name}:${subcommand.meta?.description ?? \"\"}\"`).join(\"\\n \")}\n )\n\n _describe -t subcommands 'subcommand' commands\n}\n\ncompdef _${cliDefinition.cliName}_autocomplete ${cliDefinition.cliName}\n`;\n}\n"],"mappings":"8iBAAAA,gCAAA,GAAAC,SAAAD,gCAAA,CAAAE,8BAAA,IAAAA,gCAAAC,OAAAC,QAAAC,aAAAL,iCAAA,IAAAM,wBAA0CC,QAAA,iCAYnC,SAASL,8BAA8BM,GAC5C,MAAMC,EAAcD,EAAcC,aAAe,GAY3CC,EAAiBC,IAErB,OADgBA,EAAWC,QAEpBC,OAAOC,GAAA,GAAMH,EAAWI;;cAbXC,EAeGL,GAdCK,EAAQJ,QAC5BK,OAAOC,QAAQF,EAAQJ,SAASO,IAC9B,EAAEJ,EAAMK,KAAW,OAAId,wBAAAe,2BAA0BN,MAASK,EAAME,MAAMC,aAAe,QAEvF,IAEmBC,KAAK;;;cAKP,GAZF,IAACR,GAqBtB,OAAOH,OAAOC,GAAA;;GAEbN,EAAciB;;;;YAILjB,EAAciB;;;;;;;UAOhBhB,EACCU,IAAIO,GAAchB,EAAcgB,IAChCC,OAAOC,SACPJ,KAAK;;;;;;;;;;;;;GAabhB,EAAciB;;MAEXhB,EAAYU,IAAIR,GAAc,IAAIA,EAAWI,QAAQJ,EAAWW,MAAMC,aAAe,OAAOC,KAAK;;;;;;WAM5FhB,EAAciB,wBAAwBjB,EAAciB;CAE/D","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(r,e)=>{for(var t in e)__defProp(r,t,{get:e[t],enumerable:!0})},__copyProps=(r,e,t,o)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let n of __getOwnPropNames(e))__hasOwnProp.call(r,n)||n===t||__defProp(r,n,{get:()=>e[n],enumerable:!(o=__getOwnPropDesc(e,n))||o.enumerable});return r},__toCommonJS=r=>__copyProps(__defProp({},"__esModule",{value:!0}),r),coerce_methods_exports={};__export(coerce_methods_exports,{coerce:()=>coerce}),module.exports=__toCommonJS(coerce_methods_exports);var import_string_to_array=require("./string-to-array.cjs"),import_string_to_primitive=require("./string-to-primitive.cjs"),import_string_to_set=require("./string-to-set.cjs"),string=r=>r;string.type="string";var boolean=r=>(0,import_string_to_primitive.stringToBoolean)(r);boolean.type="boolean";var number=r=>(0,import_string_to_primitive.stringToNumber)(r);number.type="number";var json=r=>{const e=e=>JSON.parse(e,r);return e.type="unknown",e},stringArray=r=>{const e=e=>(0,import_string_to_array.stringToStringArray)(e,r);return e.type="string[]",e},numberArray=r=>{const e=e=>(0,import_string_to_array.stringToNumberArray)(e,r);return e.type="number[]",e},booleanArray=r=>{const e=e=>(0,import_string_to_array.stringToBooleanArray)(e,r);return e.type="boolean[]",e},stringSet=r=>{const e=e=>(0,import_string_to_set.stringToStringSet)(e,r);return e.type="set<string>",e},numberSet=r=>{const e=e=>(0,import_string_to_set.stringToNumberSet)(e,r);return e.type="set<number>",e},booleanSet=r=>{const e=e=>(0,import_string_to_set.stringToBooleanSet)(e,r);return e.type="set<boolean>",e},coerce={string:string,boolean:boolean,number:number,stringArray:stringArray,numberArray:numberArray,booleanArray:booleanArray,stringSet:stringSet,numberSet:numberSet,booleanSet:booleanSet,json:json};
2
+ //# sourceMappingURL=coerce-methods.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["coerce_methods_exports","__export","coerce","module","exports","__toCommonJS","import_string_to_array","require","import_string_to_primitive","import_string_to_set","string","terminalInput","type","boolean","stringToBoolean","number","stringToNumber","json","reviver","coerceMethod","JSON","parse","stringArray","separator","stringToStringArray","numberArray","stringToNumberArray","booleanArray","stringToBooleanArray","stringSet","stringToStringSet","numberSet","stringToNumberSet","booleanSet","stringToBooleanSet"],"sources":["../../../src/coerce/coerce-methods.ts"],"sourcesContent":["import { stringToBooleanArray, stringToNumberArray, stringToStringArray } from \"./string-to-array.ts\";\nimport { stringToBoolean, stringToNumber } from \"./string-to-primitive.ts\";\nimport { stringToBooleanSet, stringToNumberSet, stringToStringSet } from \"./string-to-set.ts\";\n\nimport type { CoerceMethod } from \"../types/types.ts\";\n\nconst string: CoerceMethod<string> = terminalInput => terminalInput;\nstring.type = \"string\";\n\nconst boolean: CoerceMethod<boolean> = terminalInput => stringToBoolean(terminalInput);\nboolean.type = \"boolean\";\n\nconst number: CoerceMethod<number> = terminalInput => stringToNumber(terminalInput);\nnumber.type = \"number\";\n\nconst json = <T>(reviver?: (this: any, key: string, value: any) => any): CoerceMethod<T> => {\n const coerceMethod: CoerceMethod<T> = terminalInput => JSON.parse(terminalInput, reviver) as T;\n coerceMethod.type = \"unknown\";\n return coerceMethod;\n};\n\nconst stringArray = (separator: string): CoerceMethod<string[]> => {\n const coerceMethod: CoerceMethod<string[]> = terminalInput => stringToStringArray(terminalInput, separator);\n coerceMethod.type = \"string[]\";\n return coerceMethod;\n};\n\nconst numberArray = (separator: string) => {\n const coerceMethod: CoerceMethod<number[]> = terminalInput => stringToNumberArray(terminalInput, separator);\n coerceMethod.type = \"number[]\";\n return coerceMethod;\n};\n\nconst booleanArray = (separator: string) => {\n const coerceMethod: CoerceMethod<boolean[]> = terminalInput => stringToBooleanArray(terminalInput, separator);\n coerceMethod.type = \"boolean[]\";\n return coerceMethod;\n};\n\nconst stringSet = (separator: string) => {\n const coerceMethod: CoerceMethod<Set<string>> = terminalInput => stringToStringSet(terminalInput, separator);\n coerceMethod.type = \"set<string>\";\n return coerceMethod;\n};\n\nconst numberSet = (separator: string) => {\n const coerceMethod: CoerceMethod<Set<number>> = terminalInput => stringToNumberSet(terminalInput, separator);\n coerceMethod.type = \"set<number>\";\n return coerceMethod;\n};\n\nconst booleanSet = (separator: string) => {\n const coerceMethod: CoerceMethod<Set<boolean>> = terminalInput => stringToBooleanSet(terminalInput, separator);\n coerceMethod.type = \"set<boolean>\";\n return coerceMethod;\n};\n\nexport const coerce = {\n string,\n boolean,\n number,\n /** @param separator - The separator to use to split the string. **Default** is `\",\"` */\n stringArray,\n /** @param separator - The separator to use to split the string. **Default** is `\",\"` */\n numberArray,\n /** @param separator - The separator to use to split the string. **Default** is `\",\"` */\n booleanArray,\n /** @param separator - The separator to use to split the string. **Default** is `\",\"` */\n stringSet,\n /** @param separator - The separator to use to split the string. **Default** is `\",\"` */\n numberSet,\n /** @param separator - The separator to use to split the string. **Default** is `\",\"` */\n booleanSet,\n json,\n};\n"],"mappings":"8iBAAAA,uBAAA,GAAAC,SAAAD,uBAAA,CAAAE,OAAA,IAAAA,SAAAC,OAAAC,QAAAC,aAAAL,wBAAA,IAAAM,uBAA+EC,QAAA,yBAC/EC,2BAAgDD,QAAA,6BAChDE,qBAAyEF,QAAA,uBAInEG,OAA+BC,GAAiBA,EACtDD,OAAOE,KAAO,SAEd,IAAMC,QAAiCF,IAAA,EAAiBH,2BAAAM,iBAAgBH,GACxEE,QAAQD,KAAO,UAEf,IAAMG,OAA+BJ,IAAA,EAAiBH,2BAAAQ,gBAAeL,GACrEI,OAAOH,KAAO,SAEd,IAAMK,KAAWC,IACf,MAAMC,EAAgCR,GAAiBS,KAAKC,MAAMV,EAAeO,GAEjF,OADAC,EAAaP,KAAO,UACbO,GAGHG,YAAeC,IACnB,MAAMJ,EAAuCR,IAAA,EAAiBL,uBAAAkB,qBAAoBb,EAAeY,GAEjG,OADAJ,EAAaP,KAAO,WACbO,GAGHM,YAAeF,IACnB,MAAMJ,EAAuCR,IAAA,EAAiBL,uBAAAoB,qBAAoBf,EAAeY,GAEjG,OADAJ,EAAaP,KAAO,WACbO,GAGHQ,aAAgBJ,IACpB,MAAMJ,EAAwCR,IAAA,EAAiBL,uBAAAsB,sBAAqBjB,EAAeY,GAEnG,OADAJ,EAAaP,KAAO,YACbO,GAGHU,UAAaN,IACjB,MAAMJ,EAA0CR,IAAA,EAAiBF,qBAAAqB,mBAAkBnB,EAAeY,GAElG,OADAJ,EAAaP,KAAO,cACbO,GAGHY,UAAaR,IACjB,MAAMJ,EAA0CR,IAAA,EAAiBF,qBAAAuB,mBAAkBrB,EAAeY,GAElG,OADAJ,EAAaP,KAAO,cACbO,GAGHc,WAAcV,IAClB,MAAMJ,EAA2CR,IAAA,EAAiBF,qBAAAyB,oBAAmBvB,EAAeY,GAEpG,OADAJ,EAAaP,KAAO,eACbO,GAGIjB,OAAS,CACpBQ,cACAG,gBACAE,cAEAO,wBAEAG,wBAEAE,0BAEAE,oBAEAE,oBAEAE,sBACAhB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(r,t)=>{for(var o in t)__defProp(r,o,{get:t[o],enumerable:!0})},__copyProps=(r,t,o,e)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(r,n)||n===o||__defProp(r,n,{get:()=>t[n],enumerable:!(e=__getOwnPropDesc(t,n))||e.enumerable});return r},__toCommonJS=r=>__copyProps(__defProp({},"__esModule",{value:!0}),r),string_to_array_exports={};__export(string_to_array_exports,{stringToBooleanArray:()=>stringToBooleanArray,stringToNumberArray:()=>stringToNumberArray,stringToStringArray:()=>stringToStringArray}),module.exports=__toCommonJS(string_to_array_exports);var import_string_to_primitive=require("./string-to-primitive.cjs");function stringToStringArray(r,t=","){return r.split(t).map(r=>r.trim()).filter(Boolean)}function stringToNumberArray(r,t=","){return stringToStringArray(r,t).map(r=>(0,import_string_to_primitive.stringToNumber)(r))}function stringToBooleanArray(r,t=","){return stringToStringArray(r,t).map(r=>(0,import_string_to_primitive.stringToBoolean)(r))}
2
+ //# sourceMappingURL=string-to-array.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["string_to_array_exports","__export","stringToBooleanArray","stringToNumberArray","stringToStringArray","module","exports","__toCommonJS","import_string_to_primitive","require","stringValue","separator","split","map","s","trim","filter","Boolean","element","stringToNumber","stringToBoolean"],"sources":["../../../src/coerce/string-to-array.ts"],"sourcesContent":["import { stringToBoolean, stringToNumber } from \"./string-to-primitive.ts\";\n\nexport function stringToStringArray(stringValue: string, separator: string = \",\"): string[] {\n return stringValue\n .split(separator)\n .map(s => s.trim())\n .filter(Boolean);\n}\n\n/** @throws {TypeError} - Because of `stringToNumber` */\nexport function stringToNumberArray(stringValue: string, separator: string = \",\"): number[] {\n return stringToStringArray(stringValue, separator).map(element => stringToNumber(element));\n}\n\n/** @throws {TypeError} - Because of `stringToBoolean` */\nexport function stringToBooleanArray(stringValue: string, separator: string = \",\"): boolean[] {\n return stringToStringArray(stringValue, separator).map(element => stringToBoolean(element));\n}\n"],"mappings":"8iBAAAA,wBAAA,GAAAC,SAAAD,wBAAA,CAAAE,qBAAA,IAAAA,qBAAAC,oBAAA,IAAAA,oBAAAC,oBAAA,IAAAA,sBAAAC,OAAAC,QAAAC,aAAAP,yBAAA,IAAAQ,2BAAgDC,QAAA,6BAEzC,SAASL,oBAAoBM,EAAqBC,EAAoB,KAC3E,OAAOD,EACJE,MAAMD,GACNE,IAAIC,GAAKA,EAAEC,QACXC,OAAOC,QACZ,CAGO,SAASd,oBAAoBO,EAAqBC,EAAoB,KAC3E,OAAOP,oBAAoBM,EAAaC,GAAWE,IAAIK,IAAA,EAAWV,2BAAAW,gBAAeD,GACnF,CAGO,SAAShB,qBAAqBQ,EAAqBC,EAAoB,KAC5E,OAAOP,oBAAoBM,EAAaC,GAAWE,IAAIK,IAAA,EAAWV,2BAAAY,iBAAgBF,GACpF","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,r)=>{for(var o in r)__defProp(e,o,{get:r[o],enumerable:!0})},__copyProps=(e,r,o,t)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let n of __getOwnPropNames(r))__hasOwnProp.call(e,n)||n===o||__defProp(e,n,{get:()=>r[n],enumerable:!(t=__getOwnPropDesc(r,n))||t.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),string_to_primitive_exports={};function stringToBoolean(e){if("true"===e.toLowerCase())return!0;if("false"===e.toLowerCase())return!1;throw new TypeError(`Invalid boolean value: ${e}`)}function stringToNumber(e){const r=e.trim();if(""===r||"+"===r||"-"===r)throw new TypeError(`Invalid number: "${e}"`);const o=Number(r);if(!Number.isFinite(o))throw new TypeError(`Invalid number: "${e}"`);return o}__export(string_to_primitive_exports,{stringToBoolean:()=>stringToBoolean,stringToNumber:()=>stringToNumber}),module.exports=__toCommonJS(string_to_primitive_exports);
2
+ //# sourceMappingURL=string-to-primitive.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["string_to_primitive_exports","stringToBoolean","string","toLowerCase","TypeError","stringToNumber","trimmed","trim","result","Number","isFinite","__export","module","exports","__toCommonJS"],"sources":["../../../src/coerce/string-to-primitive.ts"],"sourcesContent":["/** @throws {TypeError} */\nexport function stringToBoolean(string: string): boolean {\n if (string.toLowerCase() === \"true\") {\n return true;\n }\n\n if (string.toLowerCase() === \"false\") {\n return false;\n }\n\n throw new TypeError(`Invalid boolean value: ${string}`);\n}\n\n/** @throws {TypeError} */\nexport function stringToNumber(string: string): number {\n const trimmed = string.trim();\n\n // Reject empty, whitespace-only, or signs without digits\n if (trimmed === \"\" || trimmed === \"+\" || trimmed === \"-\") {\n throw new TypeError(`Invalid number: \"${string}\"`);\n }\n\n const result = Number(trimmed);\n\n // Reject NaN, Infinity, and -Infinity\n if (!Number.isFinite(result)) {\n throw new TypeError(`Invalid number: \"${string}\"`);\n }\n\n return result;\n}\n"],"mappings":"8iBAAAA,4BAAA,GACO,SAASC,gBAAgBC,GAC9B,GAA6B,SAAzBA,EAAOC,cACT,OAAO,EAGT,GAA6B,UAAzBD,EAAOC,cACT,OAAO,EAGT,MAAM,IAAIC,UAAU,0BAA0BF,IAChD,CAGO,SAASG,eAAeH,GAC7B,MAAMI,EAAUJ,EAAOK,OAGvB,GAAgB,KAAZD,GAA8B,MAAZA,GAA+B,MAAZA,EACvC,MAAM,IAAIF,UAAU,oBAAoBF,MAG1C,MAAMM,EAASC,OAAOH,GAGtB,IAAKG,OAAOC,SAASF,GACnB,MAAM,IAAIJ,UAAU,oBAAoBF,MAG1C,OAAOM,CACT,CA9BAG,SAAAX,4BAAA,CAAAC,gBAAA,IAAAA,gBAAAI,eAAA,IAAAA,iBAAAO,OAAAC,QAAAC,aAAAd","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(r,t)=>{for(var e in t)__defProp(r,e,{get:t[e],enumerable:!0})},__copyProps=(r,t,e,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(r,n)||n===e||__defProp(r,n,{get:()=>t[n],enumerable:!(o=__getOwnPropDesc(t,n))||o.enumerable});return r},__toCommonJS=r=>__copyProps(__defProp({},"__esModule",{value:!0}),r),string_to_set_exports={};__export(string_to_set_exports,{stringToBooleanSet:()=>stringToBooleanSet,stringToNumberSet:()=>stringToNumberSet,stringToStringSet:()=>stringToStringSet}),module.exports=__toCommonJS(string_to_set_exports);var import_string_to_array=require("./string-to-array.cjs");function stringToStringSet(r,t=","){return new Set((0,import_string_to_array.stringToStringArray)(r,t))}function stringToNumberSet(r,t=","){return new Set((0,import_string_to_array.stringToNumberArray)(r,t))}function stringToBooleanSet(r,t=","){return new Set((0,import_string_to_array.stringToBooleanArray)(r,t))}
2
+ //# sourceMappingURL=string-to-set.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["string_to_set_exports","__export","stringToBooleanSet","stringToNumberSet","stringToStringSet","module","exports","__toCommonJS","import_string_to_array","require","stringValue","separator","Set","stringToStringArray","stringToNumberArray","stringToBooleanArray"],"sources":["../../../src/coerce/string-to-set.ts"],"sourcesContent":["import { stringToBooleanArray, stringToNumberArray, stringToStringArray } from \"./string-to-array.ts\";\n\nexport function stringToStringSet(stringValue: string, separator: string = \",\"): Set<string> {\n return new Set(stringToStringArray(stringValue, separator));\n}\n\n/** @throws {TypeError} - Because of `stringToNumber` */\nexport function stringToNumberSet(stringValue: string, separator: string = \",\"): Set<number> {\n return new Set(stringToNumberArray(stringValue, separator));\n}\n\n/** @throws {TypeError} - Because of `stringToBoolean` */\nexport function stringToBooleanSet(stringValue: string, separator: string = \",\"): Set<boolean> {\n return new Set(stringToBooleanArray(stringValue, separator));\n}\n"],"mappings":"8iBAAAA,sBAAA,GAAAC,SAAAD,sBAAA,CAAAE,mBAAA,IAAAA,mBAAAC,kBAAA,IAAAA,kBAAAC,kBAAA,IAAAA,oBAAAC,OAAAC,QAAAC,aAAAP,uBAAA,IAAAQ,uBAA+EC,QAAA,yBAExE,SAASL,kBAAkBM,EAAqBC,EAAoB,KACzE,OAAO,IAAIC,KAAA,EAAIJ,uBAAAK,qBAAoBH,EAAaC,GAClD,CAGO,SAASR,kBAAkBO,EAAqBC,EAAoB,KACzE,OAAO,IAAIC,KAAA,EAAIJ,uBAAAM,qBAAoBJ,EAAaC,GAClD,CAGO,SAAST,mBAAmBQ,EAAqBC,EAAoB,KAC1E,OAAO,IAAIC,KAAA,EAAIJ,uBAAAO,sBAAqBL,EAAaC,GACnD","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,r)=>{for(var t in r)__defProp(e,t,{get:r[t],enumerable:!0})},__copyProps=(e,r,t,o)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let _ of __getOwnPropNames(r))__hasOwnProp.call(e,_)||_===t||__defProp(e,_,{get:()=>r[_],enumerable:!(o=__getOwnPropDesc(r,_))||o.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),define_arguments_exports={};__export(define_arguments_exports,{defineArguments:()=>defineArguments}),module.exports=__toCommonJS(define_arguments_exports);var import_utilities=require("../utilities.cjs");function defineArguments(e){return(0,import_utilities.prepareDefinitionTypes)(e),e}
2
+ //# sourceMappingURL=define-arguments.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["define_arguments_exports","__export","defineArguments","module","exports","__toCommonJS","import_utilities","require","arguments_","prepareDefinitionTypes"],"sources":["../../../src/definitions/define-arguments.ts"],"sourcesContent":["import { prepareDefinitionTypes } from \"../utilities.ts\";\n\nimport type { Argument } from \"../types/definitions-types.ts\";\n\nexport function defineArguments<const T extends Record<string, Argument>>(arguments_: {\n [K in keyof T]: T[K] & Argument<T[K][\"schema\"]>;\n}): { [K in keyof T]: Argument<T[K][\"schema\"]> } {\n prepareDefinitionTypes(arguments_);\n return arguments_;\n}\n"],"mappings":"8iBAAAA,yBAAA,GAAAC,SAAAD,yBAAA,CAAAE,gBAAA,IAAAA,kBAAAC,OAAAC,QAAAC,aAAAL,0BAAA,IAAAM,iBAAuCC,QAAA,oBAIhC,SAASL,gBAA0DM,GAIxE,OADA,EAAAF,iBAAAG,wBAAuBD,GAChBA,CACT","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var o in t)__defProp(e,o,{get:t[o],enumerable:!0})},__copyProps=(e,t,o,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===o||__defProp(e,n,{get:()=>t[n],enumerable:!(r=__getOwnPropDesc(t,n))||r.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),define_cli_exports={};__export(define_cli_exports,{defineCLI:()=>defineCLI}),module.exports=__toCommonJS(define_cli_exports);var import_generate_for_cli=require("../help-message/generate-for-cli.cjs"),import_generate_for_subcommand=require("../help-message/generate-for-subcommand.cjs"),import_object_context_builder=require("../parse/context/object-context-builder.cjs"),import_safe_parse=require("../parse/safe-parse.cjs"),import_validate_context=require("../parse/validation/validate-context.cjs"),import_utilities=require("../utilities.cjs");function defineCLI(e){const t=e;if((0,import_utilities.prepareDefinitionTypes)(t.options),(0,import_utilities.prepareDefinitionTypes)(t.arguments),t.subcommands)for(const e of Object.values(t.subcommands))(0,import_utilities.prepareDefinitionTypes)(e.options),(0,import_utilities.prepareDefinitionTypes)(e.arguments);const o={generateCliHelpMessage:e=>(0,import_generate_for_cli.generateCliHelpMessage)(t,e),generateSubcommandHelpMessage(e,o){const r=t.subcommands?.find(t=>t.name===e);if(!r)throw new Error(`Subcommand ${e} not found`);return(0,import_generate_for_subcommand.generateSubcommandHelpMessage)(r,o,t.cliName)}};if(Object.assign(t,o),t.subcommands)for(const e of t.subcommands)Object.assign(e,o);return Object.assign(t,{execute:e=>{if(e??(e={}),!t._onExecute)throw new Error("Action is not defined");const o=(0,import_object_context_builder.buildObjectContext)(e,t),r=(0,import_validate_context.validate)(o,t);if(t._onExecute)for(const e of t._onExecute)e(r)},onExecute:e=>(t._onExecute??(t._onExecute=[]),t._onExecute.push(e),()=>{const o=t._onExecute?.indexOf(e);!o||o<0||t._onExecute?.splice(o,1)}),run:e=>(0,import_safe_parse.safeParse)(e,t),runAsync:e=>(0,import_safe_parse.safeParseAsync)(e,t)})}
2
+ //# sourceMappingURL=define-cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["define_cli_exports","__export","defineCLI","module","exports","__toCommonJS","import_generate_for_cli","require","import_generate_for_subcommand","import_object_context_builder","import_safe_parse","import_validate_context","import_utilities","input","cliSchema","prepareDefinitionTypes","options","arguments","subcommands","subcommand","Object","values","generateHelpMethods","generateCliHelpMessage","generateSubcommandHelpMessage","subcommandName","foundSubcommand","find","s","name","Error","cliName","assign","subcommandSchema","execute","inputValues","_onExecute","context","buildObjectContext","validateResult","validate","handler","onExecute","push","handlerIndex","indexOf","splice","run","stringOrArgv","safeParse","runAsync","safeParseAsync"],"sources":["../../../src/definitions/define-cli.ts"],"sourcesContent":["import { generateCliHelpMessage } from \"../help-message/generate-for-cli.ts\";\nimport { generateSubcommandHelpMessage } from \"../help-message/generate-for-subcommand.ts\";\nimport { buildObjectContext } from \"../parse/context/object-context-builder.ts\";\nimport { safeParse, safeParseAsync } from \"../parse/safe-parse.ts\";\nimport { validate } from \"../parse/validation/validate-context.ts\";\nimport { prepareDefinitionTypes } from \"../utilities.ts\";\n\nimport type { Argument, Cli, Option, Subcommand } from \"../types/definitions-types.ts\";\nimport type { PrintHelpOptions } from \"../types/help-message-types.ts\";\nimport type { AttachedMethods, AttachedMethodsWide, ValidateMethods } from \"../types/types.ts\";\nimport type { Prettify } from \"../types/utilities-types.ts\";\n\ntype OptionsInput<T> =\n T extends Record<string, Option> ? { [OptionName in keyof T]: Option<T[OptionName][\"schema\"]> } : T;\n\ntype ArgumentsInput<T> =\n T extends Record<string, Argument> ? { [ArgumentName in keyof T]: Argument<T[ArgumentName][\"schema\"]> } : T;\n\ntype SubcommandsInput<T extends readonly [Subcommand, ...Subcommand[]]> = {\n [SubcommandIndex in keyof T]: {\n [K in keyof T[SubcommandIndex]]: T[SubcommandIndex][K] extends Record<string, Option>\n ? OptionsInput<T[SubcommandIndex][K]>\n : T[SubcommandIndex][K] extends Record<string, Argument>\n ? ArgumentsInput<T[SubcommandIndex][K]>\n : T[SubcommandIndex][K];\n } & Subcommand;\n};\n\n// This will prevent extra keys and enable jsdoc on hover\ntype CliInput<T extends Cli> = {\n [K in keyof T]: K extends keyof Cli\n ? T[K] extends readonly [Subcommand, ...Subcommand[]]\n ? SubcommandsInput<T[K]>\n : K extends \"options\"\n ? OptionsInput<T[K]>\n : K extends \"arguments\"\n ? ArgumentsInput<T[K]>\n : T[K]\n : never;\n};\n\nexport function defineCLI<T extends Cli>(input: CliInput<T> & Cli) {\n const cliSchema = input as Prettify<T & AttachedMethods<T> & ValidateMethods<T>>;\n\n prepareDefinitionTypes(cliSchema.options);\n prepareDefinitionTypes(cliSchema.arguments);\n\n if (cliSchema.subcommands) {\n for (const subcommand of Object.values(cliSchema.subcommands)) {\n prepareDefinitionTypes(subcommand.options);\n prepareDefinitionTypes(subcommand.arguments);\n }\n }\n\n const onExecute = (handler: (Cli[\"_onExecute\"] & {})[number]) => {\n cliSchema._onExecute ??= [];\n cliSchema._onExecute.push(handler);\n\n return () => {\n const handlerIndex = cliSchema._onExecute?.indexOf(handler);\n if (!handlerIndex || handlerIndex < 0) return;\n cliSchema._onExecute?.splice(handlerIndex, 1);\n };\n };\n\n const execute: AttachedMethodsWide[\"execute\"] = inputValues => {\n inputValues ??= {};\n if (!cliSchema._onExecute) throw new Error(\"Action is not defined\");\n const context = buildObjectContext(inputValues, cliSchema);\n const validateResult = validate(context, cliSchema);\n\n if (cliSchema._onExecute) {\n for (const handler of cliSchema._onExecute) {\n handler(validateResult);\n }\n }\n };\n\n // Add print methods for CLI schema and its subcommands\n const generateHelpMethods: Pick<AttachedMethodsWide, \"generateCliHelpMessage\" | \"generateSubcommandHelpMessage\"> = {\n generateCliHelpMessage(options?: PrintHelpOptions) {\n return generateCliHelpMessage(cliSchema, options);\n },\n generateSubcommandHelpMessage(subcommandName: string, options?: PrintHelpOptions) {\n const foundSubcommand = cliSchema.subcommands?.find(s => s.name === subcommandName);\n if (!foundSubcommand) throw new Error(`Subcommand ${subcommandName} not found`);\n return generateSubcommandHelpMessage(foundSubcommand, options, cliSchema.cliName);\n },\n };\n\n Object.assign(cliSchema, generateHelpMethods);\n\n if (cliSchema.subcommands) {\n for (const subcommandSchema of cliSchema.subcommands) {\n Object.assign(subcommandSchema, generateHelpMethods);\n }\n }\n\n return Object.assign(cliSchema, {\n execute,\n onExecute,\n run: (stringOrArgv: string | string[]) => safeParse(stringOrArgv, cliSchema),\n runAsync: (stringOrArgv: string | string[]) => safeParseAsync(stringOrArgv, cliSchema),\n });\n}\n"],"mappings":"8iBAAAA,mBAAA,GAAAC,SAAAD,mBAAA,CAAAE,UAAA,IAAAA,YAAAC,OAAAC,QAAAC,aAAAL,oBAAA,IAAAM,wBAAuCC,QAAA,wCACvCC,+BAA8CD,QAAA,+CAC9CE,8BAAmCF,QAAA,+CACnCG,kBAA0CH,QAAA,2BAC1CI,wBAAyBJ,QAAA,4CACzBK,iBAAuCL,QAAA,oBAoChC,SAASL,UAAyBW,GACvC,MAAMC,EAAYD,EAKlB,IAHA,EAAAD,iBAAAG,wBAAuBD,EAAUE,UACjC,EAAAJ,iBAAAG,wBAAuBD,EAAUG,WAE7BH,EAAUI,YACZ,UAAWC,KAAcC,OAAOC,OAAOP,EAAUI,cAC/C,EAAAN,iBAAAG,wBAAuBI,EAAWH,UAClC,EAAAJ,iBAAAG,wBAAuBI,EAAWF,WAItC,MAyBMK,EAA6G,CACjHC,uBAAuBP,IACrB,EAAOV,wBAAAiB,wBAAuBT,EAAWE,GAE3C,6BAAAQ,CAA8BC,EAAwBT,GACpD,MAAMU,EAAkBZ,EAAUI,aAAaS,KAAKC,GAAKA,EAAEC,OAASJ,GACpE,IAAKC,EAAiB,MAAM,IAAII,MAAM,cAAcL,eACpD,SAAOjB,+BAAAgB,+BAA8BE,EAAiBV,EAASF,EAAUiB,QAC3E,GAKF,GAFAX,OAAOY,OAAOlB,EAAWQ,GAErBR,EAAUI,YACZ,UAAWe,KAAoBnB,EAAUI,YACvCE,OAAOY,OAAOC,EAAkBX,GAIpC,OAAOF,OAAOY,OAAOlB,EAAW,CAC9BoB,QAlC8CC,IAE9C,GADAA,MAAgB,CAAC,IACZrB,EAAUsB,WAAY,MAAM,IAAIN,MAAM,yBAC3C,MAAMO,GAAA,EAAU5B,8BAAA6B,oBAAmBH,EAAarB,GAC1CyB,GAAA,EAAiB5B,wBAAA6B,UAASH,EAASvB,GAEzC,GAAIA,EAAUsB,WACZ,UAAWK,KAAW3B,EAAUsB,WAC9BK,EAAQF,IA2BZG,UA9CiBD,IACjB3B,EAAUsB,aAAVtB,EAAUsB,WAAe,IACzBtB,EAAUsB,WAAWO,KAAKF,GAEnB,KACL,MAAMG,EAAe9B,EAAUsB,YAAYS,QAAQJ,IAC9CG,GAAgBA,EAAe,GACpC9B,EAAUsB,YAAYU,OAAOF,EAAc,KAwC7CG,IAAMC,IAAA,EAAoCtC,kBAAAuC,WAAUD,EAAclC,GAClEoC,SAAWF,IAAA,EAAoCtC,kBAAAyC,gBAAeH,EAAclC,IAEhF","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,o)=>{for(var t in o)__defProp(e,t,{get:o[t],enumerable:!0})},__copyProps=(e,o,t,r)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let _ of __getOwnPropNames(o))__hasOwnProp.call(e,_)||_===t||__defProp(e,_,{get:()=>o[_],enumerable:!(r=__getOwnPropDesc(o,_))||r.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),define_options_exports={};__export(define_options_exports,{defineOptions:()=>defineOptions}),module.exports=__toCommonJS(define_options_exports);var import_utilities=require("../utilities.cjs");function defineOptions(e){return(0,import_utilities.prepareDefinitionTypes)(e),e}
2
+ //# sourceMappingURL=define-options.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["define_options_exports","__export","defineOptions","module","exports","__toCommonJS","import_utilities","require","options","prepareDefinitionTypes"],"sources":["../../../src/definitions/define-options.ts"],"sourcesContent":["import { prepareDefinitionTypes } from \"../utilities.ts\";\n\nimport type { Option } from \"../types/definitions-types.ts\";\n\nexport function defineOptions<T extends Record<string, Option>>(options: {\n [K in keyof T]: T[K] & Option<T[K][\"schema\"]>;\n}): {\n [K in keyof T]: Option<T[K][\"schema\"]>;\n} {\n prepareDefinitionTypes(options);\n return options;\n}\n"],"mappings":"8iBAAAA,uBAAA,GAAAC,SAAAD,uBAAA,CAAAE,cAAA,IAAAA,gBAAAC,OAAAC,QAAAC,aAAAL,wBAAA,IAAAM,iBAAuCC,QAAA,oBAIhC,SAASL,cAAgDM,GAM9D,OADA,EAAAF,iBAAAG,wBAAuBD,GAChBA,CACT","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var o in t)__defProp(e,o,{get:t[o],enumerable:!0})},__copyProps=(e,t,o,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===o||__defProp(e,n,{get:()=>t[n],enumerable:!(r=__getOwnPropDesc(t,n))||r.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),define_subcommand_exports={};__export(define_subcommand_exports,{defineSubcommand:()=>defineSubcommand}),module.exports=__toCommonJS(define_subcommand_exports);var import_object_context_builder=require("../parse/context/object-context-builder.cjs"),import_validate_context=require("../parse/validation/validate-context.cjs"),import_utilities=require("../utilities.cjs");function defineSubcommand(e){const t=e;(0,import_utilities.prepareDefinitionTypes)(t.options),(0,import_utilities.prepareDefinitionTypes)(t.arguments);return Object.assign(t,{onExecute:e=>(t._onExecute??(t._onExecute=[]),t._onExecute.push(e),()=>{const o=t._onExecute?.indexOf(e);!o||o<0||t._onExecute?.splice(o,1)}),execute:e=>{if(e??(e={}),!t._onExecute)throw new Error("Action is not defined");const o=(0,import_object_context_builder.buildObjectContext)(e,t),r=(0,import_validate_context.validate)(o,t);if(t._onExecute)for(const e of t._onExecute)e(r)}})}
2
+ //# sourceMappingURL=define-subcommand.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["define_subcommand_exports","__export","defineSubcommand","module","exports","__toCommonJS","import_object_context_builder","require","import_validate_context","import_utilities","input","subcommandSchema","prepareDefinitionTypes","options","arguments","Object","assign","onExecute","handler","_onExecute","push","handlerIndex","indexOf","splice","execute","inputValues","Error","context","buildObjectContext","validateResult","validate"],"sources":["../../../src/definitions/define-subcommand.ts"],"sourcesContent":["import { buildObjectContext } from \"../parse/context/object-context-builder.ts\";\nimport { validate } from \"../parse/validation/validate-context.ts\";\nimport { prepareDefinitionTypes } from \"../utilities.ts\";\n\nimport type { Argument, Option, Subcommand } from \"../types/definitions-types.ts\";\nimport type { AttachedMethods, AttachedMethodsWide } from \"../types/types.ts\";\nimport type { Prettify } from \"../types/utilities-types.ts\";\n\ntype OptionsInput<T> =\n T extends Record<string, Option> ? { [OptionName in keyof T]: Option<T[OptionName][\"schema\"]> } : T;\n\ntype ArgumentsInput<T> =\n T extends Record<string, Argument> ? { [ArgumentName in keyof T]: Argument<T[ArgumentName][\"schema\"]> } : T;\n\n// This will prevent extra keys and enable jsdoc on hover\ntype SubcommandInput<T extends Subcommand> = {\n [K in keyof T]: K extends keyof Subcommand\n ? K extends \"options\"\n ? OptionsInput<T[K]>\n : K extends \"arguments\"\n ? ArgumentsInput<T[K]>\n : T[K]\n : never;\n};\n\nexport function defineSubcommand<T extends Subcommand>(input: SubcommandInput<T> & Subcommand) {\n const subcommandSchema = input as Prettify<T & AttachedMethods<T>>;\n\n prepareDefinitionTypes(subcommandSchema.options);\n prepareDefinitionTypes(subcommandSchema.arguments);\n\n const onExecute = (handler: (Subcommand[\"_onExecute\"] & {})[number]) => {\n subcommandSchema._onExecute ??= [];\n subcommandSchema._onExecute.push(handler);\n\n return () => {\n const handlerIndex = subcommandSchema._onExecute?.indexOf(handler);\n if (!handlerIndex || handlerIndex < 0) return;\n subcommandSchema._onExecute?.splice(handlerIndex, 1);\n };\n };\n\n const execute: AttachedMethodsWide[\"execute\"] = inputValues => {\n inputValues ??= {};\n if (!subcommandSchema._onExecute) throw new Error(\"Action is not defined\");\n const context = buildObjectContext(inputValues, subcommandSchema);\n const validateResult = validate(context, subcommandSchema);\n\n if (subcommandSchema._onExecute) {\n for (const handler of subcommandSchema._onExecute) {\n handler(validateResult);\n }\n }\n };\n\n return Object.assign(subcommandSchema, { onExecute, execute });\n}\n"],"mappings":"8iBAAAA,0BAAA,GAAAC,SAAAD,0BAAA,CAAAE,iBAAA,IAAAA,mBAAAC,OAAAC,QAAAC,aAAAL,2BAAA,IAAAM,8BAAmCC,QAAA,+CACnCC,wBAAyBD,QAAA,4CACzBE,iBAAuCF,QAAA,oBAuBhC,SAASL,iBAAuCQ,GACrD,MAAMC,EAAmBD,GAEzB,EAAAD,iBAAAG,wBAAuBD,EAAiBE,UACxC,EAAAJ,iBAAAG,wBAAuBD,EAAiBG,WA0BxC,OAAOC,OAAOC,OAAOL,EAAkB,CAAEM,UAxBtBC,IACjBP,EAAiBQ,aAAjBR,EAAiBQ,WAAe,IAChCR,EAAiBQ,WAAWC,KAAKF,GAE1B,KACL,MAAMG,EAAeV,EAAiBQ,YAAYG,QAAQJ,IACrDG,GAAgBA,EAAe,GACpCV,EAAiBQ,YAAYI,OAAOF,EAAc,KAiBFG,QAbJC,IAE9C,GADAA,MAAgB,CAAC,IACZd,EAAiBQ,WAAY,MAAM,IAAIO,MAAM,yBAClD,MAAMC,GAAA,EAAUrB,8BAAAsB,oBAAmBH,EAAad,GAC1CkB,GAAA,EAAiBrB,wBAAAsB,UAASH,EAAShB,GAEzC,GAAIA,EAAiBQ,WACnB,UAAWD,KAAWP,EAAiBQ,WACrCD,EAAQW,KAMhB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(t,i)=>{for(var e in i)__defProp(t,e,{get:i[e],enumerable:!0})},__copyProps=(t,i,e,n)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let o of __getOwnPropNames(i))__hasOwnProp.call(t,o)||o===e||__defProp(t,o,{get:()=>i[o],enumerable:!(n=__getOwnPropDesc(i,o))||n.enumerable});return t},__toCommonJS=t=>__copyProps(__defProp({},"__esModule",{value:!0}),t),validate_cli_definition_exports={};__export(validate_cli_definition_exports,{validateCliDefinition:()=>validateCliDefinition}),module.exports=__toCommonJS(validate_cli_definition_exports);var import_parser_utilities=require("../parse/parser-utilities.cjs"),import_utilities=require("../utilities.cjs");function validateCliDefinition(t){if(!t.cliName)throw new Error('invalid cli definition: "cliName" property is required.');validateOptions(t),validateArguments(t);const i=t.subcommands;if(!i)return;if(0===i.length)throw new Error(`invalid cli definition "${t.cliName}": "subcommands" property is optional but cannot be empty.`);const e=i.map(t=>t.name);if(e.some(t=>!t))throw new Error('invalid subcommand definition: subcommand\'s "name" property is required.');const n=(0,import_utilities.findDuplicateStrings)(e).map(t=>`"${t}"`);if(n.length>0)throw new Error(`invalid cli definition "${t.cliName}" has duplicated subcommands: ${n.join(", ")}.`);for(const t of i){if(t.aliases){const n=(0,import_utilities.findDuplicateStrings)(t.aliases).map(t=>`"${t}"`);if(n.length>0)throw new Error(`subcommand "${t.name}" has duplicated aliases: ${n.join(", ")}.`);for(const n of t.aliases){if(""===n)throw new Error(`subcommand "${t.name}" has an empty string alias.`);if(e.includes(n))throw new Error(`subcommand "${t.name}" alias "${n}" conflicts with another subcommand name.`);const o=i.filter(i=>i.name!==t.name&&i.aliases?.includes(n));if(o.length>0)throw new Error(`subcommand "${t.name}" alias "${n}" conflicts with another subcommand alias: "${o[0].name}".`)}}validateOptions(t),validateArguments(t)}}function validateOptions(t){if(!t.options)return;const i="cliName"in t,e=i?t.cliName:t.name,n=t=>new Error(`invalid ${i?"cli":"subcommand"} definition "${e}": ${t}`),o=Object.entries(t.options);if(0===o.length)throw n('"options" property is optional but cannot be empty.');for(const[i,e]of o){if(!e.schema)throw n(`the option "${i}" missing a required property: "schema".`);if(!e._preparedType)throw n(`internal error: missing prepared type for option "${i}".`);if(isNegatedOptionName(i))throw n(`the option "${i}" is a negated option name.`);if(t.arguments&&i in t.arguments)throw n(`the option "${i}" name conflicts with an argument name.`);if(e.aliases){const r=(0,import_utilities.findDuplicateStrings)(e.aliases);if(r.length>0)throw n(`the option "${i}" has duplicated aliases: ${r.join(", ")}.`);for(const r of e.aliases){if(""===r)throw n(`the option "${i}" has an empty string alias.`);if(isNegatedOptionName(r))throw n(`the alias "${r}" of the option "${i}" is a negated option name.`);if(t.options[r])throw n(`the alias "${r}" of the option "${i}" conflicts with another option name.`);if(t.arguments&&r in t.arguments)throw n(`the alias "${r}" of the option "${i}" conflicts with an argument name.`);const e=o.find(([t,e])=>t!==i&&e.aliases?.includes(r));if(e)throw n(`the alias "${r}" of the option "${i}" conflicts with another alias name of the option "${e[0]}".`)}}if(e.requires){if(e.requires.includes(i))throw n(`the option "${i}" cannot require itself.`);const o=(0,import_utilities.findDuplicateStrings)(e.requires).map(t=>`"${t}"`);if(o.length>0)throw n(`the option "${i}" has duplicate requires: ${o.join(", ")}.`);for(const o of e.requires){if(!(o in t.options||o in(t.arguments??[])))throw n(`the option "${i}" requires "${o}", but it does not exist.`)}}if(e.conflictWith){if(e.conflictWith.includes(i))throw n(`the option "${i}" cannot conflict itself.`);const o=(0,import_utilities.findDuplicateStrings)(e.conflictWith).map(t=>`"${t}"`);if(o.length>0)throw n(`the option "${i}" has duplicate conflicts: ${o.join(", ")}.`);for(const o of e.conflictWith){if(!(o in t.options||o in(t.arguments??[])))throw n(`the option "${i}" conflict with "${o}", but it does not exist.`)}}if(e.requires&&e.conflictWith){const t=new Set(e.requires),o=new Set(e.conflictWith),r=t.intersection(o),a=Array.from(r).map(t=>`"${t}"`);if(a.length>0){const t=a.length>1?"s":"";throw n(`the option "${i}" cannot require and conflict with the same name${t}: ${a.join(", ")}.`)}}}}function validateArguments(t){if(!t.arguments)return;const i="cliName"in t,e=i?t.cliName:t.name,n=t=>new Error(`invalid ${i?"cli":"subcommand"} definition "${e}": ${t}`);if(t.arguments){const i=Object.entries(t.arguments);if(0===i.length)throw n('"arguments" property is optional but cannot be empty.');for(const[e,[o,r]]of i.entries()){if(/^\d+$/.test(o))throw n(`the argument "${o}" name cannot be a number.`);if(!r._preparedType)throw n(`internal error: missing prepared type for argument "${o}".`);if(!r.schema)throw n(`the argument "${o}" missing a required property: "schema".`);if(t.options&&o in t.options)throw n(`the argument "${o}" name conflicts with an option name.`);if(r._preparedType.optional){if(t.allowPositionals)throw n(`the argument "${o}" cannot be optional when "allowPositionals" is enabled.`);if(e!==i.length-1)throw n(`the argument "${o}" cannot be optional unless it is the last argument.`);if(r.requires){if(r.requires.includes(o))throw n(`the argument "${o}" cannot require itself.`);const i=(0,import_utilities.findDuplicateStrings)(r.requires).map(t=>`"${t}"`);if(i.length>0)throw n(`the argument "${o}" has duplicate requires: ${i.join(", ")}.`);for(const i of r.requires){if(!(i in(t.options??{})||i in t.arguments))throw n(`the argument "${o}" requires "${i}", but it does not exist.`)}}if(r.conflictWith){if(r.conflictWith.includes(o))throw n(`the argument "${o}" cannot conflict itself.`);const i=(0,import_utilities.findDuplicateStrings)(r.conflictWith).map(t=>`"${t}"`);if(i.length>0)throw n(`the argument "${o}" has duplicate conflicts: ${i.join(", ")}.`);for(const i of r.conflictWith){if(!(i in(t.options??{})||i in t.arguments))throw n(`the argument "${o}" conflict with "${i}", but it does not exist.`)}}if(r.requires&&r.conflictWith){const t=new Set(r.requires),i=new Set(r.conflictWith),e=t.intersection(i),a=Array.from(e).map(t=>`"${t}"`);if(a.length>0){throw n(`the argument "${o}" cannot require and conflict with the same name${a.length>1?"s":""}: ${a.join(", ")}.`)}}}}}}function isNegatedOptionName(t){return(0,import_parser_utilities.transformOptionToArgument)(t).startsWith("--no-")}
2
+ //# sourceMappingURL=validate-cli-definition.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validate_cli_definition_exports","__export","validateCliDefinition","module","exports","__toCommonJS","import_parser_utilities","require","import_utilities","cliDefinition","cliName","Error","validateOptions","validateArguments","subcommands","length","commandsNames","map","c","name","some","commandsNamesDuplicates","findDuplicateStrings","join","subcommand","aliases","aliasesDuplicates","alias","includes","aliasConflicts","filter","commandDefinition","options","isCli","createError","message","optionsDefinitionEntries","Object","entries","option","schema","_preparedType","isNegatedOptionName","arguments","findConflict","find","n","d","requires","duplicateRequires","required","conflictWith","conflict","requiresSet","Set","conflictsSet","intersection","intersectionArray","Array","from","s","argumentsDefinitionEntries","index","argument","test","optional","allowPositionals","transformOptionToArgument","startsWith"],"sources":["../../../src/definitions/validate-cli-definition.ts"],"sourcesContent":["import { transformOptionToArgument } from \"../parse/parser-utilities.ts\";\nimport { findDuplicateStrings } from \"../utilities.ts\";\n\nimport type { Cli, Subcommand } from \"../types/definitions-types.ts\";\n\n/** @throws {Error} If validation fails. */\nexport function validateCliDefinition(cliDefinition: Cli) {\n if (!cliDefinition.cliName) {\n throw new Error(`invalid cli definition: \"cliName\" property is required.`);\n }\n\n // validate cli options\n validateOptions(cliDefinition);\n\n // validate cli arguments\n validateArguments(cliDefinition);\n\n const subcommands = cliDefinition.subcommands;\n if (!subcommands) return; // ok\n\n // no empty subcommands array\n if (subcommands.length === 0) {\n throw new Error(\n `invalid cli definition \"${cliDefinition.cliName}\": \"subcommands\" property is optional but cannot be empty.`,\n );\n }\n\n const commandsNames = subcommands.map(c => c.name);\n\n // required subcommand name\n if (commandsNames.some(c => !c)) {\n throw new Error(`invalid subcommand definition: subcommand's \"name\" property is required.`);\n }\n\n // no duplicate subcommand names\n const commandsNamesDuplicates = findDuplicateStrings(commandsNames).map(c => `\"${c}\"`);\n if (commandsNamesDuplicates.length > 0) {\n throw new Error(\n `invalid cli definition \"${cliDefinition.cliName}\" has duplicated subcommands: ${commandsNamesDuplicates.join(\", \")}.`,\n );\n }\n\n for (const subcommand of subcommands) {\n // command aliases check\n if (subcommand.aliases) {\n // no duplicated aliases\n const aliasesDuplicates = findDuplicateStrings(subcommand.aliases).map(c => `\"${c}\"`);\n if (aliasesDuplicates.length > 0) {\n throw new Error(`subcommand \"${subcommand.name}\" has duplicated aliases: ${aliasesDuplicates.join(\", \")}.`);\n }\n\n for (const alias of subcommand.aliases) {\n // no empty alias\n if (alias === \"\") {\n throw new Error(`subcommand \"${subcommand.name}\" has an empty string alias.`);\n }\n\n // no conflict with subcommand name\n if (commandsNames.includes(alias)) {\n throw new Error(`subcommand \"${subcommand.name}\" alias \"${alias}\" conflicts with another subcommand name.`);\n }\n\n // no conflict with another alias\n const aliasConflicts = subcommands.filter(c => c.name !== subcommand.name && c.aliases?.includes(alias));\n if (aliasConflicts.length > 0) {\n throw new Error(\n `subcommand \"${subcommand.name}\" alias \"${alias}\" conflicts with another subcommand alias: \"${aliasConflicts[0].name}\".`,\n );\n }\n }\n }\n\n // validate subcommand options\n validateOptions(subcommand);\n\n // validate subcommand arguments\n validateArguments(subcommand);\n }\n}\n\nfunction validateOptions(commandDefinition: Cli | Subcommand) {\n if (!commandDefinition.options) return; // ok\n\n const isCli = \"cliName\" in commandDefinition;\n const name = isCli ? commandDefinition.cliName : commandDefinition.name;\n\n const createError = (message: string) => {\n return new Error(`invalid ${isCli ? \"cli\" : \"subcommand\"} definition \"${name}\": ${message}`);\n };\n\n const optionsDefinitionEntries = Object.entries(commandDefinition.options);\n\n // no empty options\n if (optionsDefinitionEntries.length === 0) {\n throw createError(`\"options\" property is optional but cannot be empty.`);\n }\n\n for (const [name, option] of optionsDefinitionEntries) {\n // required type\n if (!option.schema) {\n throw createError(`the option \"${name}\" missing a required property: \"schema\".`);\n }\n\n // should not happen\n if (!option._preparedType) {\n throw createError(`internal error: missing prepared type for option \"${name}\".`);\n }\n\n // no negated option name for boolean options\n if (isNegatedOptionName(name)) {\n throw createError(`the option \"${name}\" is a negated option name.`);\n }\n\n // no conflict with argument name\n if (commandDefinition.arguments && name in commandDefinition.arguments) {\n throw createError(`the option \"${name}\" name conflicts with an argument name.`);\n }\n\n if (option.aliases) {\n // no duplicate aliases\n const aliasesDuplicates = findDuplicateStrings(option.aliases);\n if (aliasesDuplicates.length > 0) {\n throw createError(`the option \"${name}\" has duplicated aliases: ${aliasesDuplicates.join(\", \")}.`);\n }\n\n for (const alias of option.aliases) {\n // no empty string aliases\n if (alias === \"\") {\n throw createError(`the option \"${name}\" has an empty string alias.`);\n }\n\n // no negated alias name for boolean options\n if (isNegatedOptionName(alias)) {\n throw createError(`the alias \"${alias}\" of the option \"${name}\" is a negated option name.`);\n }\n\n // no alias name should conflict with any option name\n if (commandDefinition.options[alias]) {\n throw createError(`the alias \"${alias}\" of the option \"${name}\" conflicts with another option name.`);\n }\n\n // no alias name should conflict with any argument name\n if (commandDefinition.arguments && alias in commandDefinition.arguments) {\n throw createError(`the alias \"${alias}\" of the option \"${name}\" conflicts with an argument name.`);\n }\n\n // no alias name should conflict with any other alias name\n const findConflict = optionsDefinitionEntries.find(([n, d]) => n !== name && d.aliases?.includes(alias));\n if (findConflict) {\n throw createError(\n `the alias \"${alias}\" of the option \"${name}\" conflicts with another alias name of the option \"${findConflict[0]}\".`,\n );\n }\n }\n }\n\n if (option.requires) {\n // no self require\n if (option.requires.includes(name)) {\n throw createError(`the option \"${name}\" cannot require itself.`);\n }\n\n // no duplicate requires\n const duplicateRequires = findDuplicateStrings(option.requires).map(required => `\"${required}\"`);\n if (duplicateRequires.length > 0) {\n throw createError(`the option \"${name}\" has duplicate requires: ${duplicateRequires.join(\", \")}.`);\n }\n\n // no unknown required name\n for (const required of option.requires) {\n const exits = required in commandDefinition.options || required in (commandDefinition.arguments ?? []);\n if (!exits) {\n throw createError(`the option \"${name}\" requires \"${required}\", but it does not exist.`);\n }\n }\n }\n\n if (option.conflictWith) {\n // no self conflict\n if (option.conflictWith.includes(name)) {\n throw createError(`the option \"${name}\" cannot conflict itself.`);\n }\n\n // no duplicate conflicts\n const duplicateRequires = findDuplicateStrings(option.conflictWith).map(conflict => `\"${conflict}\"`);\n if (duplicateRequires.length > 0) {\n throw createError(`the option \"${name}\" has duplicate conflicts: ${duplicateRequires.join(\", \")}.`);\n }\n\n // no unknown conflict name\n for (const required of option.conflictWith) {\n const exits = required in commandDefinition.options || required in (commandDefinition.arguments ?? []);\n if (!exits) {\n throw createError(`the option \"${name}\" conflict with \"${required}\", but it does not exist.`);\n }\n }\n }\n\n // no intersection between requires and conflicts\n if (option.requires && option.conflictWith) {\n const requiresSet = new Set(option.requires);\n const conflictsSet = new Set(option.conflictWith);\n\n const intersection = requiresSet.intersection(conflictsSet);\n const intersectionArray = Array.from(intersection).map(name => `\"${name}\"`);\n\n if (intersectionArray.length > 0) {\n const s = intersectionArray.length > 1 ? \"s\" : \"\";\n throw createError(\n `the option \"${name}\" cannot require and conflict with the same name${s}: ${intersectionArray.join(\", \")}.`,\n );\n }\n }\n }\n}\n\nfunction validateArguments(commandDefinition: Cli | Subcommand) {\n if (!commandDefinition.arguments) return; // ok\n\n const isCli = \"cliName\" in commandDefinition;\n const name = isCli ? commandDefinition.cliName : commandDefinition.name;\n\n const createError = (message: string) => {\n return new Error(`invalid ${isCli ? \"cli\" : \"subcommand\"} definition \"${name}\": ${message}`);\n };\n\n if (commandDefinition.arguments) {\n const argumentsDefinitionEntries = Object.entries(commandDefinition.arguments);\n\n // no empty arguments record\n if (argumentsDefinitionEntries.length === 0) {\n throw createError(`\"arguments\" property is optional but cannot be empty.`);\n }\n\n for (const [index, [name, argument]] of argumentsDefinitionEntries.entries()) {\n // no number key name\n if (/^\\d+$/.test(name)) {\n throw createError(`the argument \"${name}\" name cannot be a number.`);\n }\n\n // should not happen\n if (!argument._preparedType) {\n throw createError(`internal error: missing prepared type for argument \"${name}\".`);\n }\n\n // no missing type\n if (!argument.schema) {\n throw createError(`the argument \"${name}\" missing a required property: \"schema\".`);\n }\n\n // no conflicting option\n if (commandDefinition.options && name in commandDefinition.options) {\n throw createError(`the argument \"${name}\" name conflicts with an option name.`);\n }\n\n if (!argument._preparedType.optional) continue; // ok\n\n // no optional argument when \"allowPositionals\" is enabled\n if (commandDefinition.allowPositionals) {\n throw createError(`the argument \"${name}\" cannot be optional when \"allowPositionals\" is enabled.`);\n }\n\n // only last argument can be optional\n if (index !== argumentsDefinitionEntries.length - 1) {\n throw createError(`the argument \"${name}\" cannot be optional unless it is the last argument.`);\n }\n\n if (argument.requires) {\n // no self require\n if (argument.requires.includes(name)) {\n throw createError(`the argument \"${name}\" cannot require itself.`);\n }\n\n // no duplicate requires\n const duplicateRequires = findDuplicateStrings(argument.requires).map(required => `\"${required}\"`);\n if (duplicateRequires.length > 0) {\n throw createError(`the argument \"${name}\" has duplicate requires: ${duplicateRequires.join(\", \")}.`);\n }\n\n // no unknown require\n for (const required of argument.requires) {\n const exits = required in (commandDefinition.options ?? {}) || required in commandDefinition.arguments;\n if (!exits) {\n throw createError(`the argument \"${name}\" requires \"${required}\", but it does not exist.`);\n }\n }\n }\n\n if (argument.conflictWith) {\n // no self conflict\n if (argument.conflictWith.includes(name)) {\n throw createError(`the argument \"${name}\" cannot conflict itself.`);\n }\n\n // no duplicate conflicts\n const duplicateRequires = findDuplicateStrings(argument.conflictWith).map(conflict => `\"${conflict}\"`);\n if (duplicateRequires.length > 0) {\n throw createError(`the argument \"${name}\" has duplicate conflicts: ${duplicateRequires.join(\", \")}.`);\n }\n\n // no unknown conflict\n for (const required of argument.conflictWith) {\n const exits = required in (commandDefinition.options ?? {}) || required in commandDefinition.arguments;\n if (!exits) {\n throw createError(`the argument \"${name}\" conflict with \"${required}\", but it does not exist.`);\n }\n }\n }\n\n // no intersection between requires and conflicts\n if (argument.requires && argument.conflictWith) {\n const requiresSet = new Set(argument.requires);\n const conflictsSet = new Set(argument.conflictWith);\n\n const intersection = requiresSet.intersection(conflictsSet);\n const intersectionArray = Array.from(intersection).map(name => `\"${name}\"`);\n\n if (intersectionArray.length > 0) {\n const s = intersectionArray.length > 1 ? \"s\" : \"\";\n throw createError(\n `the argument \"${name}\" cannot require and conflict with the same name${s}: ${intersectionArray.join(\", \")}.`,\n );\n }\n }\n }\n }\n}\n\nfunction isNegatedOptionName(name: string) {\n return transformOptionToArgument(name).startsWith(\"--no-\");\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var i in t)__defProp(e,i,{get:t[i],enumerable:!0})},__copyProps=(e,t,i,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===i||__defProp(e,n,{get:()=>t[n],enumerable:!(r=__getOwnPropDesc(t,n))||r.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),format_arguments_exports={};__export(format_arguments_exports,{formatHelpMessageArguments:()=>formatHelpMessageArguments}),module.exports=__toCommonJS(format_arguments_exports);var import_utilities=require("../utilities.cjs"),import_terminal_markdown=require("./terminal-markdown.cjs");function formatHelpMessageArguments(e,t){if(0===e.length)return"";const{style:i,indentBeforeName:r,indentAfterName:n,indentBeforePlaceholder:o,newLineIndent:s,longest:l,argumentsTitle:p,defaultKeyword:a,optionalKeyword:m,exampleKeyword:_,emptyLines:u,emptyLinesBeforeTitle:d,emptyLinesAfterTitle:f,markdownRenderer:c,kebabCaseArgumentName:g}=t;let w=(0,import_utilities.ln)(d)+(0,import_utilities.indent)(1)+i.title(p)+(0,import_utilities.ln)(1+f);const P=l+r+n+o+s;for(const t of e){if(t.hidden)continue;let e=t.description?i.description(t.description):(0,import_terminal_markdown.terminalMarkdown)(t.descriptionMarkdown,c,i.description);e=(0,import_utilities.indentLines)(e,P);let s="";t.defaultValueAsString&&(s=i.default(a.replace("{{ value }}",t.defaultValueAsString))),t.optional&&!s&&(s=i.optional(m));const p=l-t.name.length;if(w+=(0,import_utilities.indent)(r)+i.argument(g?(0,import_utilities.toKebabCase)(t.name):t.name)+(0,import_utilities.indent)(o+n)+(0,import_utilities.indent)(p)+(0,import_utilities.insertAtEndOfFirstLine)(e,s)+(0,import_utilities.ln)(1+u),t.example){const e=(0,import_utilities.indentLines)(t.example,P+_.length+1);w+=(0,import_utilities.indent)(P)+i.exampleTitle(_)+(0,import_utilities.indent)(1)+i.example(e)+(0,import_utilities.ln)(1)}}return w}
2
+ //# sourceMappingURL=format-arguments.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["format_arguments_exports","__export","formatHelpMessageArguments","module","exports","__toCommonJS","import_utilities","require","import_terminal_markdown","argumentsMetadata","options","length","style","indentBeforeName","indentAfterName","indentBeforePlaceholder","newLineIndent","longest","argumentsTitle","defaultKeyword","optionalKeyword","exampleKeyword","emptyLines","emptyLinesBeforeTitle","emptyLinesAfterTitle","markdownRenderer","kebabCaseArgumentName","message","ln","indent","title","totalSpacing","metadata","hidden","description","terminalMarkdown","descriptionMarkdown","indentLines","defaultOrOptional","defaultValueAsString","default","replace","optional","spacing","name","argument","toKebabCase","insertAtEndOfFirstLine","example","normalizeExample","exampleTitle"],"sources":["../../../src/help-message/format-arguments.ts"],"sourcesContent":["import { indent, indentLines, insertAtEndOfFirstLine, ln, toKebabCase } from \"../utilities.ts\";\nimport { terminalMarkdown } from \"./terminal-markdown.ts\";\n\nimport type { ArgumentMetadata } from \"../types/metadata-types.ts\";\nimport type { FormatOptions } from \"./generate-for-cli.ts\";\n\nexport function formatHelpMessageArguments(argumentsMetadata: ArgumentMetadata[], options: FormatOptions): string {\n if (argumentsMetadata.length === 0) return \"\";\n\n const {\n style,\n indentBeforeName,\n indentAfterName,\n indentBeforePlaceholder,\n newLineIndent,\n longest,\n argumentsTitle,\n defaultKeyword,\n optionalKeyword,\n exampleKeyword,\n emptyLines,\n emptyLinesBeforeTitle,\n emptyLinesAfterTitle,\n markdownRenderer,\n kebabCaseArgumentName,\n } = options;\n\n let message = ln(emptyLinesBeforeTitle) + indent(1) + style.title(argumentsTitle) + ln(1 + emptyLinesAfterTitle);\n\n // the space from the beginning to the start of the next column.\n const totalSpacing = longest + indentBeforeName + indentAfterName + indentBeforePlaceholder + newLineIndent;\n\n for (const metadata of argumentsMetadata) {\n if (metadata.hidden) continue;\n\n let description = metadata.description\n ? style.description(metadata.description)\n : terminalMarkdown(metadata.descriptionMarkdown, markdownRenderer, style.description);\n\n description = indentLines(description, totalSpacing);\n\n let defaultOrOptional = \"\";\n\n if (metadata.defaultValueAsString) {\n defaultOrOptional = style.default(defaultKeyword.replace(\"{{ value }}\", metadata.defaultValueAsString));\n }\n\n if (metadata.optional && !defaultOrOptional) {\n defaultOrOptional = style.optional(optionalKeyword);\n }\n\n const spacing = longest - metadata.name.length;\n\n message +=\n indent(indentBeforeName) +\n style.argument(kebabCaseArgumentName ? toKebabCase(metadata.name) : metadata.name) +\n indent(indentBeforePlaceholder + indentAfterName) +\n indent(spacing) +\n insertAtEndOfFirstLine(description, defaultOrOptional) +\n ln(1 + emptyLines);\n\n if (metadata.example) {\n const normalizeExample = indentLines(metadata.example, totalSpacing + exampleKeyword.length + 1); // +1 for the space after the keyword\n message +=\n indent(totalSpacing) + style.exampleTitle(exampleKeyword) + indent(1) + style.example(normalizeExample) + ln(1);\n }\n }\n\n return message;\n}\n"],"mappings":"8iBAAAA,yBAAA,GAAAC,SAAAD,yBAAA,CAAAE,2BAAA,IAAAA,6BAAAC,OAAAC,QAAAC,aAAAL,0BAAA,IAAAM,iBAA6EC,QAAA,oBAC7EC,yBAAiCD,QAAA,2BAK1B,SAASL,2BAA2BO,EAAuCC,GAChF,GAAiC,IAA7BD,EAAkBE,OAAc,MAAO,GAE3C,MAAMC,MACJA,EAAAC,iBACAA,EAAAC,gBACAA,EAAAC,wBACAA,EAAAC,cACAA,EAAAC,QACAA,EAAAC,eACAA,EAAAC,eACAA,EAAAC,gBACAA,EAAAC,eACAA,EAAAC,WACAA,EAAAC,sBACAA,EAAAC,qBACAA,EAAAC,iBACAA,EAAAC,sBACAA,GACEhB,EAEJ,IAAIiB,GAAA,EAAUrB,iBAAAsB,IAAGL,IAAqB,EAAIjB,iBAAAuB,QAAO,GAAKjB,EAAMkB,MAAMZ,IAAc,EAAIZ,iBAAAsB,IAAG,EAAIJ,GAG3F,MAAMO,EAAed,EAAUJ,EAAmBC,EAAkBC,EAA0BC,EAE9F,UAAWgB,KAAYvB,EAAmB,CACxC,GAAIuB,EAASC,OAAQ,SAErB,IAAIC,EAAcF,EAASE,YACvBtB,EAAMsB,YAAYF,EAASE,cAAW,EACtC1B,yBAAA2B,kBAAiBH,EAASI,oBAAqBX,EAAkBb,EAAMsB,aAE3EA,GAAA,EAAc5B,iBAAA+B,aAAYH,EAAaH,GAEvC,IAAIO,EAAoB,GAEpBN,EAASO,uBACXD,EAAoB1B,EAAM4B,QAAQrB,EAAesB,QAAQ,cAAeT,EAASO,wBAG/EP,EAASU,WAAaJ,IACxBA,EAAoB1B,EAAM8B,SAAStB,IAGrC,MAAMuB,EAAU1B,EAAUe,EAASY,KAAKjC,OAUxC,GARAgB,IAAA,EACErB,iBAAAuB,QAAOhB,GACPD,EAAMiC,SAASnB,GAAA,EAAwBpB,iBAAAwC,aAAYd,EAASY,MAAQZ,EAASY,OAAI,EACjFtC,iBAAAuB,QAAOd,EAA0BD,IAAe,EAChDR,iBAAAuB,QAAOc,IAAO,EACdrC,iBAAAyC,wBAAuBb,EAAaI,IAAiB,EACrDhC,iBAAAsB,IAAG,EAAIN,GAELU,EAASgB,QAAS,CACpB,MAAMC,GAAA,EAAmB3C,iBAAA+B,aAAYL,EAASgB,QAASjB,EAAeV,EAAeV,OAAS,GAC9FgB,IAAA,EACErB,iBAAAuB,QAAOE,GAAgBnB,EAAMsC,aAAa7B,IAAc,EAAIf,iBAAAuB,QAAO,GAAKjB,EAAMoC,QAAQC,IAAgB,EAAI3C,iBAAAsB,IAAG,EACjH,CACF,CAEA,OAAOD,CACT","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var i in t)__defProp(e,i,{get:t[i],enumerable:!0})},__copyProps=(e,t,i,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===i||__defProp(e,n,{get:()=>t[n],enumerable:!(o=__getOwnPropDesc(t,n))||o.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),format_options_exports={};__export(format_options_exports,{formatHelpMessageOptions:()=>formatHelpMessageOptions}),module.exports=__toCommonJS(format_options_exports);var import_utilities=require("../utilities.cjs"),import_terminal_markdown=require("./terminal-markdown.cjs");function formatHelpMessageOptions(e,t){if(0===e.length)return"";const{style:i,indentBeforeName:o,indentAfterName:n,indentBeforePlaceholder:r,newLineIndent:p,emptyLines:s,longest:l,exampleKeyword:a,optionalKeyword:_,defaultKeyword:m,optionsTitle:d,emptyLinesBeforeTitle:u,emptyLinesAfterTitle:c,markdownRenderer:f}=t;let g=(0,import_utilities.ln)(u)+(0,import_utilities.indent)(1)+i.title(d)+(0,import_utilities.ln)(1+c);const w=l+o+n+r+p;for(const t of e){if(t.hidden)continue;const e=[...t.aliasesAsArgs,t.nameAsArg],p=e.map(e=>i.option(e)).join(i.punctuation(", "));let d=t.description?i.description(t.description):(0,import_terminal_markdown.terminalMarkdown)(t.descriptionMarkdown,f,i.description);d=(0,import_utilities.indentLines)(d,w);let u="";t.defaultValueAsString&&(u=i.default(m.replace("{{ value }}",t.defaultValueAsString))),t.optional&&!u&&(u=i.optional(_));const c=l-(e.join(", ").length+t.placeholder.length);if(g+=(0,import_utilities.indent)(o)+p+(0,import_utilities.indent)(r)+i.placeholder(t.placeholder)+(0,import_utilities.indent)(n)+(0,import_utilities.indent)(c)+(0,import_utilities.insertAtEndOfFirstLine)(d,u)+(0,import_utilities.ln)(1+s),t.example){const e=(0,import_utilities.indentLines)(t.example,w+a.length+1);g+=(0,import_utilities.indent)(w)+i.exampleTitle(a)+(0,import_utilities.indent)(1)+i.example(e)+(0,import_utilities.ln)(1)}}return g}
2
+ //# sourceMappingURL=format-options.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["format_options_exports","__export","formatHelpMessageOptions","module","exports","__toCommonJS","import_utilities","require","import_terminal_markdown","optionsMetadata","options","length","style","indentBeforeName","indentAfterName","indentBeforePlaceholder","newLineIndent","emptyLines","longest","exampleKeyword","optionalKeyword","defaultKeyword","optionsTitle","emptyLinesBeforeTitle","emptyLinesAfterTitle","markdownRenderer","message","ln","indent","title","totalSpacing","metadata","hidden","names","aliasesAsArgs","nameAsArg","coloredNames","map","name","option","join","punctuation","description","terminalMarkdown","descriptionMarkdown","indentLines","defaultOrOptional","defaultValueAsString","default","replace","optional","spacing","placeholder","insertAtEndOfFirstLine","example","normalizeExample","exampleTitle"],"sources":["../../../src/help-message/format-options.ts"],"sourcesContent":["import { indent, indentLines, insertAtEndOfFirstLine, ln } from \"../utilities.ts\";\nimport { terminalMarkdown } from \"./terminal-markdown.ts\";\n\nimport type { OptionMetadata } from \"../types/metadata-types.ts\";\nimport type { FormatOptions } from \"./generate-for-cli.ts\";\n\nexport function formatHelpMessageOptions(optionsMetadata: OptionMetadata[], options: FormatOptions): string {\n if (optionsMetadata.length === 0) return \"\";\n\n const {\n style,\n indentBeforeName,\n indentAfterName,\n indentBeforePlaceholder,\n newLineIndent,\n emptyLines,\n longest,\n exampleKeyword,\n optionalKeyword,\n defaultKeyword,\n optionsTitle,\n emptyLinesBeforeTitle,\n emptyLinesAfterTitle,\n markdownRenderer,\n } = options;\n\n let message = ln(emptyLinesBeforeTitle) + indent(1) + style.title(optionsTitle) + ln(1 + emptyLinesAfterTitle);\n\n // the space from the beginning to the start of the next column.\n const totalSpacing = longest + indentBeforeName + indentAfterName + indentBeforePlaceholder + newLineIndent;\n\n for (const metadata of optionsMetadata) {\n if (metadata.hidden) continue;\n\n const names = [...metadata.aliasesAsArgs, metadata.nameAsArg];\n const coloredNames = names.map(name => style.option(name)).join(style.punctuation(\", \"));\n\n let description = metadata.description\n ? style.description(metadata.description)\n : terminalMarkdown(metadata.descriptionMarkdown, markdownRenderer, style.description);\n\n description = indentLines(description, totalSpacing);\n\n let defaultOrOptional = \"\";\n\n if (metadata.defaultValueAsString) {\n defaultOrOptional = style.default(defaultKeyword.replace(\"{{ value }}\", metadata.defaultValueAsString));\n }\n\n if (metadata.optional && !defaultOrOptional) {\n defaultOrOptional = style.optional(optionalKeyword);\n }\n\n // space between the option and the description\n const optLength = names.join(\", \").length + metadata.placeholder.length;\n const spacing = longest - optLength;\n\n message +=\n indent(indentBeforeName) +\n coloredNames +\n indent(indentBeforePlaceholder) +\n style.placeholder(metadata.placeholder) +\n indent(indentAfterName) +\n indent(spacing) +\n insertAtEndOfFirstLine(description, defaultOrOptional) +\n ln(1 + emptyLines);\n\n if (metadata.example) {\n const normalizeExample = indentLines(metadata.example, totalSpacing + exampleKeyword.length + 1); // + 1 for the space after the keyword\n message +=\n indent(totalSpacing) + style.exampleTitle(exampleKeyword) + indent(1) + style.example(normalizeExample) + ln(1);\n }\n }\n\n return message;\n}\n"],"mappings":"8iBAAAA,uBAAA,GAAAC,SAAAD,uBAAA,CAAAE,yBAAA,IAAAA,2BAAAC,OAAAC,QAAAC,aAAAL,wBAAA,IAAAM,iBAAgEC,QAAA,oBAChEC,yBAAiCD,QAAA,2BAK1B,SAASL,yBAAyBO,EAAmCC,GAC1E,GAA+B,IAA3BD,EAAgBE,OAAc,MAAO,GAEzC,MAAMC,MACJA,EAAAC,iBACAA,EAAAC,gBACAA,EAAAC,wBACAA,EAAAC,cACAA,EAAAC,WACAA,EAAAC,QACAA,EAAAC,eACAA,EAAAC,gBACAA,EAAAC,eACAA,EAAAC,aACAA,EAAAC,sBACAA,EAAAC,qBACAA,EAAAC,iBACAA,GACEf,EAEJ,IAAIgB,GAAA,EAAUpB,iBAAAqB,IAAGJ,IAAqB,EAAIjB,iBAAAsB,QAAO,GAAKhB,EAAMiB,MAAMP,IAAY,EAAIhB,iBAAAqB,IAAG,EAAIH,GAGzF,MAAMM,EAAeZ,EAAUL,EAAmBC,EAAkBC,EAA0BC,EAE9F,UAAWe,KAAYtB,EAAiB,CACtC,GAAIsB,EAASC,OAAQ,SAErB,MAAMC,EAAQ,IAAIF,EAASG,cAAeH,EAASI,WAC7CC,EAAeH,EAAMI,IAAIC,GAAQ1B,EAAM2B,OAAOD,IAAOE,KAAK5B,EAAM6B,YAAY,OAElF,IAAIC,EAAcX,EAASW,YACvB9B,EAAM8B,YAAYX,EAASW,cAAW,EACtClC,yBAAAmC,kBAAiBZ,EAASa,oBAAqBnB,EAAkBb,EAAM8B,aAE3EA,GAAA,EAAcpC,iBAAAuC,aAAYH,EAAaZ,GAEvC,IAAIgB,EAAoB,GAEpBf,EAASgB,uBACXD,EAAoBlC,EAAMoC,QAAQ3B,EAAe4B,QAAQ,cAAelB,EAASgB,wBAG/EhB,EAASmB,WAAaJ,IACxBA,EAAoBlC,EAAMsC,SAAS9B,IAIrC,MACM+B,EAAUjC,GADEe,EAAMO,KAAK,MAAM7B,OAASoB,EAASqB,YAAYzC,QAajE,GAVAe,IAAA,EACEpB,iBAAAsB,QAAOf,GACPuB,GAAA,EACA9B,iBAAAsB,QAAOb,GACPH,EAAMwC,YAAYrB,EAASqB,cAAW,EACtC9C,iBAAAsB,QAAOd,IAAe,EACtBR,iBAAAsB,QAAOuB,IAAO,EACd7C,iBAAA+C,wBAAuBX,EAAaI,IAAiB,EACrDxC,iBAAAqB,IAAG,EAAIV,GAELc,EAASuB,QAAS,CACpB,MAAMC,GAAA,EAAmBjD,iBAAAuC,aAAYd,EAASuB,QAASxB,EAAeX,EAAeR,OAAS,GAC9Fe,IAAA,EACEpB,iBAAAsB,QAAOE,GAAgBlB,EAAM4C,aAAarC,IAAc,EAAIb,iBAAAsB,QAAO,GAAKhB,EAAM0C,QAAQC,IAAgB,EAAIjD,iBAAAqB,IAAG,EACjH,CACF,CAEA,OAAOD,CACT","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var o in t)__defProp(e,o,{get:t[o],enumerable:!0})},__copyProps=(e,t,o,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===o||__defProp(e,n,{get:()=>t[n],enumerable:!(i=__getOwnPropDesc(t,n))||i.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),format_subcommands_exports={};__export(format_subcommands_exports,{formatHelpMessageCommands:()=>formatHelpMessageCommands}),module.exports=__toCommonJS(format_subcommands_exports);var import_utilities=require("../utilities.cjs"),import_terminal_markdown=require("./terminal-markdown.cjs");function formatHelpMessageCommands(e,t){if(0===e.length)return"";const{style:o,indentBeforeName:i,indentAfterName:n,indentBeforePlaceholder:r,newLineIndent:s,longest:m,commandsTitle:p,emptyLines:_,emptyLinesBeforeTitle:a,emptyLinesAfterTitle:l,markdownRenderer:d}=t;let c=(0,import_utilities.ln)(a)+(0,import_utilities.indent)(1)+o.title(p)+(0,import_utilities.ln)(1+l);const u=m+i+n+r+s;for(const t of e){if(t.hidden)continue;const e=t.aliases.concat([t.name]),s=(0,import_utilities.subcommandPlaceholder)(t);let p=t.description?o.description(t.description):(0,import_terminal_markdown.terminalMarkdown)(t.descriptionMarkdown,d,o.description);p=(0,import_utilities.indentLines)(p,u);const a=m-(e.join(", ").length+s.length),l=e.map(e=>o.command(e)).join(o.punctuation(", "));c+=(0,import_utilities.indent)(i)+l+(0,import_utilities.indent)(r)+o.placeholder(s)+(0,import_utilities.indent)(n)+(0,import_utilities.indent)(a)+p+(0,import_utilities.ln)(1+_)}return c}
2
+ //# sourceMappingURL=format-subcommands.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["format_subcommands_exports","__export","formatHelpMessageCommands","module","exports","__toCommonJS","import_utilities","require","import_terminal_markdown","subcommandsMetadata","options","length","style","indentBeforeName","indentAfterName","indentBeforePlaceholder","newLineIndent","longest","commandsTitle","emptyLines","emptyLinesBeforeTitle","emptyLinesAfterTitle","markdownRenderer","message","ln","indent","title","totalSpacing","metadata","hidden","names","aliases","concat","name","placeholder","subcommandPlaceholder","description","terminalMarkdown","descriptionMarkdown","indentLines","spacing","join","coloredNames","map","command","punctuation"],"sources":["../../../src/help-message/format-subcommands.ts"],"sourcesContent":["import { indent, indentLines, ln, subcommandPlaceholder } from \"../utilities.ts\";\nimport { terminalMarkdown } from \"./terminal-markdown.ts\";\n\nimport type { SubcommandMetadata } from \"../types/metadata-types.ts\";\nimport type { FormatOptions } from \"./generate-for-cli.ts\";\n\nexport function formatHelpMessageCommands(subcommandsMetadata: SubcommandMetadata[], options: FormatOptions): string {\n if (subcommandsMetadata.length === 0) return \"\";\n\n const {\n style,\n indentBeforeName,\n indentAfterName,\n indentBeforePlaceholder,\n newLineIndent,\n longest,\n commandsTitle,\n emptyLines,\n emptyLinesBeforeTitle,\n emptyLinesAfterTitle,\n markdownRenderer,\n } = options;\n\n let message = ln(emptyLinesBeforeTitle) + indent(1) + style.title(commandsTitle) + ln(1 + emptyLinesAfterTitle);\n\n // the space from the beginning to the start of the next column.\n const totalSpacing = longest + indentBeforeName + indentAfterName + indentBeforePlaceholder + newLineIndent;\n\n for (const metadata of subcommandsMetadata) {\n if (metadata.hidden) continue;\n\n const names = metadata.aliases.concat([metadata.name]);\n const placeholder = subcommandPlaceholder(metadata);\n\n let description = metadata.description\n ? style.description(metadata.description)\n : terminalMarkdown(metadata.descriptionMarkdown, markdownRenderer, style.description);\n\n description = indentLines(description, totalSpacing);\n\n const optLength = names.join(\", \").length + placeholder.length;\n const spacing = longest - optLength;\n\n const coloredNames = names.map(name => style.command(name)).join(style.punctuation(\", \"));\n\n message +=\n indent(indentBeforeName) +\n coloredNames +\n indent(indentBeforePlaceholder) +\n style.placeholder(placeholder) +\n indent(indentAfterName) +\n indent(spacing) +\n description +\n ln(1 + emptyLines);\n }\n\n return message;\n}\n"],"mappings":"8iBAAAA,2BAAA,GAAAC,SAAAD,2BAAA,CAAAE,0BAAA,IAAAA,4BAAAC,OAAAC,QAAAC,aAAAL,4BAAA,IAAAM,iBAA+DC,QAAA,oBAC/DC,yBAAiCD,QAAA,2BAK1B,SAASL,0BAA0BO,EAA2CC,GACnF,GAAmC,IAA/BD,EAAoBE,OAAc,MAAO,GAE7C,MAAMC,MACJA,EAAAC,iBACAA,EAAAC,gBACAA,EAAAC,wBACAA,EAAAC,cACAA,EAAAC,QACAA,EAAAC,cACAA,EAAAC,WACAA,EAAAC,sBACAA,EAAAC,qBACAA,EAAAC,iBACAA,GACEZ,EAEJ,IAAIa,GAAA,EAAUjB,iBAAAkB,IAAGJ,IAAqB,EAAId,iBAAAmB,QAAO,GAAKb,EAAMc,MAAMR,IAAa,EAAIZ,iBAAAkB,IAAG,EAAIH,GAG1F,MAAMM,EAAeV,EAAUJ,EAAmBC,EAAkBC,EAA0BC,EAE9F,UAAWY,KAAYnB,EAAqB,CAC1C,GAAImB,EAASC,OAAQ,SAErB,MAAMC,EAAQF,EAASG,QAAQC,OAAO,CAACJ,EAASK,OAC1CC,GAAA,EAAc5B,iBAAA6B,uBAAsBP,GAE1C,IAAIQ,EAAcR,EAASQ,YACvBxB,EAAMwB,YAAYR,EAASQ,cAAW,EACtC5B,yBAAA6B,kBAAiBT,EAASU,oBAAqBhB,EAAkBV,EAAMwB,aAE3EA,GAAA,EAAc9B,iBAAAiC,aAAYH,EAAaT,GAEvC,MACMa,EAAUvB,GADEa,EAAMW,KAAK,MAAM9B,OAASuB,EAAYvB,QAGlD+B,EAAeZ,EAAMa,IAAIV,GAAQrB,EAAMgC,QAAQX,IAAOQ,KAAK7B,EAAMiC,YAAY,OAEnFtB,IAAA,EACEjB,iBAAAmB,QAAOZ,GACP6B,GAAA,EACApC,iBAAAmB,QAAOV,GACPH,EAAMsB,YAAYA,IAAW,EAC7B5B,iBAAAmB,QAAOX,IAAe,EACtBR,iBAAAmB,QAAOe,GACPJ,GAAA,EACA9B,iBAAAkB,IAAG,EAAIL,EACX,CAEA,OAAOI,CACT","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var i in t)__defProp(e,i,{get:t[i],enumerable:!0})},__copyProps=(e,t,i,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of __getOwnPropNames(t))__hasOwnProp.call(e,r)||r===i||__defProp(e,r,{get:()=>t[r],enumerable:!(o=__getOwnPropDesc(t,r))||o.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),generate_for_cli_exports={};__export(generate_for_cli_exports,{generateCliHelpMessage:()=>generateCliHelpMessage}),module.exports=__toCommonJS(generate_for_cli_exports);var import_cli_metadata=require("../metadata/cli-metadata.cjs"),import_utilities=require("../utilities.cjs"),import_format_arguments=require("./format-arguments.cjs"),import_format_options=require("./format-options.cjs"),import_format_subcommands=require("./format-subcommands.cjs"),import_set_defaults=require("./set-defaults.cjs"),import_styles=require("./styles.cjs"),import_terminal_markdown=require("./terminal-markdown.cjs");function generateCliHelpMessage(e,t={}){const i=(0,import_set_defaults.setPrintHelpOptionsDefaults)(t),o={...import_styles.helpMessageStyles.default,...i.style},r=(0,import_cli_metadata.getCliMetadata)(e),n=e=>(0,import_utilities.indent)(1)+o.title(e);let s="",a=r.usage;if(a||(a=o.punctuation("$"),a+=r.name?o.description("",r.name):"",a+=r.subcommands.length>0?o.command("","[command]"):"",a+=r.options.length>0?o.option("","[options]"):"",a+=r.arguments.length>0?o.argument("","<arguments>"):"",a+=r.allowPositionals?o.argument("","<positionals>"):""),s+=n(i.usageTitle)+(0,import_utilities.ln)(1+i.emptyLinesAfterTitle),s+=(0,import_utilities.indent)(i.indentBeforeName)+a+(0,import_utilities.ln)(1),r.description||r.descriptionMarkdown){s+=(0,import_utilities.ln)(i.emptyLinesBeforeTitle)+n(i.descriptionTitle)+(0,import_utilities.ln)(1+i.emptyLinesAfterTitle);let e=r.description?o.description(r.description):(0,import_terminal_markdown.terminalMarkdown)(r.descriptionMarkdown,i.markdownRenderer,o.description);e=(0,import_utilities.indentLines)(e,i.indentBeforeName),s+=(0,import_utilities.indent)(i.indentBeforeName)+e+(0,import_utilities.ln)(1)}let m=0;const l=r.options;let p=0;for(const e of l){const t=[...e.aliasesAsArgs,e.nameAsArg].join(", ").length+e.placeholder.length;p=Math.max(t,p)}m=Math.max(p,m);const _=r.subcommands;let c=0;for(const e of _){const t=[...e.aliases,e.name].join(", "),i=(0,import_utilities.subcommandPlaceholder)(e),o=t.length+i.length;c=Math.max(o,c)}m=Math.max(c,m);const u=r.arguments;let d=0;for(const e of u)d=Math.max(e.name.length,d);m=Math.max(d,m);const f=Object.assign({...i},{style:o,longest:m});if(s+=(0,import_format_options.formatHelpMessageOptions)(l,f),s+=(0,import_format_subcommands.formatHelpMessageCommands)(_,f),s+=(0,import_format_arguments.formatHelpMessageArguments)(u,f),r.example){s+=(0,import_utilities.ln)(i.emptyLinesBeforeTitle)+n(i.exampleTitle)+(0,import_utilities.ln)(1+i.emptyLinesAfterTitle);const e=(0,import_utilities.indentLines)(r.example,i.indentBeforeName);s+=(0,import_utilities.indent)(i.indentBeforeName)+o.example(e)}return s}
2
+ //# sourceMappingURL=generate-for-cli.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["generate_for_cli_exports","__export","generateCliHelpMessage","module","exports","__toCommonJS","import_cli_metadata","require","import_utilities","import_format_arguments","import_format_options","import_format_subcommands","import_set_defaults","import_styles","import_terminal_markdown","cliDefinition","printOptions","options","setPrintHelpOptionsDefaults","style","helpMessageStyles","default","metadata","getCliMetadata","formatTitle","title","indent","message","usage","punctuation","name","description","subcommands","length","command","option","arguments","argument","allowPositionals","usageTitle","ln","emptyLinesAfterTitle","indentBeforeName","descriptionMarkdown","emptyLinesBeforeTitle","descriptionTitle","terminalMarkdown","markdownRenderer","indentLines","longest","optionsMetadata","longestOptionTitle","optLength","aliasesAsArgs","nameAsArg","join","placeholder","Math","max","subcommandsMetadata","longestSubcommandTitle","names","aliases","subcommandPlaceholder","argumentsMetadata","longestArgumentTitle","formatOptions","Object","assign","formatHelpMessageOptions","formatHelpMessageCommands","formatHelpMessageArguments","example","exampleTitle","normalizeExample"],"sources":["../../../src/help-message/generate-for-cli.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/cli-metadata.ts\";\nimport { indent, indentLines, ln, subcommandPlaceholder } from \"../utilities.ts\";\nimport { formatHelpMessageArguments } from \"./format-arguments.ts\";\nimport { formatHelpMessageOptions } from \"./format-options.ts\";\nimport { formatHelpMessageCommands } from \"./format-subcommands.ts\";\nimport { setPrintHelpOptionsDefaults } from \"./set-defaults.ts\";\nimport { helpMessageStyles } from \"./styles.ts\";\nimport { terminalMarkdown } from \"./terminal-markdown.ts\";\n\nimport type { Cli } from \"../types/definitions-types.ts\";\nimport type { HelpMessageStyleImpl, PrintHelpOptions } from \"../types/help-message-types.ts\";\n\nexport interface FormatOptions extends Required<PrintHelpOptions> {\n style: HelpMessageStyleImpl;\n longest: number;\n}\n\nexport function generateCliHelpMessage(cliDefinition: Cli, printOptions: PrintHelpOptions = {}): string {\n const options = setPrintHelpOptionsDefaults(printOptions);\n\n const style = { ...helpMessageStyles.default, ...options.style };\n\n const metadata = getCliMetadata(cliDefinition);\n\n const formatTitle = (title: string) => indent(1) + style.title(title);\n\n let message = \"\";\n\n // CLI usage\n let usage = metadata.usage;\n if (!usage) {\n usage = style.punctuation(\"$\");\n usage += metadata.name ? style.description(\"\", metadata.name) : \"\";\n usage += metadata.subcommands.length > 0 ? style.command(\"\", \"[command]\") : \"\";\n usage += metadata.options.length > 0 ? style.option(\"\", \"[options]\") : \"\";\n usage += metadata.arguments.length > 0 ? style.argument(\"\", \"<arguments>\") : \"\";\n usage += metadata.allowPositionals ? style.argument(\"\", \"<positionals>\") : \"\";\n }\n\n message += formatTitle(options.usageTitle) + ln(1 + options.emptyLinesAfterTitle);\n message += indent(options.indentBeforeName) + usage + ln(1);\n\n // CLI description\n if (metadata.description || metadata.descriptionMarkdown) {\n message +=\n ln(options.emptyLinesBeforeTitle) + formatTitle(options.descriptionTitle) + ln(1 + options.emptyLinesAfterTitle);\n\n let description = metadata.description\n ? style.description(metadata.description)\n : terminalMarkdown(metadata.descriptionMarkdown, options.markdownRenderer, style.description);\n\n description = indentLines(description, options.indentBeforeName);\n\n message += indent(options.indentBeforeName) + description + ln(1);\n }\n\n let longest = 0;\n\n // Prepare CLI options\n const optionsMetadata = metadata.options;\n\n let longestOptionTitle = 0;\n for (const metadata of optionsMetadata) {\n const names = [...metadata.aliasesAsArgs, metadata.nameAsArg].join(\", \");\n const optLength = names.length + metadata.placeholder.length;\n longestOptionTitle = Math.max(optLength, longestOptionTitle);\n }\n\n longest = Math.max(longestOptionTitle, longest);\n\n // Prepare CLI commands\n const subcommandsMetadata = metadata.subcommands;\n\n let longestSubcommandTitle = 0;\n for (const metadata of subcommandsMetadata) {\n const names = [...metadata.aliases, metadata.name].join(\", \");\n const placeholder = subcommandPlaceholder(metadata);\n const optLength = names.length + placeholder.length;\n longestSubcommandTitle = Math.max(optLength, longestSubcommandTitle);\n }\n\n longest = Math.max(longestSubcommandTitle, longest);\n\n // Prepare CLI arguments\n const argumentsMetadata = metadata.arguments;\n\n let longestArgumentTitle = 0;\n for (const argument of argumentsMetadata) {\n longestArgumentTitle = Math.max(argument.name.length, longestArgumentTitle);\n }\n\n longest = Math.max(longestArgumentTitle, longest);\n\n const formatOptions = Object.assign({ ...options }, { style, longest }) as FormatOptions;\n\n // CLI options\n message += formatHelpMessageOptions(optionsMetadata, formatOptions);\n\n // CLI commands\n message += formatHelpMessageCommands(subcommandsMetadata, formatOptions);\n\n // CLI arguments\n message += formatHelpMessageArguments(argumentsMetadata, formatOptions);\n\n // CLI example\n if (metadata.example) {\n message +=\n ln(options.emptyLinesBeforeTitle) + formatTitle(options.exampleTitle) + ln(1 + options.emptyLinesAfterTitle);\n const normalizeExample = indentLines(metadata.example, options.indentBeforeName);\n message += indent(options.indentBeforeName) + style.example(normalizeExample);\n }\n\n return message;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var o in t)__defProp(e,o,{get:t[o],enumerable:!0})},__copyProps=(e,t,o,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of __getOwnPropNames(t))__hasOwnProp.call(e,s)||s===o||__defProp(e,s,{get:()=>t[s],enumerable:!(r=__getOwnPropDesc(t,s))||r.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),generate_for_subcommand_exports={};__export(generate_for_subcommand_exports,{generateSubcommandHelpMessage:()=>generateSubcommandHelpMessage}),module.exports=__toCommonJS(generate_for_subcommand_exports);var import_generate_for_cli=require("./generate-for-cli.cjs"),import_set_defaults=require("./set-defaults.cjs"),import_styles=require("./styles.cjs");function generateSubcommandHelpMessage(e,t={},o=""){(0,import_set_defaults.setPrintHelpOptionsDefaults)(t);const r={...import_styles.helpMessageStyles.default,...t.style},s=e.meta??{};let _=s.usage;_||(_=r.punctuation("$"),_+=o?` ${o}`:"",_+=r.command("",e.name),_+=e.options?r.option(" [options]"):"",_+=e.arguments||e.allowPositionals?r.argument(" <arguments>"):"");const a={...e,cliName:e.name,meta:{usage:_,...s}};return(0,import_generate_for_cli.generateCliHelpMessage)(a,t)}
2
+ //# sourceMappingURL=generate-for-subcommand.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["generate_for_subcommand_exports","__export","generateSubcommandHelpMessage","module","exports","__toCommonJS","import_generate_for_cli","require","import_set_defaults","import_styles","commandDefinition","options","cliName","setPrintHelpOptionsDefaults","style","helpMessageStyles","default","meta","usage","punctuation","command","name","option","arguments","allowPositionals","argument","asCliDefinition","generateCliHelpMessage"],"sources":["../../../src/help-message/generate-for-subcommand.ts"],"sourcesContent":["import { generateCliHelpMessage } from \"./generate-for-cli.ts\";\nimport { setPrintHelpOptionsDefaults } from \"./set-defaults.ts\";\nimport { helpMessageStyles } from \"./styles.ts\";\n\nimport type { Cli, Subcommand } from \"../types/definitions-types.ts\";\nimport type { PrintHelpOptions } from \"../types/help-message-types.ts\";\n\nexport function generateSubcommandHelpMessage(\n commandDefinition: Subcommand,\n options: PrintHelpOptions = {},\n cliName = \"\",\n): string {\n setPrintHelpOptionsDefaults(options);\n\n const style = { ...helpMessageStyles.default, ...options.style };\n\n const meta = commandDefinition.meta ?? {};\n\n let usage = meta.usage;\n if (!usage) {\n usage = style.punctuation(\"$\");\n usage += cliName ? ` ${cliName}` : \"\";\n usage += style.command(\"\", commandDefinition.name);\n usage += commandDefinition.options ? style.option(\" [options]\") : \"\";\n usage += commandDefinition.arguments || commandDefinition.allowPositionals ? style.argument(\" <arguments>\") : \"\";\n }\n\n // convert to cli object without subcommands\n const asCliDefinition: Cli = { ...commandDefinition, cliName: commandDefinition.name, meta: { usage, ...meta } };\n\n return generateCliHelpMessage(asCliDefinition, options);\n}\n"],"mappings":"8iBAAAA,gCAAA,GAAAC,SAAAD,gCAAA,CAAAE,8BAAA,IAAAA,gCAAAC,OAAAC,QAAAC,aAAAL,iCAAA,IAAAM,wBAAuCC,QAAA,0BACvCC,oBAA4CD,QAAA,sBAC5CE,cAAkCF,QAAA,gBAK3B,SAASL,8BACdQ,EACAC,EAA4B,CAAC,EAC7BC,EAAU,KAEV,EAAAJ,oBAAAK,6BAA4BF,GAE5B,MAAMG,EAAQ,IAAKL,cAAAM,kBAAkBC,WAAYL,EAAQG,OAEnDG,EAAOP,EAAkBO,MAAQ,CAAC,EAExC,IAAIC,EAAQD,EAAKC,MACZA,IACHA,EAAQJ,EAAMK,YAAY,KAC1BD,GAASN,EAAU,IAAIA,IAAY,GACnCM,GAASJ,EAAMM,QAAQ,GAAIV,EAAkBW,MAC7CH,GAASR,EAAkBC,QAAUG,EAAMQ,OAAO,cAAgB,GAClEJ,GAASR,EAAkBa,WAAab,EAAkBc,iBAAmBV,EAAMW,SAAS,gBAAkB,IAIhH,MAAMC,EAAuB,IAAKhB,EAAmBE,QAASF,EAAkBW,KAAMJ,KAAM,CAAEC,WAAUD,IAExG,SAAOX,wBAAAqB,wBAAuBD,EAAiBf,EACjD","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,r)=>{for(var o in r)__defProp(e,o,{get:r[o],enumerable:!0})},__copyProps=(e,r,o,t)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let p of __getOwnPropNames(r))__hasOwnProp.call(e,p)||p===o||__defProp(e,p,{get:()=>r[p],enumerable:!(t=__getOwnPropDesc(r,p))||t.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),print_help_exports={};__export(print_help_exports,{printCliHelp:()=>printCliHelp,printSubcommandHelp:()=>printSubcommandHelp}),module.exports=__toCommonJS(print_help_exports);var import_generate_for_cli=require("./generate-for-cli.cjs"),import_generate_for_subcommand=require("./generate-for-subcommand.cjs");function printCliHelp(e,r={}){console.log((0,import_generate_for_cli.generateCliHelpMessage)(e,r))}function printSubcommandHelp(e,r={},o=""){console.log((0,import_generate_for_subcommand.generateSubcommandHelpMessage)(e,r,o))}
2
+ //# sourceMappingURL=print-help.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["print_help_exports","__export","printCliHelp","printSubcommandHelp","module","exports","__toCommonJS","import_generate_for_cli","require","import_generate_for_subcommand","cliDefinition","options","console","log","generateCliHelpMessage","commandDefinition","cliName","generateSubcommandHelpMessage"],"sources":["../../../src/help-message/print-help.ts"],"sourcesContent":["import { generateCliHelpMessage } from \"./generate-for-cli.ts\";\nimport { generateSubcommandHelpMessage } from \"./generate-for-subcommand.ts\";\n\nimport type { Cli, Subcommand } from \"../types/definitions-types.ts\";\nimport type { PrintHelpOptions } from \"../types/help-message-types.ts\";\n\nexport function printCliHelp(cliDefinition: Cli, options: PrintHelpOptions = {}) {\n console.log(generateCliHelpMessage(cliDefinition, options));\n}\n\nexport function printSubcommandHelp(commandDefinition: Subcommand, options: PrintHelpOptions = {}, cliName = \"\") {\n console.log(generateSubcommandHelpMessage(commandDefinition, options, cliName));\n}\n"],"mappings":"8iBAAAA,mBAAA,GAAAC,SAAAD,mBAAA,CAAAE,aAAA,IAAAA,aAAAC,oBAAA,IAAAA,sBAAAC,OAAAC,QAAAC,aAAAN,oBAAA,IAAAO,wBAAuCC,QAAA,0BACvCC,+BAA8CD,QAAA,iCAKvC,SAASN,aAAaQ,EAAoBC,EAA4B,CAAC,GAC5EC,QAAQC,KAAA,EAAIN,wBAAAO,wBAAuBJ,EAAeC,GACpD,CAEO,SAASR,oBAAoBY,EAA+BJ,EAA4B,CAAC,EAAGK,EAAU,IAC3GJ,QAAQC,KAAA,EAAIJ,+BAAAQ,+BAA8BF,EAAmBJ,EAASK,GACxE","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var r in t)__defProp(e,r,{get:t[r],enumerable:!0})},__copyProps=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===r||__defProp(e,n,{get:()=>t[n],enumerable:!(o=__getOwnPropDesc(t,n))||o.enumerable});return e},__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),set_defaults_exports={};__export(set_defaults_exports,{setPrintHelpOptionsDefaults:()=>setPrintHelpOptionsDefaults}),module.exports=__toCommonJS(set_defaults_exports);var import_styles=require("./styles.cjs");function setPrintHelpOptionsDefaults(e){const t={...e};return t.style??(t.style=import_styles.helpMessageStyles.default),t.markdownRenderer??(t.markdownRenderer="terminal"),t.kebabCaseArgumentName??(t.kebabCaseArgumentName=!0),t.indentBeforeName??(t.indentBeforeName=2),t.indentAfterName??(t.indentAfterName=4),t.indentBeforePlaceholder??(t.indentBeforePlaceholder=1),t.newLineIndent??(t.newLineIndent=0),t.emptyLines??(t.emptyLines=0),t.emptyLinesBeforeTitle??(t.emptyLinesBeforeTitle=1),t.emptyLinesAfterTitle??(t.emptyLinesAfterTitle=0),t.exampleKeyword??(t.exampleKeyword="Example"),t.optionalKeyword??(t.optionalKeyword="(optional)"),t.defaultKeyword??(t.defaultKeyword="(default: {{ value }})"),t.usageTitle??(t.usageTitle="USAGE"),t.descriptionTitle??(t.descriptionTitle="DESCRIPTION"),t.commandsTitle??(t.commandsTitle="COMMANDS"),t.optionsTitle??(t.optionsTitle="OPTIONS"),t.argumentsTitle??(t.argumentsTitle="ARGUMENTS"),t.exampleTitle??(t.exampleTitle="EXAMPLE"),t}
2
+ //# sourceMappingURL=set-defaults.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["set_defaults_exports","__export","setPrintHelpOptionsDefaults","module","exports","__toCommonJS","import_styles","require","options","clone","style","helpMessageStyles","default","markdownRenderer","kebabCaseArgumentName","indentBeforeName","indentAfterName","indentBeforePlaceholder","newLineIndent","emptyLines","emptyLinesBeforeTitle","emptyLinesAfterTitle","exampleKeyword","optionalKeyword","defaultKeyword","usageTitle","descriptionTitle","commandsTitle","optionsTitle","argumentsTitle","exampleTitle"],"sources":["../../../src/help-message/set-defaults.ts"],"sourcesContent":["import { helpMessageStyles } from \"./styles.ts\";\n\nimport type { PrintHelpOptions } from \"../types/help-message-types.ts\";\nimport type { FormatOptions } from \"./generate-for-cli.ts\";\n\nexport function setPrintHelpOptionsDefaults(options: PrintHelpOptions) {\n const clone = { ...options };\n\n clone.style ??= helpMessageStyles.default;\n clone.markdownRenderer ??= \"terminal\";\n clone.kebabCaseArgumentName ??= true;\n\n clone.indentBeforeName ??= 2;\n clone.indentAfterName ??= 4;\n clone.indentBeforePlaceholder ??= 1;\n clone.newLineIndent ??= 0;\n\n clone.emptyLines ??= 0;\n clone.emptyLinesBeforeTitle ??= 1;\n clone.emptyLinesAfterTitle ??= 0;\n\n clone.exampleKeyword ??= \"Example\";\n clone.optionalKeyword ??= \"(optional)\";\n clone.defaultKeyword ??= \"(default: {{ value }})\";\n\n clone.usageTitle ??= \"USAGE\";\n clone.descriptionTitle ??= \"DESCRIPTION\";\n clone.commandsTitle ??= \"COMMANDS\";\n clone.optionsTitle ??= \"OPTIONS\";\n clone.argumentsTitle ??= \"ARGUMENTS\";\n clone.exampleTitle ??= \"EXAMPLE\";\n\n return clone as Required<FormatOptions>;\n}\n"],"mappings":"8iBAAAA,qBAAA,GAAAC,SAAAD,qBAAA,CAAAE,4BAAA,IAAAA,8BAAAC,OAAAC,QAAAC,aAAAL,sBAAA,IAAAM,cAAkCC,QAAA,gBAK3B,SAASL,4BAA4BM,GAC1C,MAAMC,EAAQ,IAAKD,GA0BnB,OAxBAC,EAAMC,QAAND,EAAMC,MAAUJ,cAAAK,kBAAkBC,SAClCH,EAAMI,mBAANJ,EAAMI,iBAAqB,YAC3BJ,EAAMK,wBAANL,EAAMK,uBAA0B,GAEhCL,EAAMM,mBAANN,EAAMM,iBAAqB,GAC3BN,EAAMO,kBAANP,EAAMO,gBAAoB,GAC1BP,EAAMQ,0BAANR,EAAMQ,wBAA4B,GAClCR,EAAMS,gBAANT,EAAMS,cAAkB,GAExBT,EAAMU,aAANV,EAAMU,WAAe,GACrBV,EAAMW,wBAANX,EAAMW,sBAA0B,GAChCX,EAAMY,uBAANZ,EAAMY,qBAAyB,GAE/BZ,EAAMa,iBAANb,EAAMa,eAAmB,WACzBb,EAAMc,kBAANd,EAAMc,gBAAoB,cAC1Bd,EAAMe,iBAANf,EAAMe,eAAmB,0BAEzBf,EAAMgB,aAANhB,EAAMgB,WAAe,SACrBhB,EAAMiB,mBAANjB,EAAMiB,iBAAqB,eAC3BjB,EAAMkB,gBAANlB,EAAMkB,cAAkB,YACxBlB,EAAMmB,eAANnB,EAAMmB,aAAiB,WACvBnB,EAAMoB,iBAANpB,EAAMoB,eAAmB,aACzBpB,EAAMqB,eAANrB,EAAMqB,aAAiB,WAEhBrB,CACT","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__defNormalProp=(e,l,t)=>l in e?__defProp(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,__export=(e,l)=>{for(var t in l)__defProp(e,t,{get:l[t],enumerable:!0})},__copyProps=(e,l,t,a)=>{if(l&&"object"==typeof l||"function"==typeof l)for(let o of __getOwnPropNames(l))__hasOwnProp.call(e,o)||o===t||__defProp(e,o,{get:()=>l[o],enumerable:!(a=__getOwnPropDesc(l,o))||a.enumerable});return e},__toESM=(e,l,t)=>(t=null!=e?__create(__getProtoOf(e)):{},__copyProps(!l&&e&&e.__esModule?t:__defProp(t,"default",{value:e,enumerable:!0}),e)),__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),__publicField=(e,l,t)=>__defNormalProp(e,"symbol"!=typeof l?l+"":l,t),styles_exports={};__export(styles_exports,{HelpMessageStyle:()=>HelpMessageStyle,helpMessageStyles:()=>helpMessageStyles}),module.exports=__toCommonJS(styles_exports);var import_chalk=__toESM(require("chalk"),1),_HelpMessageStyle=class e{constructor(l,t){__publicField(this,"title",e.noColor),__publicField(this,"description",e.noColor),__publicField(this,"default",e.noColor),__publicField(this,"optional",e.noColor),__publicField(this,"exampleTitle",e.noColor),__publicField(this,"example",e.noColor),__publicField(this,"command",e.noColor),__publicField(this,"option",e.noColor),__publicField(this,"argument",e.noColor),__publicField(this,"placeholder",e.noColor),__publicField(this,"punctuation",e.noColor),t&&Object.assign(this,t),Object.assign(this,l)}};__publicField(_HelpMessageStyle,"noColor",(...e)=>e.join(" "));var HelpMessageStyle=_HelpMessageStyle,helpMessageStyles=Object.freeze({default:new HelpMessageStyle({title:import_chalk.default.bold.blue,description:import_chalk.default.white,default:import_chalk.default.dim.italic,optional:import_chalk.default.dim.italic,exampleTitle:import_chalk.default.yellow,example:import_chalk.default.dim,command:import_chalk.default.yellow,option:import_chalk.default.cyan,argument:import_chalk.default.green,placeholder:import_chalk.default.hex("#FF9800"),punctuation:import_chalk.default.white.dim}),dracula:new HelpMessageStyle({title:import_chalk.default.bold.hex("#BD93F9"),description:import_chalk.default.hex("#F8F8F2"),default:import_chalk.default.italic.hex("#6272A4"),optional:import_chalk.default.italic.hex("#6272A4"),exampleTitle:import_chalk.default.hex("#FFB86C"),example:import_chalk.default.hex("#6272A4"),command:import_chalk.default.hex("#50FA7B"),option:import_chalk.default.hex("#8BE9FD"),argument:import_chalk.default.hex("#FF79C6"),placeholder:import_chalk.default.hex("#F1FA8C"),punctuation:import_chalk.default.hex("#6272A4")}),solarizedDark:new HelpMessageStyle({title:import_chalk.default.bold.hex("#268BD2"),description:import_chalk.default.hex("#93A1A1"),default:import_chalk.default.italic.hex("#586E75"),optional:import_chalk.default.italic.hex("#586E75"),exampleTitle:import_chalk.default.hex("#B58900"),example:import_chalk.default.hex("#586E75"),command:import_chalk.default.hex("#2AA198"),option:import_chalk.default.hex("#268BD2"),argument:import_chalk.default.hex("#859900"),placeholder:import_chalk.default.hex("#CB4B16"),punctuation:import_chalk.default.hex("#657B83")}),nord:new HelpMessageStyle({title:import_chalk.default.bold.hex("#81A1C1"),description:import_chalk.default.hex("#D8DEE9"),default:import_chalk.default.italic.hex("#4C566A"),optional:import_chalk.default.italic.hex("#4C566A"),exampleTitle:import_chalk.default.hex("#EBCB8B"),example:import_chalk.default.hex("#4C566A"),command:import_chalk.default.hex("#A3BE8C"),option:import_chalk.default.hex("#88C0D0"),argument:import_chalk.default.hex("#BF616A"),placeholder:import_chalk.default.hex("#D08770"),punctuation:import_chalk.default.hex("#4C566A")}),html:new HelpMessageStyle({title:(...e)=>`<span style="color: #89dceb; font-weight: bold;">${escapeHTML(e.join(" "))}</span>`,description:(...e)=>`<span style="color: #cdd6e8;">${escapeHTML(e.join(" "))}</span>`,default:(...e)=>`<span style="color: #6c7086; font-style: italic;">${escapeHTML(e.join(" "))}</span>`,optional:(...e)=>`<span style="color: #6c7086; font-style: italic;">${escapeHTML(e.join(" "))}</span>`,exampleTitle:(...e)=>`<span style="color: #f9e2af;">${escapeHTML(e.join(" "))}</span>`,example:(...e)=>`<span style="color: #6c7086;">${escapeHTML(e.join(" "))}</span>`,command:(...e)=>`<span style="color: #f9e2af;">${escapeHTML(e.join(" "))}</span>`,option:(...e)=>`<span style="color: #17b85d;">${escapeHTML(e.join(" "))}</span>`,argument:(...e)=>`<span style="color: #00ff00;">${escapeHTML(e.join(" "))}</span>`,placeholder:(...e)=>`<span style="color: #db9518;">${escapeHTML(e.join(" "))}</span>`,punctuation:(...e)=>`<span style="color: #6c7086;">${escapeHTML(e.join(" "))}</span>`}),gruvboxDark:new HelpMessageStyle({title:import_chalk.default.bold.hex("#FABD2F"),description:import_chalk.default.hex("#EBDBB2"),default:import_chalk.default.italic.hex("#928374"),optional:import_chalk.default.italic.hex("#928374"),exampleTitle:import_chalk.default.hex("#FE8019"),example:import_chalk.default.hex("#928374"),command:import_chalk.default.hex("#B8BB26"),option:import_chalk.default.hex("#83A598"),argument:import_chalk.default.hex("#D3869B"),placeholder:import_chalk.default.hex("#FB4934"),punctuation:import_chalk.default.hex("#928374")}),monokai:new HelpMessageStyle({title:import_chalk.default.bold.hex("#AE81FF"),description:import_chalk.default.hex("#F8F8F2"),default:import_chalk.default.italic.hex("#75715E"),optional:import_chalk.default.italic.hex("#75715E"),exampleTitle:import_chalk.default.hex("#FD971F"),example:import_chalk.default.hex("#75715E"),command:import_chalk.default.hex("#A6E22E"),option:import_chalk.default.hex("#66D9EF"),argument:import_chalk.default.hex("#F92672"),placeholder:import_chalk.default.hex("#E6DB74"),punctuation:import_chalk.default.hex("#75715E")}),oneDark:new HelpMessageStyle({title:import_chalk.default.bold.hex("#61AFEF"),description:import_chalk.default.hex("#ABB2BF"),default:import_chalk.default.italic.hex("#5C6370"),optional:import_chalk.default.italic.hex("#5C6370"),exampleTitle:import_chalk.default.hex("#E5C07B"),example:import_chalk.default.hex("#5C6370"),command:import_chalk.default.hex("#98C379"),option:import_chalk.default.hex("#56B6C2"),argument:import_chalk.default.hex("#E06C75"),placeholder:import_chalk.default.hex("#C678DD"),punctuation:import_chalk.default.hex("#5C6370")}),catppuccin:new HelpMessageStyle({title:import_chalk.default.bold.hex("#89B4FA"),description:import_chalk.default.hex("#CDD6F4"),default:import_chalk.default.italic.hex("#6C7086"),optional:import_chalk.default.italic.hex("#6C7086"),exampleTitle:import_chalk.default.hex("#F9E2AF"),example:import_chalk.default.hex("#6C7086"),command:import_chalk.default.hex("#A6E3A1"),option:import_chalk.default.hex("#94E2D5"),argument:import_chalk.default.hex("#F38BA8"),placeholder:import_chalk.default.hex("#FAB387"),punctuation:import_chalk.default.hex("#585B70")}),noColors:new HelpMessageStyle({})});function escapeHTML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}
2
+ //# sourceMappingURL=styles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["styles_exports","__export","HelpMessageStyle","helpMessageStyles","module","exports","__toCommonJS","import_chalk","__toESM","require","_HelpMessageStyle","constructor","style","baseStyle","__publicField","this","noColor","Object","assign","text","join","freeze","default","title","c","bold","blue","description","white","dim","italic","optional","exampleTitle","yellow","example","command","option","cyan","argument","green","placeholder","hex","punctuation","dracula","solarizedDark","nord","html","string","escapeHTML","gruvboxDark","monokai","oneDark","catppuccin","noColors","replace"],"sources":["../../../src/help-message/styles.ts"],"sourcesContent":["import c from \"chalk\";\n\nimport type { HelpMessageStyleImpl } from \"../types/help-message-types.ts\";\n\nexport class HelpMessageStyle implements HelpMessageStyleImpl {\n static noColor = (...text: unknown[]) => text.join(\" \");\n\n title = HelpMessageStyle.noColor;\n description = HelpMessageStyle.noColor;\n default = HelpMessageStyle.noColor;\n optional = HelpMessageStyle.noColor;\n exampleTitle = HelpMessageStyle.noColor;\n example = HelpMessageStyle.noColor;\n command = HelpMessageStyle.noColor;\n option = HelpMessageStyle.noColor;\n argument = HelpMessageStyle.noColor;\n placeholder = HelpMessageStyle.noColor;\n punctuation = HelpMessageStyle.noColor;\n\n constructor(style: Partial<HelpMessageStyleImpl>, baseStyle?: HelpMessageStyleImpl) {\n if (baseStyle) {\n Object.assign(this, baseStyle);\n }\n\n Object.assign(this, style);\n }\n}\n\nexport const helpMessageStyles = Object.freeze({\n default: new HelpMessageStyle({\n title: c.bold.blue,\n description: c.white,\n default: c.dim.italic,\n optional: c.dim.italic,\n exampleTitle: c.yellow,\n example: c.dim,\n command: c.yellow,\n option: c.cyan,\n argument: c.green,\n placeholder: c.hex(\"#FF9800\"),\n punctuation: c.white.dim,\n }),\n\n dracula: new HelpMessageStyle({\n title: c.bold.hex(\"#BD93F9\"),\n description: c.hex(\"#F8F8F2\"),\n default: c.italic.hex(\"#6272A4\"),\n optional: c.italic.hex(\"#6272A4\"),\n exampleTitle: c.hex(\"#FFB86C\"),\n example: c.hex(\"#6272A4\"),\n command: c.hex(\"#50FA7B\"),\n option: c.hex(\"#8BE9FD\"),\n argument: c.hex(\"#FF79C6\"),\n placeholder: c.hex(\"#F1FA8C\"),\n punctuation: c.hex(\"#6272A4\"),\n }),\n\n solarizedDark: new HelpMessageStyle({\n title: c.bold.hex(\"#268BD2\"),\n description: c.hex(\"#93A1A1\"),\n default: c.italic.hex(\"#586E75\"),\n optional: c.italic.hex(\"#586E75\"),\n exampleTitle: c.hex(\"#B58900\"),\n example: c.hex(\"#586E75\"),\n command: c.hex(\"#2AA198\"),\n option: c.hex(\"#268BD2\"),\n argument: c.hex(\"#859900\"),\n placeholder: c.hex(\"#CB4B16\"),\n punctuation: c.hex(\"#657B83\"),\n }),\n\n nord: new HelpMessageStyle({\n title: c.bold.hex(\"#81A1C1\"),\n description: c.hex(\"#D8DEE9\"),\n default: c.italic.hex(\"#4C566A\"),\n optional: c.italic.hex(\"#4C566A\"),\n exampleTitle: c.hex(\"#EBCB8B\"),\n example: c.hex(\"#4C566A\"),\n command: c.hex(\"#A3BE8C\"),\n option: c.hex(\"#88C0D0\"),\n argument: c.hex(\"#BF616A\"),\n placeholder: c.hex(\"#D08770\"),\n punctuation: c.hex(\"#4C566A\"),\n }),\n\n /**\n * - Wrap the output in a <pre> element to preserve whitespace.\n * - If using `descriptionMarkdown`, set `markdownRenderer` to `html` instead of `terminal`.\n */\n html: new HelpMessageStyle({\n title: (...string) => `<span style=\"color: #89dceb; font-weight: bold;\">${escapeHTML(string.join(\" \"))}</span>`,\n description: (...string) => `<span style=\"color: #cdd6e8;\">${escapeHTML(string.join(\" \"))}</span>`,\n default: (...string) => `<span style=\"color: #6c7086; font-style: italic;\">${escapeHTML(string.join(\" \"))}</span>`,\n optional: (...string) => `<span style=\"color: #6c7086; font-style: italic;\">${escapeHTML(string.join(\" \"))}</span>`,\n exampleTitle: (...string) => `<span style=\"color: #f9e2af;\">${escapeHTML(string.join(\" \"))}</span>`,\n example: (...string) => `<span style=\"color: #6c7086;\">${escapeHTML(string.join(\" \"))}</span>`,\n command: (...string) => `<span style=\"color: #f9e2af;\">${escapeHTML(string.join(\" \"))}</span>`,\n option: (...string) => `<span style=\"color: #17b85d;\">${escapeHTML(string.join(\" \"))}</span>`,\n argument: (...string) => `<span style=\"color: #00ff00;\">${escapeHTML(string.join(\" \"))}</span>`,\n placeholder: (...string) => `<span style=\"color: #db9518;\">${escapeHTML(string.join(\" \"))}</span>`,\n punctuation: (...string) => `<span style=\"color: #6c7086;\">${escapeHTML(string.join(\" \"))}</span>`,\n }),\n\n gruvboxDark: new HelpMessageStyle({\n title: c.bold.hex(\"#FABD2F\"),\n description: c.hex(\"#EBDBB2\"),\n default: c.italic.hex(\"#928374\"),\n optional: c.italic.hex(\"#928374\"),\n exampleTitle: c.hex(\"#FE8019\"),\n example: c.hex(\"#928374\"),\n command: c.hex(\"#B8BB26\"),\n option: c.hex(\"#83A598\"),\n argument: c.hex(\"#D3869B\"),\n placeholder: c.hex(\"#FB4934\"),\n punctuation: c.hex(\"#928374\"),\n }),\n\n monokai: new HelpMessageStyle({\n title: c.bold.hex(\"#AE81FF\"),\n description: c.hex(\"#F8F8F2\"),\n default: c.italic.hex(\"#75715E\"),\n optional: c.italic.hex(\"#75715E\"),\n exampleTitle: c.hex(\"#FD971F\"),\n example: c.hex(\"#75715E\"),\n command: c.hex(\"#A6E22E\"),\n option: c.hex(\"#66D9EF\"),\n argument: c.hex(\"#F92672\"),\n placeholder: c.hex(\"#E6DB74\"),\n punctuation: c.hex(\"#75715E\"),\n }),\n\n oneDark: new HelpMessageStyle({\n title: c.bold.hex(\"#61AFEF\"),\n description: c.hex(\"#ABB2BF\"),\n default: c.italic.hex(\"#5C6370\"),\n optional: c.italic.hex(\"#5C6370\"),\n exampleTitle: c.hex(\"#E5C07B\"),\n example: c.hex(\"#5C6370\"),\n command: c.hex(\"#98C379\"),\n option: c.hex(\"#56B6C2\"),\n argument: c.hex(\"#E06C75\"),\n placeholder: c.hex(\"#C678DD\"),\n punctuation: c.hex(\"#5C6370\"),\n }),\n\n catppuccin: new HelpMessageStyle({\n title: c.bold.hex(\"#89B4FA\"),\n description: c.hex(\"#CDD6F4\"),\n default: c.italic.hex(\"#6C7086\"),\n optional: c.italic.hex(\"#6C7086\"),\n exampleTitle: c.hex(\"#F9E2AF\"),\n example: c.hex(\"#6C7086\"),\n command: c.hex(\"#A6E3A1\"),\n option: c.hex(\"#94E2D5\"),\n argument: c.hex(\"#F38BA8\"),\n placeholder: c.hex(\"#FAB387\"),\n punctuation: c.hex(\"#585B70\"),\n }),\n\n noColors: new HelpMessageStyle({}),\n});\n\nfunction escapeHTML(string: string) {\n return string.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,t)=>{for(var r in t)__defProp(e,r,{get:t[r],enumerable:!0})},__copyProps=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of __getOwnPropNames(t))__hasOwnProp.call(e,o)||o===r||__defProp(e,o,{get:()=>t[o],enumerable:!(a=__getOwnPropDesc(t,o))||a.enumerable});return e},__toESM=(e,t,r)=>(r=null!=e?__create(__getProtoOf(e)):{},__copyProps(!t&&e&&e.__esModule?r:__defProp(r,"default",{value:e,enumerable:!0}),e)),__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),terminal_markdown_exports={};__export(terminal_markdown_exports,{terminalMarkdown:()=>terminalMarkdown}),module.exports=__toCommonJS(terminal_markdown_exports);var import_chalk=__toESM(require("chalk"),1),import_marked=require("marked"),markdownStyle={bold:import_chalk.default.bold,italic:import_chalk.default.italic,boldItalic:import_chalk.default.bold.italic,code:(...e)=>import_chalk.default.bgHex("#333333").whiteBright(` ${e.join(" ")} `),strikethrough:import_chalk.default.strikethrough,link:import_chalk.default.underline,listBullet:import_chalk.default.whiteBright,hr:import_chalk.default.dim,blockquote:(...e)=>import_chalk.default.dim.bold("┃ ")+import_chalk.default.dim(e.join("").replace(/\s\s\n/g," \n"+import_chalk.default.bold("┃ ")))};function styleCode(e){const t=e.split("\n"),r=Math.max(...t.map(e=>e.length)),a="┌"+"─".repeat(r+2)+"┐",o="└"+"─".repeat(r+2)+"┘",n=t.map(e=>import_chalk.default.dim("│ ")+import_chalk.default.dim(e).padEnd(r)+import_chalk.default.dim(" │")).join("\n");return[import_chalk.default.dim(a),n,import_chalk.default.dim(o)].join("\n")}var bullets=["•","◦","▪"],terminalRenderer={list(e){let t=0,r=e;for(;r.parent;)t++,r=r.parent;const a=e.ordered&&e.start?e.start:void 0;return"\n"+e.items.map(r=>this.listitem(Object.assign(r,{depth:t,parent:e,start:a}))).join("\n")},listitem(e){let t="";const r=e;for(const a of e.tokens)"list"===a.type&&(t+=this.parser.parse([Object.assign(a,{parent:r.parent})])),"tokens"in a&&Array.isArray(a.tokens)&&(t+=this.parser.parseInline(a.tokens));let a=" ".repeat(2*r.depth);if(r.task)return a+=r.checked?"☑ ":"☐ ",markdownStyle.listBullet(a)+t;if(void 0!==r.start){const e=r.parent.items.indexOf(r);return a+=r.start+e+". ",markdownStyle.listBullet(a)+t}return a+=bullets[r.depth%bullets.length]+" ",markdownStyle.listBullet(a)+t},link:e=>markdownStyle.link(e.text+" <"+e.href+">"),checkbox:({checked:e})=>e.toString(),code:e=>styleCode(e.text),codespan:({text:e})=>markdownStyle.code(e),def:({raw:e})=>e,del:({text:e})=>markdownStyle.strikethrough(e),paragraph({tokens:e}){return this.parser.parseInline(e)},blockquote:({text:e})=>markdownStyle.blockquote(e),strong({tokens:e}){return markdownStyle.bold(this.parser.parseInline(e))},em({tokens:e}){return markdownStyle.italic(this.parser.parseInline(e))},heading:({text:e})=>markdownStyle.bold(e)+"\n",text:e=>e.raw,space:e=>e.raw.replace(/\n+/g,"\n"),hr:()=>markdownStyle.hr("─".repeat(80)),br:()=>"\n"},terminalMarked=new import_marked.Marked;function terminalMarkdown(e,t="terminal",r=(...e)=>e.join(" ")){if(!e)return"";if("terminal"===t)return r(terminalMarked.parse(e));return`<span class="_markdown">${import_marked.marked.parse(e).trim()}</span>`}terminalMarked.use({renderer:terminalRenderer});
2
+ //# sourceMappingURL=terminal-markdown.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["terminal_markdown_exports","__export","terminalMarkdown","module","exports","__toCommonJS","import_chalk","__toESM","require","import_marked","markdownStyle","bold","c","italic","boldItalic","code","string","bgHex","whiteBright","join","strikethrough","link","underline","listBullet","hr","dim","blockquote","replace","styleCode","text","lines","split","width","Math","max","map","l","length","top","repeat","bottom","body","padEnd","bullets","terminalRenderer","list","token","depth","current","parent","start","ordered","items","item","this","listitem","Object","assign","itemCast","tokens","type","parser","parse","Array","isArray","parseInline","prefix","task","checked","findItemIndex","indexOf","href","checkbox","toString","codespan","def","raw","del","paragraph","strong","em","heading","space","br","terminalMarked","Marked","renderer","ansiTextColor","marked","trim","use"],"sources":["../../../src/help-message/terminal-markdown.ts"],"sourcesContent":["import c from \"chalk\";\nimport { Marked, type RendererObject, type Tokens, marked } from \"marked\";\n\nimport type { ColorFunctionType } from \"../types/help-message-types.ts\";\n\nconst markdownStyle: Record<string, ColorFunctionType> = {\n bold: c.bold,\n italic: c.italic,\n boldItalic: c.bold.italic,\n code: (...string) => c.bgHex(\"#333333\").whiteBright(` ${string.join(\" \")} `),\n strikethrough: c.strikethrough,\n link: c.underline,\n listBullet: c.whiteBright,\n hr: c.dim,\n blockquote: (...string) => c.dim.bold(\"┃ \") + c.dim(string.join(\"\").replace(/\\s\\s\\n/g, \" \\n\" + c.bold(\"┃ \"))),\n};\n\nfunction styleCode(text: string) {\n const lines = text.split(\"\\n\");\n const width = Math.max(...lines.map(l => l.length));\n const top = \"┌\" + \"─\".repeat(width + 2) + \"┐\";\n const bottom = \"└\" + \"─\".repeat(width + 2) + \"┘\";\n\n const body = lines.map(l => c.dim(\"│ \") + c.dim(l).padEnd(width) + c.dim(\" │\")).join(\"\\n\");\n\n return [c.dim(top), body, c.dim(bottom)].join(\"\\n\");\n}\n\nconst bullets = [\"•\", \"◦\", \"▪\"];\n\nconst terminalRenderer: RendererObject<string, string> = {\n list(token) {\n // figure out depth\n let depth = 0;\n let current = token as Tokens.List & { parent: Tokens.List };\n while (current.parent) {\n depth++;\n current = current.parent as Tokens.List & { parent: Tokens.List };\n }\n\n // for ordered lists\n const start = token.ordered && token.start ? token.start : undefined;\n\n const items = token.items.map(item => this.listitem(Object.assign(item, { depth, parent: token, start })));\n return \"\\n\" + items.join(\"\\n\");\n },\n listitem(item) {\n let string = \"\";\n\n const itemCast = item as Tokens.ListItem & { parent: Tokens.List; depth: number; start?: number };\n\n for (const token of item.tokens) {\n if (token.type === \"list\") {\n string += this.parser.parse([Object.assign(token, { parent: itemCast.parent })]);\n }\n\n if (\"tokens\" in token && Array.isArray(token.tokens)) {\n string += this.parser.parseInline(token.tokens);\n }\n }\n\n let prefix = \" \".repeat(itemCast.depth * 2);\n\n // Task\n if (itemCast.task) {\n prefix += itemCast.checked ? \"☑ \" : \"☐ \";\n return markdownStyle.listBullet(prefix) + string;\n }\n\n // Ordered\n if (itemCast.start !== undefined) {\n const findItemIndex = itemCast.parent.items.indexOf(itemCast);\n prefix += itemCast.start + findItemIndex + \". \";\n return markdownStyle.listBullet(prefix) + string;\n }\n\n // Unordered\n prefix += bullets[itemCast.depth % bullets.length] + \" \";\n return markdownStyle.listBullet(prefix) + string;\n },\n link(token) {\n return markdownStyle.link(token.text + \" \" + \"<\" + token.href + \">\");\n },\n checkbox({ checked }) {\n return checked.toString();\n },\n code(token) {\n return styleCode(token.text);\n },\n codespan({ text }) {\n return markdownStyle.code(text);\n },\n def({ raw }) {\n return raw;\n },\n del({ text }) {\n return markdownStyle.strikethrough(text);\n },\n paragraph({ tokens }) {\n return this.parser.parseInline(tokens);\n },\n blockquote({ text }) {\n return markdownStyle.blockquote(text);\n },\n strong({ tokens }) {\n return markdownStyle.bold(this.parser.parseInline(tokens));\n },\n em({ tokens }) {\n return markdownStyle.italic(this.parser.parseInline(tokens));\n },\n heading({ text }) {\n return markdownStyle.bold(text) + \"\\n\";\n },\n text(token) {\n return token.raw;\n },\n space(token) {\n return token.raw.replace(/\\n+/g, \"\\n\");\n },\n hr() {\n return markdownStyle.hr(\"─\".repeat(80));\n },\n br() {\n return \"\\n\";\n },\n};\n\nconst terminalMarked = new Marked();\nterminalMarked.use({ renderer: terminalRenderer });\n\nexport function terminalMarkdown(\n text: string,\n renderer: \"terminal\" | \"html\" = \"terminal\",\n ansiTextColor: ColorFunctionType = (...string) => string.join(\" \"),\n): string {\n if (!text) {\n return \"\";\n }\n\n if (renderer === \"terminal\") {\n return ansiTextColor(terminalMarked.parse(text) as string);\n }\n\n const htmlString = marked.parse(text) as string;\n\n return `<span class=\"_markdown\">${htmlString.trim()}</span>`;\n}\n"],"mappings":"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","ignoreList":[]}