zod-args-parser 1.2.3 → 1.2.5

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 (50) hide show
  1. package/README.md +13 -7
  2. package/lib/commonjs/help-message/format-arguments.js +1 -1
  3. package/lib/commonjs/help-message/format-arguments.js.map +1 -1
  4. package/lib/commonjs/help-message/format-cli.js +1 -1
  5. package/lib/commonjs/help-message/format-cli.js.map +1 -1
  6. package/lib/commonjs/help-message/format-options.js +1 -1
  7. package/lib/commonjs/help-message/format-options.js.map +1 -1
  8. package/lib/commonjs/help-message/format-subcommands.js +1 -1
  9. package/lib/commonjs/help-message/format-subcommands.js.map +1 -1
  10. package/lib/commonjs/index.js +1 -1
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/markdown/generate-markdown.js +1 -1
  13. package/lib/commonjs/markdown/generate-markdown.js.map +1 -1
  14. package/lib/commonjs/parser/validate/validate-type.js.map +1 -1
  15. package/lib/commonjs/utils.js +1 -1
  16. package/lib/commonjs/utils.js.map +1 -1
  17. package/lib/module/help-message/format-arguments.js +1 -1
  18. package/lib/module/help-message/format-arguments.js.map +1 -1
  19. package/lib/module/help-message/format-cli.js +1 -1
  20. package/lib/module/help-message/format-cli.js.map +1 -1
  21. package/lib/module/help-message/format-options.js +1 -1
  22. package/lib/module/help-message/format-options.js.map +1 -1
  23. package/lib/module/help-message/format-subcommands.js +1 -1
  24. package/lib/module/help-message/format-subcommands.js.map +1 -1
  25. package/lib/module/index.js +1 -1
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/module/markdown/generate-markdown.js +1 -1
  28. package/lib/module/markdown/generate-markdown.js.map +1 -1
  29. package/lib/module/parser/validate/validate-type.js.map +1 -1
  30. package/lib/module/utils.js +1 -1
  31. package/lib/module/utils.js.map +1 -1
  32. package/lib/typescript/help-message/format-subcommands.d.ts.map +1 -1
  33. package/lib/typescript/index.d.ts +3 -3
  34. package/lib/typescript/index.d.ts.map +1 -1
  35. package/lib/typescript/parser/validate/validate-type.d.ts +3 -3
  36. package/lib/typescript/parser/validate/validate-type.d.ts.map +1 -1
  37. package/lib/typescript/types.d.ts +51 -14
  38. package/lib/typescript/types.d.ts.map +1 -1
  39. package/lib/typescript/utils.d.ts +3 -0
  40. package/lib/typescript/utils.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/help-message/format-arguments.ts +2 -2
  43. package/src/help-message/format-cli.ts +5 -5
  44. package/src/help-message/format-options.ts +2 -2
  45. package/src/help-message/format-subcommands.ts +3 -4
  46. package/src/index.ts +3 -3
  47. package/src/markdown/generate-markdown.ts +2 -2
  48. package/src/parser/validate/validate-type.ts +3 -3
  49. package/src/types.ts +61 -15
  50. package/src/utils.ts +26 -0
@@ -1 +1 @@
1
- export function createCli(input){const setAction=action=>{if(typeof input==="string")return;input.action=action;};const setPreValidationHook=hook=>{if(typeof input==="string")return;input.preValidation=hook;};return Object.assign(input,{setAction,setPreValidationHook});}export function createSubcommand(input){const setAction=action=>{if(typeof input==="string")return;input.action=action;};const setPreValidationHook=hook=>{if(typeof input==="string")return;input.preValidation=hook;};return Object.assign(input,{setAction,setPreValidationHook});}export function createOptions(options){return options;}export function createArguments(args){return args;}export{formatCliHelpMsg,printCliHelp,formatSubcommandHelpMsg,printSubcommandHelp}from"./help-message/format-cli.js";export{helpMsgStyles}from"./help-message/styles.js";export{unsafeParse as parse,unsafeParseAsync as parseAsync}from"./parser/unsafe-parse.js";export{safeParse,safeParseAsync}from"./parser/safe-parse.js";export{isOptionalSchema,schemaDefaultValue,stringToArray,stringToSet}from"./zod-utils.js";export{generateBashAutocompleteScript}from"./autocomplete-scripts/bash-autocomplete-script.js";export{generatePowerShellAutocompleteScript}from"./autocomplete-scripts/powershell-autocomplete-script.js";export{generateZshAutocompleteScript}from"./autocomplete-scripts/zsh-autocomplete-script.js";export{getArgumentsMetadata}from"./metadata/get-arguments-metadata.js";export{getCliMetadata}from"./metadata/get-cli-metadata.js";export{getOptionsMetadata}from"./metadata/get-options-metadata.js";export{getSubcommandsMetadata}from"./metadata/get-subcommands-metadata.js";export{generateMarkdown}from"./markdown/generate-markdown.js";
1
+ export function createCli(input){const setAction=action=>{if(typeof input==="string")return;input.action=action;};const setPreValidationHook=hook=>{if(typeof input==="string")return;input.preValidation=hook;};return Object.assign(input,{setAction,setPreValidationHook});}export function createSubcommand(input){const setAction=action=>{if(typeof input==="string")return;input.action=action;};const setPreValidationHook=hook=>{if(typeof input==="string")return;input.preValidation=hook;};return Object.assign(input,{setAction,setPreValidationHook});}export function createOptions(options){return options;}export function createArguments(args){return args;}export{formatCliHelpMsg,formatSubcommandHelpMsg,printCliHelp,printSubcommandHelp}from"./help-message/format-cli.js";export{helpMsgStyles}from"./help-message/styles.js";export{safeParse,safeParseAsync}from"./parser/safe-parse.js";export{unsafeParse as parse,unsafeParseAsync as parseAsync}from"./parser/unsafe-parse.js";export{isOptionalSchema,schemaDefaultValue,stringToArray,stringToSet}from"./zod-utils.js";export{generateBashAutocompleteScript}from"./autocomplete-scripts/bash-autocomplete-script.js";export{generatePowerShellAutocompleteScript}from"./autocomplete-scripts/powershell-autocomplete-script.js";export{generateZshAutocompleteScript}from"./autocomplete-scripts/zsh-autocomplete-script.js";export{getArgumentsMetadata}from"./metadata/get-arguments-metadata.js";export{getCliMetadata}from"./metadata/get-cli-metadata.js";export{getOptionsMetadata}from"./metadata/get-options-metadata.js";export{getSubcommandsMetadata}from"./metadata/get-subcommands-metadata.js";export{generateMarkdown}from"./markdown/generate-markdown.js";
@@ -1 +1 @@
1
- {"version":3,"names":["createCli","input","setAction","action","setPreValidationHook","hook","preValidation","Object","assign","createSubcommand","createOptions","options","createArguments","args","formatCliHelpMsg","printCliHelp","formatSubcommandHelpMsg","printSubcommandHelp","helpMsgStyles","unsafeParse","parse","unsafeParseAsync","parseAsync","safeParse","safeParseAsync","isOptionalSchema","schemaDefaultValue","stringToArray","stringToSet","generateBashAutocompleteScript","generatePowerShellAutocompleteScript","generateZshAutocompleteScript","getArgumentsMetadata","getCliMetadata","getOptionsMetadata","getSubcommandsMetadata","generateMarkdown"],"sourceRoot":"../../src","sources":["index.ts"],"sourcesContent":["import type {\n ActionsFn,\n Argument,\n CheckArgumentsOptional,\n CheckDuplicatedArguments,\n CheckDuplicatedOptions,\n Cli,\n Option,\n Prettify,\n Subcommand,\n} from \"./types.js\";\n\n/**\n * - Insures that there are no duplicated options\n * - Insures that there are no duplicated arguments\n * - Insures that only the last argument is optional\n * - Insures no optional arguments are allowed when `allowPositional` is enabled\n */\ntype CheckCliSubcommandInput<T extends Cli | Subcommand> =\n CheckDuplicatedOptions<T> extends infer Err extends string\n ? Err\n : CheckDuplicatedArguments<T> extends infer Err extends string\n ? Err\n : CheckArgumentsOptional<T> extends infer Err extends string\n ? Err\n : T;\n\nexport function createCli<const T extends Cli>(input: CheckCliSubcommandInput<T>) {\n const setAction = (action: (res: any) => any) => {\n if (typeof input === \"string\") return;\n input.action = action;\n };\n\n const setPreValidationHook = (hook: (ctx: any) => any) => {\n if (typeof input === \"string\") return;\n input.preValidation = hook;\n };\n\n return Object.assign(input, { setAction, setPreValidationHook }) as Prettify<typeof input & ActionsFn<T>>;\n}\n\nexport function createSubcommand<const T extends Subcommand>(input: CheckCliSubcommandInput<T>) {\n const setAction = (action: (res: any) => any) => {\n if (typeof input === \"string\") return;\n input.action = action as T[\"action\"];\n };\n\n const setPreValidationHook = (hook: (ctx: any) => any) => {\n if (typeof input === \"string\") return;\n input.preValidation = hook;\n };\n\n return Object.assign(input, { setAction, setPreValidationHook }) as Prettify<typeof input & ActionsFn<T>>;\n}\n\n/** - Insures that there are no duplicated options */\ntype CheckOptionsInput<T extends Option[]> =\n CheckDuplicatedOptions<{ options: T }> extends infer Err extends string ? Err : T;\n\nexport function createOptions<const T extends [Option, ...Option[]]>(options: CheckOptionsInput<T>) {\n return options;\n}\n\n/** - Insures that only the last argument is optional */\ntype CheckArgumentsInput<T extends Argument[]> =\n CheckArgumentsOptional<{ arguments: T }> extends infer Err extends string ? Err : T;\n\nexport function createArguments<const T extends [Argument, ...Argument[]]>(args: CheckArgumentsInput<T>) {\n return args;\n}\n\nexport {\n formatCliHelpMsg,\n printCliHelp,\n formatSubcommandHelpMsg,\n printSubcommandHelp,\n} from \"./help-message/format-cli.js\";\nexport { helpMsgStyles } from \"./help-message/styles.js\";\n\nexport { unsafeParse as parse, unsafeParseAsync as parseAsync } from \"./parser/unsafe-parse.js\";\nexport { safeParse, safeParseAsync } from \"./parser/safe-parse.js\";\n\nexport { isOptionalSchema, schemaDefaultValue, stringToArray, stringToSet } from \"./zod-utils.js\";\n\nexport { generateBashAutocompleteScript } from \"./autocomplete-scripts/bash-autocomplete-script.js\";\nexport { generatePowerShellAutocompleteScript } from \"./autocomplete-scripts/powershell-autocomplete-script.js\";\nexport { generateZshAutocompleteScript } from \"./autocomplete-scripts/zsh-autocomplete-script.js\";\n\nexport { getArgumentsMetadata } from \"./metadata/get-arguments-metadata.js\";\nexport { getCliMetadata } from \"./metadata/get-cli-metadata.js\";\nexport { getOptionsMetadata } from \"./metadata/get-options-metadata.js\";\nexport { getSubcommandsMetadata } from \"./metadata/get-subcommands-metadata.js\";\n\nexport { generateMarkdown } from \"./markdown/generate-markdown.js\";\n\nexport type * from \"./types.js\";\nexport type * from \"./metadata/metadata-types.js\";\n"],"mappings":"AA2BA,MAAO,SAAS,CAAAA,SAASA,CAAsBC,KAAiC,CAAE,CAChF,KAAM,CAAAC,SAAS,CAAIC,MAAyB,EAAK,CAC/C,GAAI,MAAO,CAAAF,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACE,MAAM,CAAGA,MAAM,CACvB,CAAC,CAED,KAAM,CAAAC,oBAAoB,CAAIC,IAAuB,EAAK,CACxD,GAAI,MAAO,CAAAJ,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACK,aAAa,CAAGD,IAAI,CAC5B,CAAC,CAED,MAAO,CAAAE,MAAM,CAACC,MAAM,CAACP,KAAK,CAAE,CAAEC,SAAS,CAAEE,oBAAqB,CAAC,CAAC,CAClE,CAEA,MAAO,SAAS,CAAAK,gBAAgBA,CAA6BR,KAAiC,CAAE,CAC9F,KAAM,CAAAC,SAAS,CAAIC,MAAyB,EAAK,CAC/C,GAAI,MAAO,CAAAF,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACE,MAAM,CAAGA,MAAqB,CACtC,CAAC,CAED,KAAM,CAAAC,oBAAoB,CAAIC,IAAuB,EAAK,CACxD,GAAI,MAAO,CAAAJ,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACK,aAAa,CAAGD,IAAI,CAC5B,CAAC,CAED,MAAO,CAAAE,MAAM,CAACC,MAAM,CAACP,KAAK,CAAE,CAAEC,SAAS,CAAEE,oBAAqB,CAAC,CAAC,CAClE,CAMA,MAAO,SAAS,CAAAM,aAAaA,CAAwCC,OAA6B,CAAE,CAClG,MAAO,CAAAA,OAAO,CAChB,CAMA,MAAO,SAAS,CAAAC,eAAeA,CAA4CC,IAA4B,CAAE,CACvG,MAAO,CAAAA,IAAI,CACb,CAEA,OACEC,gBAAgB,CAChBC,YAAY,CACZC,uBAAuB,CACvBC,mBAAmB,KACd,8BAA8B,CACrC,OAASC,aAAa,KAAQ,0BAA0B,CAExD,OAASC,WAAW,GAAI,CAAAC,KAAK,CAAEC,gBAAgB,GAAI,CAAAC,UAAU,KAAQ,0BAA0B,CAC/F,OAASC,SAAS,CAAEC,cAAc,KAAQ,wBAAwB,CAElE,OAASC,gBAAgB,CAAEC,kBAAkB,CAAEC,aAAa,CAAEC,WAAW,KAAQ,gBAAgB,CAEjG,OAASC,8BAA8B,KAAQ,oDAAoD,CACnG,OAASC,oCAAoC,KAAQ,0DAA0D,CAC/G,OAASC,6BAA6B,KAAQ,mDAAmD,CAEjG,OAASC,oBAAoB,KAAQ,sCAAsC,CAC3E,OAASC,cAAc,KAAQ,gCAAgC,CAC/D,OAASC,kBAAkB,KAAQ,oCAAoC,CACvE,OAASC,sBAAsB,KAAQ,wCAAwC,CAE/E,OAASC,gBAAgB,KAAQ,iCAAiC","ignoreList":[]}
1
+ {"version":3,"names":["createCli","input","setAction","action","setPreValidationHook","hook","preValidation","Object","assign","createSubcommand","createOptions","options","createArguments","args","formatCliHelpMsg","formatSubcommandHelpMsg","printCliHelp","printSubcommandHelp","helpMsgStyles","safeParse","safeParseAsync","unsafeParse","parse","unsafeParseAsync","parseAsync","isOptionalSchema","schemaDefaultValue","stringToArray","stringToSet","generateBashAutocompleteScript","generatePowerShellAutocompleteScript","generateZshAutocompleteScript","getArgumentsMetadata","getCliMetadata","getOptionsMetadata","getSubcommandsMetadata","generateMarkdown"],"sourceRoot":"../../src","sources":["index.ts"],"sourcesContent":["import type {\n ActionsFn,\n Argument,\n CheckArgumentsOptional,\n CheckDuplicatedArguments,\n CheckDuplicatedOptions,\n Cli,\n Option,\n Prettify,\n Subcommand,\n} from \"./types.js\";\n\n/**\n * - Insures that there are no duplicated options\n * - Insures that there are no duplicated arguments\n * - Insures that only the last argument is optional\n * - Insures no optional arguments are allowed when `allowPositional` is enabled\n */\ntype CheckCliSubcommandInput<T extends Cli | Subcommand> =\n CheckDuplicatedOptions<T> extends infer Err extends string\n ? Err\n : CheckDuplicatedArguments<T> extends infer Err extends string\n ? Err\n : CheckArgumentsOptional<T> extends infer Err extends string\n ? Err\n : T;\n\nexport function createCli<const T extends Cli>(input: CheckCliSubcommandInput<T>) {\n const setAction = (action: (res: any) => any) => {\n if (typeof input === \"string\") return;\n input.action = action;\n };\n\n const setPreValidationHook = (hook: (ctx: any) => any) => {\n if (typeof input === \"string\") return;\n input.preValidation = hook;\n };\n\n return Object.assign(input, { setAction, setPreValidationHook }) as Prettify<typeof input & ActionsFn<T>>;\n}\n\nexport function createSubcommand<const T extends Subcommand>(input: CheckCliSubcommandInput<T>) {\n const setAction = (action: (res: any) => any) => {\n if (typeof input === \"string\") return;\n input.action = action as T[\"action\"];\n };\n\n const setPreValidationHook = (hook: (ctx: any) => any) => {\n if (typeof input === \"string\") return;\n input.preValidation = hook;\n };\n\n return Object.assign(input, { setAction, setPreValidationHook }) as Prettify<typeof input & ActionsFn<T>>;\n}\n\n/** - Insures that there are no duplicated options */\ntype CheckOptionsInput<T extends Option[]> =\n CheckDuplicatedOptions<{ options: T }> extends infer Err extends string ? Err : T;\n\nexport function createOptions<const T extends [Option, ...Option[]]>(options: CheckOptionsInput<T>) {\n return options;\n}\n\n/** - Insures that only the last argument is optional */\ntype CheckArgumentsInput<T extends Argument[]> =\n CheckArgumentsOptional<{ arguments: T }> extends infer Err extends string ? Err : T;\n\nexport function createArguments<const T extends [Argument, ...Argument[]]>(args: CheckArgumentsInput<T>) {\n return args;\n}\n\nexport {\n formatCliHelpMsg,\n formatSubcommandHelpMsg,\n printCliHelp,\n printSubcommandHelp,\n} from \"./help-message/format-cli.js\";\nexport { helpMsgStyles } from \"./help-message/styles.js\";\n\nexport { safeParse, safeParseAsync } from \"./parser/safe-parse.js\";\nexport { unsafeParse as parse, unsafeParseAsync as parseAsync } from \"./parser/unsafe-parse.js\";\n\nexport { isOptionalSchema, schemaDefaultValue, stringToArray, stringToSet } from \"./zod-utils.js\";\n\nexport { generateBashAutocompleteScript } from \"./autocomplete-scripts/bash-autocomplete-script.js\";\nexport { generatePowerShellAutocompleteScript } from \"./autocomplete-scripts/powershell-autocomplete-script.js\";\nexport { generateZshAutocompleteScript } from \"./autocomplete-scripts/zsh-autocomplete-script.js\";\n\nexport { getArgumentsMetadata } from \"./metadata/get-arguments-metadata.js\";\nexport { getCliMetadata } from \"./metadata/get-cli-metadata.js\";\nexport { getOptionsMetadata } from \"./metadata/get-options-metadata.js\";\nexport { getSubcommandsMetadata } from \"./metadata/get-subcommands-metadata.js\";\n\nexport { generateMarkdown } from \"./markdown/generate-markdown.js\";\n\nexport type * from \"./metadata/metadata-types.js\";\nexport type * from \"./types.js\";\n"],"mappings":"AA2BA,MAAO,SAAS,CAAAA,SAASA,CAAsBC,KAAiC,CAAE,CAChF,KAAM,CAAAC,SAAS,CAAIC,MAAyB,EAAK,CAC/C,GAAI,MAAO,CAAAF,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACE,MAAM,CAAGA,MAAM,CACvB,CAAC,CAED,KAAM,CAAAC,oBAAoB,CAAIC,IAAuB,EAAK,CACxD,GAAI,MAAO,CAAAJ,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACK,aAAa,CAAGD,IAAI,CAC5B,CAAC,CAED,MAAO,CAAAE,MAAM,CAACC,MAAM,CAACP,KAAK,CAAE,CAAEC,SAAS,CAAEE,oBAAqB,CAAC,CAAC,CAClE,CAEA,MAAO,SAAS,CAAAK,gBAAgBA,CAA6BR,KAAiC,CAAE,CAC9F,KAAM,CAAAC,SAAS,CAAIC,MAAyB,EAAK,CAC/C,GAAI,MAAO,CAAAF,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACE,MAAM,CAAGA,MAAqB,CACtC,CAAC,CAED,KAAM,CAAAC,oBAAoB,CAAIC,IAAuB,EAAK,CACxD,GAAI,MAAO,CAAAJ,KAAK,GAAK,QAAQ,CAAE,OAC/BA,KAAK,CAACK,aAAa,CAAGD,IAAI,CAC5B,CAAC,CAED,MAAO,CAAAE,MAAM,CAACC,MAAM,CAACP,KAAK,CAAE,CAAEC,SAAS,CAAEE,oBAAqB,CAAC,CAAC,CAClE,CAMA,MAAO,SAAS,CAAAM,aAAaA,CAAwCC,OAA6B,CAAE,CAClG,MAAO,CAAAA,OAAO,CAChB,CAMA,MAAO,SAAS,CAAAC,eAAeA,CAA4CC,IAA4B,CAAE,CACvG,MAAO,CAAAA,IAAI,CACb,CAEA,OACEC,gBAAgB,CAChBC,uBAAuB,CACvBC,YAAY,CACZC,mBAAmB,KACd,8BAA8B,CACrC,OAASC,aAAa,KAAQ,0BAA0B,CAExD,OAASC,SAAS,CAAEC,cAAc,KAAQ,wBAAwB,CAClE,OAASC,WAAW,GAAI,CAAAC,KAAK,CAAEC,gBAAgB,GAAI,CAAAC,UAAU,KAAQ,0BAA0B,CAE/F,OAASC,gBAAgB,CAAEC,kBAAkB,CAAEC,aAAa,CAAEC,WAAW,KAAQ,gBAAgB,CAEjG,OAASC,8BAA8B,KAAQ,oDAAoD,CACnG,OAASC,oCAAoC,KAAQ,0DAA0D,CAC/G,OAASC,6BAA6B,KAAQ,mDAAmD,CAEjG,OAASC,oBAAoB,KAAQ,sCAAsC,CAC3E,OAASC,cAAc,KAAQ,gCAAgC,CAC/D,OAASC,kBAAkB,KAAQ,oCAAoC,CACvE,OAASC,sBAAsB,KAAQ,wCAAwC,CAE/E,OAASC,gBAAgB,KAAQ,iCAAiC","ignoreList":[]}
@@ -1 +1 @@
1
- import{getCliMetadata}from"../metadata/get-cli-metadata.js";export function generateMarkdown(...params){const metadata=getCliMetadata(params);let md="<!-- Auto-generated by zod-args-parser -->\n\n";md+=`# ${metadata.name}\n\n`;if(metadata.description){md+=`${metadata.description}\n`;}if(metadata.example){md+=renderExamples(metadata.example);}if(metadata.options.length){md+="\n## Options:\n\n";md+=renderOptions(metadata.options,3);}if(metadata.arguments.length){md+="\n## Arguments:\n\n";md+=renderArguments(metadata.arguments,3);}if(metadata.subcommands.length){md+="\n## Subcommands:\n\n";md+=renderSubcommands(metadata.subcommands);}return md;}function renderExamples(examples,list=false){let outStr="";const lang="bash";const listIndent=" ".repeat(list?2:0);outStr+="\n"+(list?"- ":"");outStr+="```"+lang+"\n";outStr+=listIndent+examples.replace(/\n/g,"\n"+listIndent);outStr+="\n"+listIndent+"```\n";return outStr;}function renderOptions(optionsMetadata=[],h){let outStr="";for(let i=0;i<optionsMetadata.length;i++){const metadata=optionsMetadata[i];const aliases=[metadata.nameAsArg].concat(metadata.aliasesAsArgs).join(", ");const placeholder=metadata.placeholder&&` ${metadata.placeholder}`;outStr+=`${"#".repeat(h)} \`${aliases+placeholder}\``;if(metadata.optional){outStr+=" **[optional]**";}outStr+="\n\n";if(metadata.description){outStr+=`- ${metadata.description}\n`;}if(typeof metadata.defaultValue!=="undefined"){outStr+=`- **default:** \`${metadata.defaultValueAsString}\`\n`;}if(metadata.example){outStr+=renderExamples(metadata.example,true);}if(i<optionsMetadata.length-1){outStr+="\n";}}return outStr;}function renderArguments(argsMetadata=[],h){let outStr="";for(let i=0;i<argsMetadata.length;i++){const metadata=argsMetadata[i];outStr+=`${"#".repeat(h)} \`${metadata.name}\``;if(metadata.optional){outStr+=" **[optional]**";}outStr+="\n\n";if(metadata.description){outStr+=`- ${metadata.description}\n`;}if(typeof metadata.defaultValue!=="undefined"){outStr+=`- **default:** \`${metadata.defaultValueAsString}\`\n`;}if(metadata.example){outStr+=renderExamples(metadata.example);}if(i<argsMetadata.length-1){outStr+="\n";}}return outStr;}function renderSubcommands(subcommandsMetadata){let outStr="";for(let i=0;i<subcommandsMetadata.length;i++){const metadata=subcommandsMetadata[i];const aliases=[metadata.name].concat(metadata.aliases).join(", ");const placeholder=metadata.placeholder&&` ${escapeTags(metadata.placeholder)}`;outStr+=`### ${aliases+placeholder}\n\n`;if(metadata.description){outStr+=`${metadata.description}\n`;}if(metadata.example){outStr+=renderExamples(metadata.example);}if(metadata.options.length){outStr+="\n#### Options:\n\n";outStr+=renderOptions(metadata.options,4);}if(metadata.arguments.length){outStr+="\n#### Arguments:\n\n";outStr+=renderArguments(metadata.arguments,4);}if(i<subcommandsMetadata.length-1){outStr+="\n---\n\n";}}return outStr;}function escapeTags(str){return str.replace(/</g,"&lt;").replace(/>/g,"&gt;");}
1
+ import{getCliMetadata}from"../metadata/get-cli-metadata.js";export function generateMarkdown(...params){const metadata=getCliMetadata(params);let md="<!-- Auto-generated by zod-args-parser -->\n\n";md+=`# ${metadata.name}\n\n`;if(metadata.description){md+=`${metadata.description}\n`;}if(metadata.example){md+=renderExamples(metadata.example);}if(metadata.options.length){md+="\n## Options:\n\n";md+=renderOptions(metadata.options,3);}if(metadata.arguments.length){md+="\n## Arguments:\n\n";md+=renderArguments(metadata.arguments,3);}if(metadata.subcommands.length){md+="\n## Subcommands:\n\n";md+=renderSubcommands(metadata.subcommands);}return md;}function renderExamples(examples,list=false){let outStr="";const lang="bash";const listIndent=" ".repeat(list?2:0);outStr+="\n"+(list?"- ":"");outStr+="```"+lang+"\n";outStr+=listIndent+examples.replace(/\n/g,"\n"+listIndent);outStr+="\n"+listIndent+"```\n";return outStr;}function renderOptions(optionsMetadata=[],h){let outStr="";for(let i=0;i<optionsMetadata.length;i++){const metadata=optionsMetadata[i];const aliases=[metadata.nameAsArg].concat(metadata.aliasesAsArgs).join(", ");const placeholder=metadata.placeholder&&` ${metadata.placeholder}`;outStr+=`${"#".repeat(h)} \`${aliases+placeholder}\``;if(metadata.optional){outStr+=" **[optional]**";}outStr+="\n\n";if(metadata.description){outStr+=`- ${metadata.description.replace(/(\n+)/g," $1 ")}\n`;}if(typeof metadata.defaultValue!=="undefined"){outStr+=`- **default:** \`${metadata.defaultValueAsString}\`\n`;}if(metadata.example){outStr+=renderExamples(metadata.example,true);}if(i<optionsMetadata.length-1){outStr+="\n";}}return outStr;}function renderArguments(argsMetadata=[],h){let outStr="";for(let i=0;i<argsMetadata.length;i++){const metadata=argsMetadata[i];outStr+=`${"#".repeat(h)} \`${metadata.name}\``;if(metadata.optional){outStr+=" **[optional]**";}outStr+="\n\n";if(metadata.description){outStr+=`- ${metadata.description.replace(/(\n+)/g," $1 ")}\n`;}if(typeof metadata.defaultValue!=="undefined"){outStr+=`- **default:** \`${metadata.defaultValueAsString}\`\n`;}if(metadata.example){outStr+=renderExamples(metadata.example);}if(i<argsMetadata.length-1){outStr+="\n";}}return outStr;}function renderSubcommands(subcommandsMetadata){let outStr="";for(let i=0;i<subcommandsMetadata.length;i++){const metadata=subcommandsMetadata[i];const aliases=[metadata.name].concat(metadata.aliases).join(", ");const placeholder=metadata.placeholder&&` ${escapeTags(metadata.placeholder)}`;outStr+=`### ${aliases+placeholder}\n\n`;if(metadata.description){outStr+=`${metadata.description}\n`;}if(metadata.example){outStr+=renderExamples(metadata.example);}if(metadata.options.length){outStr+="\n#### Options:\n\n";outStr+=renderOptions(metadata.options,4);}if(metadata.arguments.length){outStr+="\n#### Arguments:\n\n";outStr+=renderArguments(metadata.arguments,4);}if(i<subcommandsMetadata.length-1){outStr+="\n---\n\n";}}return outStr;}function escapeTags(str){return str.replace(/</g,"&lt;").replace(/>/g,"&gt;");}
@@ -1 +1 @@
1
- {"version":3,"names":["getCliMetadata","generateMarkdown","params","metadata","md","name","description","example","renderExamples","options","length","renderOptions","arguments","renderArguments","subcommands","renderSubcommands","examples","list","outStr","lang","listIndent","repeat","replace","optionsMetadata","h","i","aliases","nameAsArg","concat","aliasesAsArgs","join","placeholder","optional","defaultValue","defaultValueAsString","argsMetadata","subcommandsMetadata","escapeTags","str"],"sourceRoot":"../../../src/markdown","sources":["generate-markdown.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\n\nimport type { ArgumentMetadata, OptionMetadata, SubcommandMetadata } from \"../metadata/metadata-types.js\";\nimport type { Cli, Subcommand } from \"../types.js\";\n\nexport function generateMarkdown(...params: [Cli, ...Subcommand[]]): string {\n const metadata = getCliMetadata(params);\n\n let md = \"<!-- Auto-generated by zod-args-parser -->\\n\\n\";\n\n // Title\n md += `# ${metadata.name}\\n\\n`;\n\n // Description\n if (metadata.description) {\n md += `${metadata.description}\\n`;\n }\n\n // Examples\n if (metadata.example) {\n md += renderExamples(metadata.example);\n }\n\n // Options\n if (metadata.options.length) {\n md += \"\\n## Options:\\n\\n\";\n md += renderOptions(metadata.options, 3);\n }\n\n // Arguments\n if (metadata.arguments.length) {\n md += \"\\n## Arguments:\\n\\n\";\n md += renderArguments(metadata.arguments, 3);\n }\n\n // Subcommands\n if (metadata.subcommands.length) {\n md += \"\\n## Subcommands:\\n\\n\";\n md += renderSubcommands(metadata.subcommands);\n }\n\n return md;\n}\n\nfunction renderExamples(examples: string, list = false) {\n let outStr = \"\";\n\n const lang = \"bash\";\n\n const listIndent = \" \".repeat(list ? 2 : 0);\n\n outStr += \"\\n\" + (list ? \"- \" : \"\");\n\n outStr += \"```\" + lang + \"\\n\";\n outStr += listIndent + examples.replace(/\\n/g, \"\\n\" + listIndent);\n outStr += \"\\n\" + listIndent + \"```\\n\";\n\n return outStr;\n}\n\nfunction renderOptions(optionsMetadata: OptionMetadata[] = [], h: number) {\n let outStr = \"\";\n\n for (let i = 0; i < optionsMetadata.length; i++) {\n const metadata = optionsMetadata[i];\n\n const aliases = [metadata.nameAsArg].concat(metadata.aliasesAsArgs).join(\", \");\n\n const placeholder = metadata.placeholder && ` ${metadata.placeholder}`;\n\n outStr += `${\"#\".repeat(h)} \\`${aliases + placeholder}\\``;\n\n if (metadata.optional) {\n outStr += \" **[optional]**\";\n }\n\n outStr += \"\\n\\n\";\n\n if (metadata.description) {\n outStr += `- ${metadata.description}\\n`;\n }\n\n if (typeof metadata.defaultValue !== \"undefined\") {\n outStr += `- **default:** \\`${metadata.defaultValueAsString}\\`\\n`;\n }\n\n if (metadata.example) {\n outStr += renderExamples(metadata.example, true);\n }\n\n if (i < optionsMetadata.length - 1) {\n outStr += \"\\n\";\n }\n }\n\n return outStr;\n}\n\nfunction renderArguments(argsMetadata: ArgumentMetadata[] = [], h: number) {\n let outStr = \"\";\n\n for (let i = 0; i < argsMetadata.length; i++) {\n const metadata = argsMetadata[i];\n\n outStr += `${\"#\".repeat(h)} \\`${metadata.name}\\``;\n\n if (metadata.optional) {\n outStr += \" **[optional]**\";\n }\n\n outStr += \"\\n\\n\";\n\n if (metadata.description) {\n outStr += `- ${metadata.description}\\n`;\n }\n\n if (typeof metadata.defaultValue !== \"undefined\") {\n outStr += `- **default:** \\`${metadata.defaultValueAsString}\\`\\n`;\n }\n\n if (metadata.example) {\n outStr += renderExamples(metadata.example);\n }\n\n if (i < argsMetadata.length - 1) {\n outStr += \"\\n\";\n }\n }\n\n return outStr;\n}\n\nfunction renderSubcommands(subcommandsMetadata: SubcommandMetadata[]) {\n let outStr = \"\";\n\n for (let i = 0; i < subcommandsMetadata.length; i++) {\n const metadata = subcommandsMetadata[i];\n\n const aliases = [metadata.name].concat(metadata.aliases).join(\", \");\n\n const placeholder = metadata.placeholder && ` ${escapeTags(metadata.placeholder)}`;\n\n outStr += `### ${aliases + placeholder}\\n\\n`;\n\n if (metadata.description) {\n outStr += `${metadata.description}\\n`;\n }\n\n if (metadata.example) {\n outStr += renderExamples(metadata.example);\n }\n\n if (metadata.options.length) {\n outStr += \"\\n#### Options:\\n\\n\";\n outStr += renderOptions(metadata.options, 4);\n }\n\n if (metadata.arguments.length) {\n outStr += \"\\n#### Arguments:\\n\\n\";\n outStr += renderArguments(metadata.arguments, 4);\n }\n\n if (i < subcommandsMetadata.length - 1) {\n outStr += \"\\n---\\n\\n\";\n }\n }\n\n return outStr;\n}\n\nfunction escapeTags(str: string) {\n return str.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getCliMetadata","generateMarkdown","params","metadata","md","name","description","example","renderExamples","options","length","renderOptions","arguments","renderArguments","subcommands","renderSubcommands","examples","list","outStr","lang","listIndent","repeat","replace","optionsMetadata","h","i","aliases","nameAsArg","concat","aliasesAsArgs","join","placeholder","optional","defaultValue","defaultValueAsString","argsMetadata","subcommandsMetadata","escapeTags","str"],"sourceRoot":"../../../src/markdown","sources":["generate-markdown.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\n\nimport type { ArgumentMetadata, OptionMetadata, SubcommandMetadata } from \"../metadata/metadata-types.js\";\nimport type { Cli, Subcommand } from \"../types.js\";\n\nexport function generateMarkdown(...params: [Cli, ...Subcommand[]]): string {\n const metadata = getCliMetadata(params);\n\n let md = \"<!-- Auto-generated by zod-args-parser -->\\n\\n\";\n\n // Title\n md += `# ${metadata.name}\\n\\n`;\n\n // Description\n if (metadata.description) {\n md += `${metadata.description}\\n`;\n }\n\n // Examples\n if (metadata.example) {\n md += renderExamples(metadata.example);\n }\n\n // Options\n if (metadata.options.length) {\n md += \"\\n## Options:\\n\\n\";\n md += renderOptions(metadata.options, 3);\n }\n\n // Arguments\n if (metadata.arguments.length) {\n md += \"\\n## Arguments:\\n\\n\";\n md += renderArguments(metadata.arguments, 3);\n }\n\n // Subcommands\n if (metadata.subcommands.length) {\n md += \"\\n## Subcommands:\\n\\n\";\n md += renderSubcommands(metadata.subcommands);\n }\n\n return md;\n}\n\nfunction renderExamples(examples: string, list = false) {\n let outStr = \"\";\n\n const lang = \"bash\";\n\n const listIndent = \" \".repeat(list ? 2 : 0);\n\n outStr += \"\\n\" + (list ? \"- \" : \"\");\n\n outStr += \"```\" + lang + \"\\n\";\n outStr += listIndent + examples.replace(/\\n/g, \"\\n\" + listIndent);\n outStr += \"\\n\" + listIndent + \"```\\n\";\n\n return outStr;\n}\n\nfunction renderOptions(optionsMetadata: OptionMetadata[] = [], h: number) {\n let outStr = \"\";\n\n for (let i = 0; i < optionsMetadata.length; i++) {\n const metadata = optionsMetadata[i];\n\n const aliases = [metadata.nameAsArg].concat(metadata.aliasesAsArgs).join(\", \");\n\n const placeholder = metadata.placeholder && ` ${metadata.placeholder}`;\n\n outStr += `${\"#\".repeat(h)} \\`${aliases + placeholder}\\``;\n\n if (metadata.optional) {\n outStr += \" **[optional]**\";\n }\n\n outStr += \"\\n\\n\";\n\n if (metadata.description) {\n outStr += `- ${metadata.description.replace(/(\\n+)/g, \" $1 \")}\\n`;\n }\n\n if (typeof metadata.defaultValue !== \"undefined\") {\n outStr += `- **default:** \\`${metadata.defaultValueAsString}\\`\\n`;\n }\n\n if (metadata.example) {\n outStr += renderExamples(metadata.example, true);\n }\n\n if (i < optionsMetadata.length - 1) {\n outStr += \"\\n\";\n }\n }\n\n return outStr;\n}\n\nfunction renderArguments(argsMetadata: ArgumentMetadata[] = [], h: number) {\n let outStr = \"\";\n\n for (let i = 0; i < argsMetadata.length; i++) {\n const metadata = argsMetadata[i];\n\n outStr += `${\"#\".repeat(h)} \\`${metadata.name}\\``;\n\n if (metadata.optional) {\n outStr += \" **[optional]**\";\n }\n\n outStr += \"\\n\\n\";\n\n if (metadata.description) {\n outStr += `- ${metadata.description.replace(/(\\n+)/g, \" $1 \")}\\n`;\n }\n\n if (typeof metadata.defaultValue !== \"undefined\") {\n outStr += `- **default:** \\`${metadata.defaultValueAsString}\\`\\n`;\n }\n\n if (metadata.example) {\n outStr += renderExamples(metadata.example);\n }\n\n if (i < argsMetadata.length - 1) {\n outStr += \"\\n\";\n }\n }\n\n return outStr;\n}\n\nfunction renderSubcommands(subcommandsMetadata: SubcommandMetadata[]) {\n let outStr = \"\";\n\n for (let i = 0; i < subcommandsMetadata.length; i++) {\n const metadata = subcommandsMetadata[i];\n\n const aliases = [metadata.name].concat(metadata.aliases).join(\", \");\n\n const placeholder = metadata.placeholder && ` ${escapeTags(metadata.placeholder)}`;\n\n outStr += `### ${aliases + placeholder}\\n\\n`;\n\n if (metadata.description) {\n outStr += `${metadata.description}\\n`;\n }\n\n if (metadata.example) {\n outStr += renderExamples(metadata.example);\n }\n\n if (metadata.options.length) {\n outStr += \"\\n#### Options:\\n\\n\";\n outStr += renderOptions(metadata.options, 4);\n }\n\n if (metadata.arguments.length) {\n outStr += \"\\n#### Arguments:\\n\\n\";\n outStr += renderArguments(metadata.arguments, 4);\n }\n\n if (i < subcommandsMetadata.length - 1) {\n outStr += \"\\n---\\n\\n\";\n }\n }\n\n return outStr;\n}\n\nfunction escapeTags(str: string) {\n return str.replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\");\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src/parser/validate","sources":["validate-type.ts"],"sourcesContent":["import type { Argument, Option, Prettify, Schema, Subcommand, ToOptional, ZodInfer } from \"../../types.js\";\nimport type { ParseResult } from \"../parse/parse-types.js\";\n\ntype OptionsArr2RecordType<T extends Option[] | undefined> = T extends Option[]\n ? ToOptional<{ [K in T[number][\"name\"]]: ZodInfer<Extract<T[number], { name: K }>[\"type\"]> }>\n : object;\n\ntype ArgumentsArr2ArrType<T extends Argument[] | undefined> = T extends Argument[]\n ? { [K in keyof T]: T[K] extends { type: Schema } ? ZodInfer<T[K][\"type\"]> : never }\n : never;\n\nexport type ValidateResult<S extends Partial<Subcommand>[]> = {\n [K in keyof S]: Prettify<\n {\n subcommand: S[K][\"name\"] extends string ? S[K][\"name\"] : undefined;\n arguments: ArgumentsArr2ArrType<S[K][\"arguments\"]>;\n positional: S[K][\"allowPositional\"] extends true ? string[] : never;\n ctx: ParseResult<S>;\n } & OptionsArr2RecordType<S[K][\"options\"]>\n >;\n}[number];\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src/parser/validate","sources":["validate-type.ts"],"sourcesContent":["import type { Argument, Option, Prettify, Schema, Subcommand, ToOptional, ZodInferOutput } from \"../../types.js\";\nimport type { ParseResult } from \"../parse/parse-types.js\";\n\ntype OptionsArr2RecordType<T extends Option[] | undefined> = T extends Option[]\n ? ToOptional<{ [K in T[number][\"name\"]]: ZodInferOutput<Extract<T[number], { name: K }>[\"type\"]> }>\n : object;\n\ntype ArgumentsArr2ArrType<T extends Argument[] | undefined> = T extends Argument[]\n ? { [K in keyof T]: T[K] extends { type: Schema } ? ZodInferOutput<T[K][\"type\"]> : never }\n : never;\n\nexport type ValidateResult<S extends Partial<Subcommand>[]> = {\n [K in keyof S]: Prettify<\n {\n subcommand: S[K][\"name\"] extends string ? S[K][\"name\"] : undefined;\n arguments: ArgumentsArr2ArrType<S[K][\"arguments\"]>;\n positional: S[K][\"allowPositional\"] extends true ? string[] : never;\n ctx: ParseResult<S>;\n } & OptionsArr2RecordType<S[K][\"options\"]>\n >;\n}[number];\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- export function stringToBoolean(str){if(str.toLowerCase()==="true"){return true;}if(str.toLowerCase()==="false"){return false;}return str;}export function generateOrdinalSuffix(index){if(index<0)return"";const suffixes=["th","st","nd","rd"];const lastDigit=index%10;const lastTwoDigits=index%100;const suffix=lastDigit===1&&lastTwoDigits!==11?suffixes[1]:lastDigit===2&&lastTwoDigits!==12?suffixes[2]:lastDigit===3&&lastTwoDigits!==13?suffixes[3]:suffixes[0];return`${index+1}${suffix}`;}export function ln(count){return"\n".repeat(count);}export function indent(count){return" ".repeat(count);}export function concat(...messages){return messages.join(" ");}export function stringifyValue(value){if(value instanceof Set){return"new Set(["+Array.from(value).map(stringifyValue).join(", ")+"])";}return JSON.stringify(value);}export function insertAtEndOfFirstLine(str,insert){const lines=str.split("\n");lines[0]+=" "+insert;return lines.join("\n");}
1
+ export function stringToBoolean(str){if(str.toLowerCase()==="true"){return true;}if(str.toLowerCase()==="false"){return false;}return str;}export function generateOrdinalSuffix(index){if(index<0)return"";const suffixes=["th","st","nd","rd"];const lastDigit=index%10;const lastTwoDigits=index%100;const suffix=lastDigit===1&&lastTwoDigits!==11?suffixes[1]:lastDigit===2&&lastTwoDigits!==12?suffixes[2]:lastDigit===3&&lastTwoDigits!==13?suffixes[3]:suffixes[0];return`${index+1}${suffix}`;}export function ln(count){return"\n".repeat(count);}export function indent(count){if(count<=0)return"";return" ".repeat(count);}export function concat(...messages){return messages.join(" ");}export function stringifyValue(value){if(value instanceof Set){return"new Set(["+Array.from(value).map(stringifyValue).join(", ")+"])";}return JSON.stringify(value);}export function insertAtEndOfFirstLine(str,insert){const lines=str.split("\n");lines[0]+=" "+insert;return lines.join("\n");}export function subcommandPlaceholder(metadata){let placeholder=metadata.placeholder;if(!placeholder&&metadata.options.length){placeholder="[options]";}if(!placeholder&&metadata.arguments.length){placeholder="<arguments>";}if(metadata.allowPositional){placeholder+=(placeholder?" ":"")+"<positionals>";}if(!placeholder){placeholder=" ";}return placeholder;}
@@ -1 +1 @@
1
- {"version":3,"names":["stringToBoolean","str","toLowerCase","generateOrdinalSuffix","index","suffixes","lastDigit","lastTwoDigits","suffix","ln","count","repeat","indent","concat","messages","join","stringifyValue","value","Set","Array","from","map","JSON","stringify","insertAtEndOfFirstLine","insert","lines","split"],"sourceRoot":"../../src","sources":["utils.ts"],"sourcesContent":["/**\n * Converts a string to its corresponding boolean value if the string is \"true\" or \"false\" (case-insensitive).\n *\n * @param str - The input string to convert.\n * @returns `true` if the input is \"true\", `false` if the input is \"false\", or the original string otherwise.\n */\nexport function stringToBoolean(str: string): boolean | string {\n if (str.toLowerCase() === \"true\") {\n return true;\n }\n\n if (str.toLowerCase() === \"false\") {\n return false;\n }\n\n return str;\n}\n\n/**\n * Returns the ordinal representation of a given zero-based index.\n *\n * For example, passing `0` returns `\"1st\"`, `1` returns `\"2nd\"`, and so on.\n *\n * Handles special cases for numbers ending in 11, 12, or 13 (e.g., `10` returns `\"11th\"`).\n *\n * @param index - The zero-based index to convert to an ordinal string.\n * @returns The ordinal string representation (e.g., `\"1st\"`, `\"2nd\"`, `\"3rd\"`, `\"4th\"`, ...).\n */\nexport function generateOrdinalSuffix(index: number): string {\n if (index < 0) return \"\";\n\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const lastDigit = index % 10;\n const lastTwoDigits = index % 100;\n\n const suffix =\n lastDigit === 1 && lastTwoDigits !== 11\n ? suffixes[1]\n : lastDigit === 2 && lastTwoDigits !== 12\n ? suffixes[2]\n : lastDigit === 3 && lastTwoDigits !== 13\n ? suffixes[3]\n : suffixes[0];\n\n return `${index + 1}${suffix}`;\n}\n\n/** New line */\nexport function ln(count: number) {\n return \"\\n\".repeat(count);\n}\n\n/** Space */\nexport function indent(count: number) {\n return \" \".repeat(count);\n}\n\n/** Concat strings */\nexport function concat(...messages: string[]) {\n // messages = messages.filter(Boolean);\n return messages.join(\" \");\n}\n\nexport function stringifyValue(value: unknown): string {\n // Set\n if (value instanceof Set) {\n return \"new Set([\" + Array.from(value).map(stringifyValue).join(\", \") + \"])\";\n }\n\n // unknown\n return JSON.stringify(value);\n}\n\n/** Insert text at the end of the first line */\nexport function insertAtEndOfFirstLine(str: string, insert: string) {\n const lines = str.split(\"\\n\");\n lines[0] += \" \" + insert;\n return lines.join(\"\\n\");\n}\n"],"mappings":"AAMA,MAAO,SAAS,CAAAA,eAAeA,CAACC,GAAW,CAAoB,CAC7D,GAAIA,GAAG,CAACC,WAAW,CAAC,CAAC,GAAK,MAAM,CAAE,CAChC,MAAO,KAAI,CACb,CAEA,GAAID,GAAG,CAACC,WAAW,CAAC,CAAC,GAAK,OAAO,CAAE,CACjC,MAAO,MAAK,CACd,CAEA,MAAO,CAAAD,GAAG,CACZ,CAYA,MAAO,SAAS,CAAAE,qBAAqBA,CAACC,KAAa,CAAU,CAC3D,GAAIA,KAAK,CAAG,CAAC,CAAE,MAAO,EAAE,CAExB,KAAM,CAAAC,QAAQ,CAAG,CAAC,IAAI,CAAE,IAAI,CAAE,IAAI,CAAE,IAAI,CAAC,CACzC,KAAM,CAAAC,SAAS,CAAGF,KAAK,CAAG,EAAE,CAC5B,KAAM,CAAAG,aAAa,CAAGH,KAAK,CAAG,GAAG,CAEjC,KAAM,CAAAI,MAAM,CACVF,SAAS,GAAK,CAAC,EAAIC,aAAa,GAAK,EAAE,CACnCF,QAAQ,CAAC,CAAC,CAAC,CACXC,SAAS,GAAK,CAAC,EAAIC,aAAa,GAAK,EAAE,CACrCF,QAAQ,CAAC,CAAC,CAAC,CACXC,SAAS,GAAK,CAAC,EAAIC,aAAa,GAAK,EAAE,CACrCF,QAAQ,CAAC,CAAC,CAAC,CACXA,QAAQ,CAAC,CAAC,CAAC,CAErB,MAAO,GAAGD,KAAK,CAAG,CAAC,GAAGI,MAAM,EAAE,CAChC,CAGA,MAAO,SAAS,CAAAC,EAAEA,CAACC,KAAa,CAAE,CAChC,MAAO,IAAI,CAACC,MAAM,CAACD,KAAK,CAAC,CAC3B,CAGA,MAAO,SAAS,CAAAE,MAAMA,CAACF,KAAa,CAAE,CACpC,MAAO,GAAG,CAACC,MAAM,CAACD,KAAK,CAAC,CAC1B,CAGA,MAAO,SAAS,CAAAG,MAAMA,CAAC,GAAGC,QAAkB,CAAE,CAE5C,MAAO,CAAAA,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAC3B,CAEA,MAAO,SAAS,CAAAC,cAAcA,CAACC,KAAc,CAAU,CAErD,GAAIA,KAAK,WAAY,CAAAC,GAAG,CAAE,CACxB,MAAO,WAAW,CAAGC,KAAK,CAACC,IAAI,CAACH,KAAK,CAAC,CAACI,GAAG,CAACL,cAAc,CAAC,CAACD,IAAI,CAAC,IAAI,CAAC,CAAG,IAAI,CAC9E,CAGA,MAAO,CAAAO,IAAI,CAACC,SAAS,CAACN,KAAK,CAAC,CAC9B,CAGA,MAAO,SAAS,CAAAO,sBAAsBA,CAACvB,GAAW,CAAEwB,MAAc,CAAE,CAClE,KAAM,CAAAC,KAAK,CAAGzB,GAAG,CAAC0B,KAAK,CAAC,IAAI,CAAC,CAC7BD,KAAK,CAAC,CAAC,CAAC,EAAI,GAAG,CAAGD,MAAM,CACxB,MAAO,CAAAC,KAAK,CAACX,IAAI,CAAC,IAAI,CAAC,CACzB","ignoreList":[]}
1
+ {"version":3,"names":["stringToBoolean","str","toLowerCase","generateOrdinalSuffix","index","suffixes","lastDigit","lastTwoDigits","suffix","ln","count","repeat","indent","concat","messages","join","stringifyValue","value","Set","Array","from","map","JSON","stringify","insertAtEndOfFirstLine","insert","lines","split","subcommandPlaceholder","metadata","placeholder","options","length","arguments","allowPositional"],"sourceRoot":"../../src","sources":["utils.ts"],"sourcesContent":["import { SubcommandMetadata } from \"./metadata/metadata-types.js\";\n\n/**\n * Converts a string to its corresponding boolean value if the string is \"true\" or \"false\" (case-insensitive).\n *\n * @param str - The input string to convert.\n * @returns `true` if the input is \"true\", `false` if the input is \"false\", or the original string otherwise.\n */\nexport function stringToBoolean(str: string): boolean | string {\n if (str.toLowerCase() === \"true\") {\n return true;\n }\n\n if (str.toLowerCase() === \"false\") {\n return false;\n }\n\n return str;\n}\n\n/**\n * Returns the ordinal representation of a given zero-based index.\n *\n * For example, passing `0` returns `\"1st\"`, `1` returns `\"2nd\"`, and so on.\n *\n * Handles special cases for numbers ending in 11, 12, or 13 (e.g., `10` returns `\"11th\"`).\n *\n * @param index - The zero-based index to convert to an ordinal string.\n * @returns The ordinal string representation (e.g., `\"1st\"`, `\"2nd\"`, `\"3rd\"`, `\"4th\"`, ...).\n */\nexport function generateOrdinalSuffix(index: number): string {\n if (index < 0) return \"\";\n\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const lastDigit = index % 10;\n const lastTwoDigits = index % 100;\n\n const suffix =\n lastDigit === 1 && lastTwoDigits !== 11\n ? suffixes[1]\n : lastDigit === 2 && lastTwoDigits !== 12\n ? suffixes[2]\n : lastDigit === 3 && lastTwoDigits !== 13\n ? suffixes[3]\n : suffixes[0];\n\n return `${index + 1}${suffix}`;\n}\n\n/** New line */\nexport function ln(count: number) {\n return \"\\n\".repeat(count);\n}\n\n/** Space */\nexport function indent(count: number) {\n if (count <= 0) return \"\";\n return \" \".repeat(count);\n}\n\n/** Concat strings */\nexport function concat(...messages: string[]) {\n // messages = messages.filter(Boolean);\n return messages.join(\" \");\n}\n\nexport function stringifyValue(value: unknown): string {\n // Set\n if (value instanceof Set) {\n return \"new Set([\" + Array.from(value).map(stringifyValue).join(\", \") + \"])\";\n }\n\n // unknown\n return JSON.stringify(value);\n}\n\n/** Insert text at the end of the first line */\nexport function insertAtEndOfFirstLine(str: string, insert: string) {\n const lines = str.split(\"\\n\");\n lines[0] += \" \" + insert;\n return lines.join(\"\\n\");\n}\n\n/** Get the placeholder for a subcommand */\nexport function subcommandPlaceholder(metadata: SubcommandMetadata): string {\n let placeholder = metadata.placeholder;\n\n if (!placeholder && metadata.options.length) {\n placeholder = \"[options]\";\n }\n\n if (!placeholder && metadata.arguments.length) {\n placeholder = \"<arguments>\";\n }\n\n if (metadata.allowPositional) {\n placeholder += (placeholder ? \" \" : \"\") + \"<positionals>\";\n }\n\n if (!placeholder) {\n placeholder = \" \";\n }\n\n return placeholder;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"format-subcommands.d.ts","sourceRoot":"","sources":["../../../src/help-message/format-subcommands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,CAAC,EAAE,YAAY,EACf,OAAO,EAAE,MAAM,GACd,MAAM,CA2BR"}
1
+ {"version":3,"file":"format-subcommands.d.ts","sourceRoot":"","sources":["../../../src/help-message/format-subcommands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,CAAC,EAAE,YAAY,EACf,OAAO,EAAE,MAAM,GACd,MAAM,CA0BR"}
@@ -18,10 +18,10 @@ type CheckArgumentsInput<T extends Argument[]> = CheckArgumentsOptional<{
18
18
  arguments: T;
19
19
  }> extends infer Err extends string ? Err : T;
20
20
  export declare function createArguments<const T extends [Argument, ...Argument[]]>(args: CheckArgumentsInput<T>): CheckArgumentsInput<T>;
21
- export { formatCliHelpMsg, printCliHelp, formatSubcommandHelpMsg, printSubcommandHelp, } from "./help-message/format-cli.js";
21
+ export { formatCliHelpMsg, formatSubcommandHelpMsg, printCliHelp, printSubcommandHelp, } from "./help-message/format-cli.js";
22
22
  export { helpMsgStyles } from "./help-message/styles.js";
23
- export { unsafeParse as parse, unsafeParseAsync as parseAsync } from "./parser/unsafe-parse.js";
24
23
  export { safeParse, safeParseAsync } from "./parser/safe-parse.js";
24
+ export { unsafeParse as parse, unsafeParseAsync as parseAsync } from "./parser/unsafe-parse.js";
25
25
  export { isOptionalSchema, schemaDefaultValue, stringToArray, stringToSet } from "./zod-utils.js";
26
26
  export { generateBashAutocompleteScript } from "./autocomplete-scripts/bash-autocomplete-script.js";
27
27
  export { generatePowerShellAutocompleteScript } from "./autocomplete-scripts/powershell-autocomplete-script.js";
@@ -31,6 +31,6 @@ export { getCliMetadata } from "./metadata/get-cli-metadata.js";
31
31
  export { getOptionsMetadata } from "./metadata/get-options-metadata.js";
32
32
  export { getSubcommandsMetadata } from "./metadata/get-subcommands-metadata.js";
33
33
  export { generateMarkdown } from "./markdown/generate-markdown.js";
34
- export type * from "./types.js";
35
34
  export type * from "./metadata/metadata-types.js";
35
+ export type * from "./types.js";
36
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,GAAG,EACH,MAAM,EACN,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,KAAK,uBAAuB,CAAC,CAAC,SAAS,GAAG,GAAG,UAAU,IACrD,sBAAsB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GACtD,GAAG,GACH,wBAAwB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAC1D,GAAG,GACH,sBAAsB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GACxD,GAAG,GACH,CAAC,CAAC;AAEZ,wBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAWV,QAAQ,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAC1G;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAWxB,QAAQ,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAC1G;AAED,qDAAqD;AACrD,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,IACvC,sBAAsB,CAAC;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;AAEpF,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,wBAEjG;AAED,wDAAwD;AACxD,KAAK,mBAAmB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAC3C,sBAAsB,CAAC;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;AAEtF,wBAAgB,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,0BAEtG;AAED,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AACpG,OAAO,EAAE,oCAAoC,EAAE,MAAM,0DAA0D,CAAC;AAChH,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,GAAG,EACH,MAAM,EACN,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,KAAK,uBAAuB,CAAC,CAAC,SAAS,GAAG,GAAG,UAAU,IACrD,sBAAsB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GACtD,GAAG,GACH,wBAAwB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAC1D,GAAG,GACH,sBAAsB,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GACxD,GAAG,GACH,CAAC,CAAC;AAEZ,wBAAgB,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAWV,QAAQ,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAC1G;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAWxB,QAAQ,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAC1G;AAED,qDAAqD;AACrD,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,IACvC,sBAAsB,CAAC;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;AAEpF,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,wBAEjG;AAED,wDAAwD;AACxD,KAAK,mBAAmB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAC3C,sBAAsB,CAAC;IAAE,SAAS,EAAE,CAAC,CAAA;CAAE,CAAC,SAAS,MAAM,GAAG,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;AAEtF,wBAAgB,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,0BAEtG;AAED,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElG,OAAO,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AACpG,OAAO,EAAE,oCAAoC,EAAE,MAAM,0DAA0D,CAAC;AAChH,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,YAAY,CAAC"}
@@ -1,14 +1,14 @@
1
- import type { Argument, Option, Prettify, Schema, Subcommand, ToOptional, ZodInfer } from "../../types.js";
1
+ import type { Argument, Option, Prettify, Schema, Subcommand, ToOptional, ZodInferOutput } from "../../types.js";
2
2
  import type { ParseResult } from "../parse/parse-types.js";
3
3
  type OptionsArr2RecordType<T extends Option[] | undefined> = T extends Option[] ? ToOptional<{
4
- [K in T[number]["name"]]: ZodInfer<Extract<T[number], {
4
+ [K in T[number]["name"]]: ZodInferOutput<Extract<T[number], {
5
5
  name: K;
6
6
  }>["type"]>;
7
7
  }> : object;
8
8
  type ArgumentsArr2ArrType<T extends Argument[] | undefined> = T extends Argument[] ? {
9
9
  [K in keyof T]: T[K] extends {
10
10
  type: Schema;
11
- } ? ZodInfer<T[K]["type"]> : never;
11
+ } ? ZodInferOutput<T[K]["type"]> : never;
12
12
  } : never;
13
13
  export type ValidateResult<S extends Partial<Subcommand>[]> = {
14
14
  [K in keyof S]: Prettify<{
@@ -1 +1 @@
1
- {"version":3,"file":"validate-type.d.ts","sourceRoot":"","sources":["../../../../src/parser/validate/validate-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,IAAI,CAAC,SAAS,MAAM,EAAE,GAC3E,UAAU,CAAC;KAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAAE,CAAC,GAC3F,MAAM,CAAC;AAEX,KAAK,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,SAAS,IAAI,CAAC,SAAS,QAAQ,EAAE,GAC9E;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK;CAAE,GAClF,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI;KAC3D,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CACtB;QACE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACnE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,IAAI,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;QACpE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;KACrB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAC3C;CACF,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"validate-type.d.ts","sourceRoot":"","sources":["../../../../src/parser/validate/validate-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,IAAI,CAAC,SAAS,MAAM,EAAE,GAC3E,UAAU,CAAC;KAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,MAAM,CAAC,CAAC;CAAE,CAAC,GACjG,MAAM,CAAC;AAEX,KAAK,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,SAAS,IAAI,CAAC,SAAS,QAAQ,EAAE,GAC9E;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK;CAAE,GACxF,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI;KAC3D,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CACtB;QACE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACnE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,IAAI,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;QACpE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;KACrB,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAC3C;CACF,CAAC,MAAM,CAAC,CAAC"}
@@ -5,8 +5,9 @@ import type { ValidateResult } from "./parser/validate/validate-type.js";
5
5
  export type SchemaV3 = Z3.ZodTypeAny;
6
6
  export type SchemaV4 = Z4.$ZodType;
7
7
  export type Schema = SchemaV3 | SchemaV4;
8
- export type ZodInfer<T extends Schema> = T extends SchemaV4 ? Z4.infer<T> : T extends SchemaV3 ? Z3.infer<T> : never;
9
- export type Subcommand = {
8
+ export type ZodInferOutput<T extends Schema> = T extends SchemaV4 ? Z4.infer<T> : T extends SchemaV3 ? Z3.infer<T> : never;
9
+ export type ZodInferInput<T extends Schema> = T extends SchemaV4 ? Z4.input<T> : T extends SchemaV3 ? Z3.input<T> : never;
10
+ export interface Subcommand {
10
11
  /**
11
12
  * - The subcommand name
12
13
  * - Make sure to not duplicate commands and aliases.
@@ -73,12 +74,12 @@ export type Subcommand = {
73
74
  * helpCommand.setPreValidationHook(ctx => console.log(ctx));
74
75
  */
75
76
  preValidation?: (ctx?: any) => any;
76
- };
77
+ }
77
78
  export type Cli = Prettify<Omit<Subcommand, "name" | "aliases" | "placeholder"> & {
78
79
  /** - The name of the CLI program. */
79
80
  cliName: string;
80
81
  }>;
81
- export type Option = {
82
+ export interface Option {
82
83
  /**
83
84
  * The name of the option, use a valid **JavaScript** variable name.\
84
85
  * **Supports:** `camelCase`, `PascalCase`, `snake_case`, and `SCREAMING_SNAKE_CASE`.\
@@ -113,8 +114,8 @@ export type Option = {
113
114
  * - Make sure to not duplicate aliases.
114
115
  */
115
116
  aliases?: [string, ...string[]];
116
- };
117
- export type Argument = {
117
+ }
118
+ export interface Argument {
118
119
  /** - The name of the argument. */
119
120
  name: string;
120
121
  /**
@@ -133,33 +134,69 @@ export type Argument = {
133
134
  * - Used for generating the help message.
134
135
  */
135
136
  example?: string;
136
- };
137
+ }
137
138
  export type ColorFnType = (...text: unknown[]) => string;
138
139
  /** - The colors to use for the help message. */
139
140
  export type HelpMsgStyle = Record<"title" | "description" | "default" | "optional" | "exampleTitle" | "example" | "command" | "option" | "argument" | "placeholder" | "punctuation", ColorFnType>;
140
141
  /**
141
142
  * - Infer the options type from a subcommand.
142
143
  *
144
+ * @deprecated Use `InferOptionsOutput` instead.
145
+ */
146
+ export type InferOptionsType<T extends Partial<Subcommand>> = InferOptionsOutput<T>;
147
+ /**
148
+ * - Infer the options output type (after zod validation) from a subcommand.
149
+ *
143
150
  * @example
144
151
  * const subcommand = createSubcommand({ name: "build", options: [...] });
145
- * type OptionsType = InferOptionsType<typeof subcommand>;
152
+ * type OptionsType = InferOptionsOutput<typeof subcommand>;
146
153
  */
147
- export type InferOptionsType<T extends Partial<Subcommand>> = T["options"] extends infer U extends Option[] ? ToOptional<{
148
- [K in U[number]["name"]]: ZodInfer<Extract<U[number], {
154
+ export type InferOptionsOutput<T extends Partial<Subcommand>> = T["options"] extends infer U extends Option[] ? ToOptional<{
155
+ [K in U[number]["name"]]: ZodInferOutput<Extract<U[number], {
149
156
  name: K;
150
157
  }>["type"]>;
151
158
  }> : undefined;
152
159
  /**
153
- * - Infer the arguments type from a subcommand.
160
+ * - Infer the options input type (before zod validation) from a subcommand.
161
+ *
162
+ * @example
163
+ * const subcommand = createSubcommand({ name: "build", options: [...] });
164
+ * type OptionsType = InferOptionsInput<typeof subcommand>;
165
+ */
166
+ export type InferOptionsInput<T extends Partial<Subcommand>> = T["options"] extends infer U extends Option[] ? ToOptional<{
167
+ [K in U[number]["name"]]: ZodInferInput<Extract<U[number], {
168
+ name: K;
169
+ }>["type"]>;
170
+ }> : undefined;
171
+ /**
172
+ * - Infer the arguments output type (after zod validation) from a subcommand.
173
+ *
174
+ * @deprecated Use `InferArgumentsOutput` instead.
175
+ */
176
+ export type InferArgumentsType<T extends Partial<Subcommand>> = InferArgumentsOutput<T>;
177
+ /**
178
+ * - Infer the arguments output type (after zod validation) from a subcommand.
179
+ *
180
+ * @example
181
+ * const subcommand = createSubcommand({ name: "build", arguments: [...] });
182
+ * type ArgumentsType = InferArgumentsOutput<typeof subcommand>;
183
+ */
184
+ export type InferArgumentsOutput<T extends Partial<Subcommand>> = T["arguments"] extends infer U extends Argument[] ? {
185
+ [K in keyof U]: U[K] extends {
186
+ type: Schema;
187
+ } ? ZodInferOutput<U[K]["type"]> : never;
188
+ } : undefined;
189
+ /**
190
+ * - Infer the arguments Input type (before zod validation) from a subcommand.
154
191
  *
155
192
  * @example
156
193
  * const subcommand = createSubcommand({ name: "build", arguments: [...] });
157
- * type ArgumentsType = InferArgumentsType<typeof subcommand>;
194
+ * type ArgumentsType = InferArgumentsInput<typeof subcommand>;
158
195
  */
159
- export type InferArgumentsType<T extends Partial<Subcommand>> = T["arguments"] extends infer U extends Argument[] ? {
196
+ export type InferArgumentsInput<T extends Partial<Subcommand>> = T["arguments"] extends infer U extends Argument[] ? {
160
197
  [K in keyof U]: U[K] extends {
161
198
  type: Schema;
162
- } ? ZodInfer<U[K]["type"]> : never;
199
+ } ? ZodInferInput<U[K]["type"]> : never;
163
200
  } : undefined;
164
201
  /** `{ some props } & { other props }` => `{ some props, other props }` */
165
202
  export type Prettify<T> = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { SubcommandMetadata } from "./metadata/metadata-types.js";
1
2
  /**
2
3
  * Converts a string to its corresponding boolean value if the string is "true" or "false" (case-insensitive).
3
4
  *
@@ -25,4 +26,6 @@ export declare function concat(...messages: string[]): string;
25
26
  export declare function stringifyValue(value: unknown): string;
26
27
  /** Insert text at the end of the first line */
27
28
  export declare function insertAtEndOfFirstLine(str: string, insert: string): string;
29
+ /** Get the placeholder for a subcommand */
30
+ export declare function subcommandPlaceholder(metadata: SubcommandMetadata): string;
28
31
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAU7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED,eAAe;AACf,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,UAE/B;AAED,YAAY;AACZ,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAEnC;AAED,qBAAqB;AACrB,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,UAG3C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIjE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAU7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED,eAAe;AACf,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,UAE/B;AAED,YAAY;AACZ,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAGnC;AAED,qBAAqB;AACrB,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,UAG3C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQrD;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIjE;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAoB1E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-args-parser",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "A strictly typed command-line arguments parser powered by Zod.",
5
5
  "author": "Ahmed ALABSI <alabsi91@gmail.com>",
6
6
  "license": "MIT",
@@ -13,7 +13,7 @@ export function formatHelpMsgArguments(argsMetadata: ArgumentMetadata[], c: Help
13
13
  typeof metadata.defaultValue !== "undefined" ? `(default: ${metadata.defaultValueAsString})` : "";
14
14
 
15
15
  const spacing = longest + 2 - metadata.name.length;
16
- const normalizeDesc = metadata.description.replace(/\n/g, "\n" + indent(longest + 6) + c.punctuation("└"));
16
+ const normalizeDesc = metadata.description.replace(/\n+/g, "\n" + indent(longest + 6) + c.punctuation("└"));
17
17
  const defaultOrOptional = defaultStr ? c.default(defaultStr) : metadata.optional ? c.optional("(optional)") : "";
18
18
 
19
19
  msg += concat(
@@ -24,7 +24,7 @@ export function formatHelpMsgArguments(argsMetadata: ArgumentMetadata[], c: Help
24
24
  );
25
25
 
26
26
  if (metadata.example) {
27
- const normalizeExample = metadata.example.replace(/\n/g, "\n" + indent(longest + 16));
27
+ const normalizeExample = metadata.example.replace(/\n+/g, "\n" + indent(longest + 16));
28
28
  msg += concat(
29
29
  indent(longest + 5),
30
30
  c.punctuation("└") + c.exampleTitle("Example:"),
@@ -1,5 +1,5 @@
1
1
  import { getCliMetadata } from "../metadata/get-cli-metadata.js";
2
- import { concat, indent, ln } from "../utils.js";
2
+ import { concat, indent, ln, subcommandPlaceholder } from "../utils.js";
3
3
  import { formatHelpMsgArguments } from "./format-arguments.js";
4
4
  import { formatHelpMsgOptions } from "./format-options.js";
5
5
  import { formatHelpMsgCommands } from "./format-subcommands.js";
@@ -25,7 +25,8 @@ export function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?
25
25
  c.description(metadata.name),
26
26
  metadata.subcommands.length ? c.command("[command]") : "",
27
27
  metadata.options.length ? c.option("[options]") : "",
28
- metadata.arguments.length || metadata.allowPositional ? c.argument("<arguments>") : "",
28
+ metadata.arguments.length ? c.argument("<arguments>") : "",
29
+ metadata.allowPositional ? c.argument("<positionals>") : "",
29
30
  );
30
31
  msg += formatTitle("Usage") + ln(1);
31
32
  msg += indent(2) + usage + ln(2);
@@ -56,8 +57,7 @@ export function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?
56
57
 
57
58
  const longestSubcommandTitle = subcommandsMetadata.reduce((acc, metadata) => {
58
59
  const names = metadata.aliases.concat([metadata.name]).join(", ");
59
- const placeholder =
60
- metadata.placeholder || (metadata.options.length ? "[options]" : metadata.allowPositional ? "<args>" : " ");
60
+ const placeholder = subcommandPlaceholder(metadata);
61
61
  const optLength = names.length + placeholder.length;
62
62
  return optLength > acc ? optLength : acc;
63
63
  }, 0);
@@ -86,7 +86,7 @@ export function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?
86
86
  if (metadata.example) {
87
87
  msg += formatTitle("Example");
88
88
  msg += ln(1);
89
- const normalizeExample = metadata.example.replace(/\n/g, "\n" + indent(3));
89
+ const normalizeExample = metadata.example.replace(/\n+/g, "\n" + indent(3));
90
90
  msg += concat(indent(2), c.example(normalizeExample), ln(2));
91
91
  }
92
92
 
@@ -10,7 +10,7 @@ export function formatHelpMsgOptions(optionsMetadata: OptionMetadata[], c: HelpM
10
10
 
11
11
  for (const metadata of optionsMetadata) {
12
12
  const names = metadata.aliasesAsArgs.concat([metadata.nameAsArg]);
13
- const normalizeDesc = metadata.description.replace(/\n/g, "\n" + indent(longest + 6) + c.punctuation("└"));
13
+ const normalizeDesc = metadata.description.replace(/\n+/g, "\n" + indent(longest + 6) + c.punctuation("└"));
14
14
  const defaultStr =
15
15
  typeof metadata.defaultValue !== "undefined" ? `(default: ${metadata.defaultValueAsString})` : "";
16
16
 
@@ -30,7 +30,7 @@ export function formatHelpMsgOptions(optionsMetadata: OptionMetadata[], c: HelpM
30
30
  );
31
31
 
32
32
  if (metadata.example) {
33
- const normalizeExample = metadata.example.replace(/\n/g, "\n" + indent(longest + 16));
33
+ const normalizeExample = metadata.example.replace(/\n+/g, "\n" + indent(longest + 16));
34
34
  msg += concat(
35
35
  indent(longest + 6) + c.punctuation("└") + c.exampleTitle("Example:"),
36
36
  c.example(normalizeExample) + ln(1),
@@ -1,4 +1,4 @@
1
- import { concat, indent, ln } from "../utils.js";
1
+ import { concat, indent, ln, subcommandPlaceholder } from "../utils.js";
2
2
 
3
3
  import type { SubcommandMetadata } from "../metadata/metadata-types.js";
4
4
  import type { HelpMsgStyle } from "../types.js";
@@ -14,9 +14,8 @@ export function formatHelpMsgCommands(
14
14
 
15
15
  for (const metadata of subcommandsMetadata) {
16
16
  const names = metadata.aliases.concat([metadata.name]);
17
- const placeholder =
18
- metadata.placeholder || (metadata.options.length ? "[options]" : metadata.allowPositional ? "<args>" : " ");
19
- const normalizeDesc = metadata.description.replace(/\n/g, "\n" + indent(longest + 7) + c.punctuation("└"));
17
+ const placeholder = subcommandPlaceholder(metadata);
18
+ const normalizeDesc = metadata.description.replace(/\n+/g, "\n" + indent(longest + 6) + c.punctuation(""));
20
19
 
21
20
  const optLength = names.join(", ").length + placeholder.length;
22
21
  const spacing = longest + 1 - optLength;
package/src/index.ts CHANGED
@@ -71,14 +71,14 @@ export function createArguments<const T extends [Argument, ...Argument[]]>(args:
71
71
 
72
72
  export {
73
73
  formatCliHelpMsg,
74
- printCliHelp,
75
74
  formatSubcommandHelpMsg,
75
+ printCliHelp,
76
76
  printSubcommandHelp,
77
77
  } from "./help-message/format-cli.js";
78
78
  export { helpMsgStyles } from "./help-message/styles.js";
79
79
 
80
- export { unsafeParse as parse, unsafeParseAsync as parseAsync } from "./parser/unsafe-parse.js";
81
80
  export { safeParse, safeParseAsync } from "./parser/safe-parse.js";
81
+ export { unsafeParse as parse, unsafeParseAsync as parseAsync } from "./parser/unsafe-parse.js";
82
82
 
83
83
  export { isOptionalSchema, schemaDefaultValue, stringToArray, stringToSet } from "./zod-utils.js";
84
84
 
@@ -93,5 +93,5 @@ export { getSubcommandsMetadata } from "./metadata/get-subcommands-metadata.js";
93
93
 
94
94
  export { generateMarkdown } from "./markdown/generate-markdown.js";
95
95
 
96
- export type * from "./types.js";
97
96
  export type * from "./metadata/metadata-types.js";
97
+ export type * from "./types.js";
@@ -77,7 +77,7 @@ function renderOptions(optionsMetadata: OptionMetadata[] = [], h: number) {
77
77
  outStr += "\n\n";
78
78
 
79
79
  if (metadata.description) {
80
- outStr += `- ${metadata.description}\n`;
80
+ outStr += `- ${metadata.description.replace(/(\n+)/g, " $1 ")}\n`;
81
81
  }
82
82
 
83
83
  if (typeof metadata.defaultValue !== "undefined") {
@@ -111,7 +111,7 @@ function renderArguments(argsMetadata: ArgumentMetadata[] = [], h: number) {
111
111
  outStr += "\n\n";
112
112
 
113
113
  if (metadata.description) {
114
- outStr += `- ${metadata.description}\n`;
114
+ outStr += `- ${metadata.description.replace(/(\n+)/g, " $1 ")}\n`;
115
115
  }
116
116
 
117
117
  if (typeof metadata.defaultValue !== "undefined") {
@@ -1,12 +1,12 @@
1
- import type { Argument, Option, Prettify, Schema, Subcommand, ToOptional, ZodInfer } from "../../types.js";
1
+ import type { Argument, Option, Prettify, Schema, Subcommand, ToOptional, ZodInferOutput } from "../../types.js";
2
2
  import type { ParseResult } from "../parse/parse-types.js";
3
3
 
4
4
  type OptionsArr2RecordType<T extends Option[] | undefined> = T extends Option[]
5
- ? ToOptional<{ [K in T[number]["name"]]: ZodInfer<Extract<T[number], { name: K }>["type"]> }>
5
+ ? ToOptional<{ [K in T[number]["name"]]: ZodInferOutput<Extract<T[number], { name: K }>["type"]> }>
6
6
  : object;
7
7
 
8
8
  type ArgumentsArr2ArrType<T extends Argument[] | undefined> = T extends Argument[]
9
- ? { [K in keyof T]: T[K] extends { type: Schema } ? ZodInfer<T[K]["type"]> : never }
9
+ ? { [K in keyof T]: T[K] extends { type: Schema } ? ZodInferOutput<T[K]["type"]> : never }
10
10
  : never;
11
11
 
12
12
  export type ValidateResult<S extends Partial<Subcommand>[]> = {