zod-args-parser 1.2.4 → 1.2.6

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.
package/README.md CHANGED
@@ -515,15 +515,21 @@ cliSchema.setAction(results => {
515
515
 
516
516
  ### Type Utilities
517
517
 
518
- - `InferOptionsType<Cli | Subcommand>`
519
- Infer the options type from the Cli or subcommand schema.
518
+ - `InferOptionsInput<Cli | Subcommand>`
519
+ Infer the options input type (before zod validation) from the Cli or subcommand schema.
520
520
 
521
- - `InferArgumentsType<Cli | Subcommand>`
522
- Infer the arguments type from the Cli or subcommand schema.
521
+ - `InferOptionsOutput<Cli | Subcommand>`
522
+ Infer the options Output type (after zod validation) from the Cli or subcommand schema.
523
+
524
+ - `InferArgumentsInput<Cli | Subcommand>`
525
+ Infer the arguments input type (before zod validation) from the Cli or subcommand schema.
526
+
527
+ - `InferArgumentsOutput<Cli | Subcommand>`
528
+ Infer the arguments Output type (after zod validation) from the Cli or subcommand schema.
523
529
 
524
530
  ```ts
525
531
  import { createSubcommand } from "zod-args-parser";
526
- import type { InferOptionsType, InferArgumentsType } from "zod-args-parser";
532
+ import type { InferOptionsOutput, InferArgumentsOutput } from "zod-args-parser";
527
533
 
528
534
  const subcommand = createSubcommand({
529
535
  name: "subcommand",
@@ -540,10 +546,10 @@ const subcommand = createSubcommand({
540
546
  ],
541
547
  });
542
548
 
543
- type Options = InferOptionsType<typeof subcommand>;
549
+ type Options = InferOptionsOutput<typeof subcommand>;
544
550
  // { numberOption: number; stringOption: string; booleanOption: boolean; optionalOption?: boolean | undefined; }
545
551
 
546
- type Arguments = InferArgumentsType<typeof subcommand>;
552
+ type Arguments = InferArgumentsOutput<typeof subcommand>;
547
553
  // [string, number, boolean]
548
554
  ```
549
555
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.formatCliHelpMsg=formatCliHelpMsg;exports.formatSubcommandHelpMsg=formatSubcommandHelpMsg;exports.printCliHelp=printCliHelp;exports.printSubcommandHelp=printSubcommandHelp;var _getCliMetadata=require("../metadata/get-cli-metadata.js");var _utils=require("../utils.js");var _formatArguments=require("./format-arguments.js");var _formatOptions=require("./format-options.js");var _formatSubcommands=require("./format-subcommands.js");var _styles=require("./styles.js");function formatCliHelpMsg(params,style){const c=_styles.helpMsgStyles.default;if(style)Object.assign(c,style);const metadata=(0,_getCliMetadata.getCliMetadata)(params);const formatTitle=title=>c.title(` ${title.toUpperCase()}`);let msg="";const usage=metadata.usage||(0,_utils.concat)(c.punctuation("$"),c.description(metadata.name),metadata.subcommands.length?c.command("[command]"):"",metadata.options.length?c.option("[options]"):"",metadata.arguments.length?c.argument("<arguments>"):"",metadata.allowPositional?c.argument("<positionals>"):"");msg+=formatTitle("Usage")+(0,_utils.ln)(1);msg+=(0,_utils.indent)(2)+usage+(0,_utils.ln)(2);if(metadata.description){msg+=formatTitle("Description")+(0,_utils.ln)(1);msg+=(0,_utils.indent)(2)+c.description(metadata.description)+(0,_utils.ln)(2);}let longest=0;const optionsMetadata=metadata.options;const longestOptionTitle=optionsMetadata.reduce((acc,metadata)=>{const names=metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(", ");const optLength=names.length+metadata.placeholder.length;return optLength>acc?optLength:acc;},0);if(longestOptionTitle>longest){longest=longestOptionTitle;}const subcommandsMetadata=metadata.subcommands;const longestSubcommandTitle=subcommandsMetadata.reduce((acc,metadata)=>{const names=metadata.aliases.concat([metadata.name]).join(", ");const placeholder=(0,_utils.subcommandPlaceholder)(metadata);const optLength=names.length+placeholder.length;return optLength>acc?optLength:acc;},0);if(longestSubcommandTitle>longest){longest=longestSubcommandTitle;}const argsMetadata=metadata.arguments;const longestArgTitle=argsMetadata.reduce((acc,arg)=>arg.name.length>acc?arg.name.length:acc,0);if(longestArgTitle>longest){longest=longestArgTitle;}msg+=(0,_formatOptions.formatHelpMsgOptions)(optionsMetadata,c,longest);msg+=(0,_formatSubcommands.formatHelpMsgCommands)(subcommandsMetadata,c,longest);msg+=(0,_formatArguments.formatHelpMsgArguments)(argsMetadata,c,longest);if(metadata.example){msg+=formatTitle("Example");msg+=(0,_utils.ln)(1);const normalizeExample=metadata.example.replace(/\n+/g,"\n"+(0,_utils.indent)(3));msg+=(0,_utils.concat)((0,_utils.indent)(2),c.example(normalizeExample),(0,_utils.ln)(2));}return msg;}function formatSubcommandHelpMsg(subcommand,printStyle,cliName=""){const c=_styles.helpMsgStyles.default;if(printStyle)Object.assign(c,printStyle);const usage=subcommand.usage||(0,_utils.concat)(c.punctuation("$"),cliName,c.command(subcommand.name),subcommand.options?.length?c.option("[options]"):"",subcommand.arguments?.length||subcommand.allowPositional?c.argument("<arguments>"):"");const asCli={cliName,usage,...subcommand};return formatCliHelpMsg([asCli],c);}function printCliHelp(params,style){console.log(formatCliHelpMsg(params,style));}function printSubcommandHelp(subcommand,style,cliName=""){console.log(formatSubcommandHelpMsg(subcommand,style,cliName));}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.formatCliHelpMsg=formatCliHelpMsg;exports.formatSubcommandHelpMsg=formatSubcommandHelpMsg;exports.printCliHelp=printCliHelp;exports.printSubcommandHelp=printSubcommandHelp;var _getCliMetadata=require("../metadata/get-cli-metadata.js");var _utils=require("../utils.js");var _formatArguments=require("./format-arguments.js");var _formatOptions=require("./format-options.js");var _formatSubcommands=require("./format-subcommands.js");var _styles=require("./styles.js");function formatCliHelpMsg(params,style){const c=_styles.helpMsgStyles.default;if(style)Object.assign(c,style);const metadata=(0,_getCliMetadata.getCliMetadata)(params);const formatTitle=title=>c.title(` ${title.toUpperCase()}`);let msg="";const usage=metadata.usage||(0,_utils.concat)(c.punctuation("$"),c.description(metadata.name),metadata.subcommands.length?c.command("[command]"):"",metadata.options.length?c.option("[options]"):"",metadata.arguments.length?c.argument("<arguments>"):"",metadata.allowPositional?c.argument("<positionals>"):"");msg+=formatTitle("Usage")+(0,_utils.ln)(1);msg+=(0,_utils.indent)(2)+usage+(0,_utils.ln)(2);if(metadata.description){msg+=formatTitle("Description")+(0,_utils.ln)(1);msg+=(0,_utils.indent)(2)+c.description(metadata.description).replace(/\n+/g,"\n"+(0,_utils.indent)(2))+(0,_utils.ln)(2);}let longest=0;const optionsMetadata=metadata.options;const longestOptionTitle=optionsMetadata.reduce((acc,metadata)=>{const names=metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(", ");const optLength=names.length+metadata.placeholder.length;return optLength>acc?optLength:acc;},0);if(longestOptionTitle>longest){longest=longestOptionTitle;}const subcommandsMetadata=metadata.subcommands;const longestSubcommandTitle=subcommandsMetadata.reduce((acc,metadata)=>{const names=metadata.aliases.concat([metadata.name]).join(", ");const placeholder=(0,_utils.subcommandPlaceholder)(metadata);const optLength=names.length+placeholder.length;return optLength>acc?optLength:acc;},0);if(longestSubcommandTitle>longest){longest=longestSubcommandTitle;}const argsMetadata=metadata.arguments;const longestArgTitle=argsMetadata.reduce((acc,arg)=>arg.name.length>acc?arg.name.length:acc,0);if(longestArgTitle>longest){longest=longestArgTitle;}msg+=(0,_formatOptions.formatHelpMsgOptions)(optionsMetadata,c,longest);msg+=(0,_formatSubcommands.formatHelpMsgCommands)(subcommandsMetadata,c,longest);msg+=(0,_formatArguments.formatHelpMsgArguments)(argsMetadata,c,longest);if(metadata.example){msg+=formatTitle("Example");msg+=(0,_utils.ln)(1);const normalizeExample=metadata.example.replace(/\n+/g,"\n"+(0,_utils.indent)(3));msg+=(0,_utils.concat)((0,_utils.indent)(2),c.example(normalizeExample),(0,_utils.ln)(2));}return msg;}function formatSubcommandHelpMsg(subcommand,printStyle,cliName=""){const c=_styles.helpMsgStyles.default;if(printStyle)Object.assign(c,printStyle);const usage=subcommand.usage||(0,_utils.concat)(c.punctuation("$"),cliName,c.command(subcommand.name),subcommand.options?.length?c.option("[options]"):"",subcommand.arguments?.length||subcommand.allowPositional?c.argument("<arguments>"):"");const asCli={cliName,usage,...subcommand};return formatCliHelpMsg([asCli],c);}function printCliHelp(params,style){console.log(formatCliHelpMsg(params,style));}function printSubcommandHelp(subcommand,style,cliName=""){console.log(formatSubcommandHelpMsg(subcommand,style,cliName));}
@@ -1 +1 @@
1
- {"version":3,"names":["_getCliMetadata","require","_utils","_formatArguments","_formatOptions","_formatSubcommands","_styles","formatCliHelpMsg","params","style","c","helpMsgStyles","default","Object","assign","metadata","getCliMetadata","formatTitle","title","toUpperCase","msg","usage","concat","punctuation","description","name","subcommands","length","command","options","option","arguments","argument","allowPositional","ln","indent","longest","optionsMetadata","longestOptionTitle","reduce","acc","names","aliasesAsArgs","nameAsArg","join","optLength","placeholder","subcommandsMetadata","longestSubcommandTitle","aliases","subcommandPlaceholder","argsMetadata","longestArgTitle","arg","formatHelpMsgOptions","formatHelpMsgCommands","formatHelpMsgArguments","example","normalizeExample","replace","formatSubcommandHelpMsg","subcommand","printStyle","cliName","asCli","printCliHelp","console","log","printSubcommandHelp"],"sourceRoot":"../../../src/help-message","sources":["format-cli.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\nimport { concat, indent, ln, subcommandPlaceholder } from \"../utils.js\";\nimport { formatHelpMsgArguments } from \"./format-arguments.js\";\nimport { formatHelpMsgOptions } from \"./format-options.js\";\nimport { formatHelpMsgCommands } from \"./format-subcommands.js\";\nimport { helpMsgStyles } from \"./styles.js\";\n\nimport type { Cli, HelpMsgStyle, Subcommand } from \"../types.js\";\n\nexport function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>): string {\n const c = helpMsgStyles.default;\n if (style) Object.assign(c, style);\n\n const metadata = getCliMetadata(params);\n\n const formatTitle = (title: string) => c.title(` ${title.toUpperCase()}`);\n\n let msg = \"\";\n\n // CLI usage\n const usage =\n metadata.usage ||\n concat(\n c.punctuation(\"$\"),\n c.description(metadata.name),\n metadata.subcommands.length ? c.command(\"[command]\") : \"\",\n metadata.options.length ? c.option(\"[options]\") : \"\",\n metadata.arguments.length ? c.argument(\"<arguments>\") : \"\",\n metadata.allowPositional ? c.argument(\"<positionals>\") : \"\",\n );\n msg += formatTitle(\"Usage\") + ln(1);\n msg += indent(2) + usage + ln(2);\n\n // CLI description\n if (metadata.description) {\n msg += formatTitle(\"Description\") + ln(1);\n msg += indent(2) + c.description(metadata.description) + ln(2);\n }\n\n let longest = 0;\n\n // Prepare CLI options\n const optionsMetadata = metadata.options;\n\n const longestOptionTitle = optionsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(\", \");\n const optLength = names.length + metadata.placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestOptionTitle > longest) {\n longest = longestOptionTitle;\n }\n\n // Prepare CLI commands\n const subcommandsMetadata = metadata.subcommands;\n\n const longestSubcommandTitle = subcommandsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliases.concat([metadata.name]).join(\", \");\n const placeholder = subcommandPlaceholder(metadata);\n const optLength = names.length + placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestSubcommandTitle > longest) {\n longest = longestSubcommandTitle;\n }\n\n // Prepare CLI arguments\n const argsMetadata = metadata.arguments;\n const longestArgTitle = argsMetadata.reduce((acc, arg) => (arg.name.length > acc ? arg.name.length : acc), 0);\n if (longestArgTitle > longest) {\n longest = longestArgTitle;\n }\n\n // CLI options\n msg += formatHelpMsgOptions(optionsMetadata, c, longest);\n\n // CLI commands\n msg += formatHelpMsgCommands(subcommandsMetadata, c, longest);\n\n // CLI arguments\n msg += formatHelpMsgArguments(argsMetadata, c, longest);\n\n // CLI example\n if (metadata.example) {\n msg += formatTitle(\"Example\");\n msg += ln(1);\n const normalizeExample = metadata.example.replace(/\\n+/g, \"\\n\" + indent(3));\n msg += concat(indent(2), c.example(normalizeExample), ln(2));\n }\n\n return msg;\n}\n\nexport function formatSubcommandHelpMsg(subcommand: Subcommand, printStyle?: Partial<HelpMsgStyle>, cliName = \"\") {\n const c = helpMsgStyles.default;\n if (printStyle) Object.assign(c, printStyle);\n\n const usage =\n subcommand.usage ||\n concat(\n c.punctuation(\"$\"),\n cliName,\n c.command(subcommand.name),\n subcommand.options?.length ? c.option(\"[options]\") : \"\",\n subcommand.arguments?.length || subcommand.allowPositional ? c.argument(\"<arguments>\") : \"\",\n );\n\n const asCli: Cli = { cliName, usage, ...subcommand };\n\n return formatCliHelpMsg([asCli], c);\n}\n\nexport function printCliHelp(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>) {\n console.log(formatCliHelpMsg(params, style));\n}\n\nexport function printSubcommandHelp(subcommand: Subcommand, style?: Partial<HelpMsgStyle>, cliName = \"\") {\n console.log(formatSubcommandHelpMsg(subcommand, style, cliName));\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_getCliMetadata","require","_utils","_formatArguments","_formatOptions","_formatSubcommands","_styles","formatCliHelpMsg","params","style","c","helpMsgStyles","default","Object","assign","metadata","getCliMetadata","formatTitle","title","toUpperCase","msg","usage","concat","punctuation","description","name","subcommands","length","command","options","option","arguments","argument","allowPositional","ln","indent","replace","longest","optionsMetadata","longestOptionTitle","reduce","acc","names","aliasesAsArgs","nameAsArg","join","optLength","placeholder","subcommandsMetadata","longestSubcommandTitle","aliases","subcommandPlaceholder","argsMetadata","longestArgTitle","arg","formatHelpMsgOptions","formatHelpMsgCommands","formatHelpMsgArguments","example","normalizeExample","formatSubcommandHelpMsg","subcommand","printStyle","cliName","asCli","printCliHelp","console","log","printSubcommandHelp"],"sourceRoot":"../../../src/help-message","sources":["format-cli.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\nimport { concat, indent, ln, subcommandPlaceholder } from \"../utils.js\";\nimport { formatHelpMsgArguments } from \"./format-arguments.js\";\nimport { formatHelpMsgOptions } from \"./format-options.js\";\nimport { formatHelpMsgCommands } from \"./format-subcommands.js\";\nimport { helpMsgStyles } from \"./styles.js\";\n\nimport type { Cli, HelpMsgStyle, Subcommand } from \"../types.js\";\n\nexport function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>): string {\n const c = helpMsgStyles.default;\n if (style) Object.assign(c, style);\n\n const metadata = getCliMetadata(params);\n\n const formatTitle = (title: string) => c.title(` ${title.toUpperCase()}`);\n\n let msg = \"\";\n\n // CLI usage\n const usage =\n metadata.usage ||\n concat(\n c.punctuation(\"$\"),\n c.description(metadata.name),\n metadata.subcommands.length ? c.command(\"[command]\") : \"\",\n metadata.options.length ? c.option(\"[options]\") : \"\",\n metadata.arguments.length ? c.argument(\"<arguments>\") : \"\",\n metadata.allowPositional ? c.argument(\"<positionals>\") : \"\",\n );\n msg += formatTitle(\"Usage\") + ln(1);\n msg += indent(2) + usage + ln(2);\n\n // CLI description\n if (metadata.description) {\n msg += formatTitle(\"Description\") + ln(1);\n msg += indent(2) + c.description(metadata.description).replace(/\\n+/g, \"\\n\" + indent(2)) + ln(2);\n }\n\n let longest = 0;\n\n // Prepare CLI options\n const optionsMetadata = metadata.options;\n\n const longestOptionTitle = optionsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(\", \");\n const optLength = names.length + metadata.placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestOptionTitle > longest) {\n longest = longestOptionTitle;\n }\n\n // Prepare CLI commands\n const subcommandsMetadata = metadata.subcommands;\n\n const longestSubcommandTitle = subcommandsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliases.concat([metadata.name]).join(\", \");\n const placeholder = subcommandPlaceholder(metadata);\n const optLength = names.length + placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestSubcommandTitle > longest) {\n longest = longestSubcommandTitle;\n }\n\n // Prepare CLI arguments\n const argsMetadata = metadata.arguments;\n const longestArgTitle = argsMetadata.reduce((acc, arg) => (arg.name.length > acc ? arg.name.length : acc), 0);\n if (longestArgTitle > longest) {\n longest = longestArgTitle;\n }\n\n // CLI options\n msg += formatHelpMsgOptions(optionsMetadata, c, longest);\n\n // CLI commands\n msg += formatHelpMsgCommands(subcommandsMetadata, c, longest);\n\n // CLI arguments\n msg += formatHelpMsgArguments(argsMetadata, c, longest);\n\n // CLI example\n if (metadata.example) {\n msg += formatTitle(\"Example\");\n msg += ln(1);\n const normalizeExample = metadata.example.replace(/\\n+/g, \"\\n\" + indent(3));\n msg += concat(indent(2), c.example(normalizeExample), ln(2));\n }\n\n return msg;\n}\n\nexport function formatSubcommandHelpMsg(subcommand: Subcommand, printStyle?: Partial<HelpMsgStyle>, cliName = \"\") {\n const c = helpMsgStyles.default;\n if (printStyle) Object.assign(c, printStyle);\n\n const usage =\n subcommand.usage ||\n concat(\n c.punctuation(\"$\"),\n cliName,\n c.command(subcommand.name),\n subcommand.options?.length ? c.option(\"[options]\") : \"\",\n subcommand.arguments?.length || subcommand.allowPositional ? c.argument(\"<arguments>\") : \"\",\n );\n\n const asCli: Cli = { cliName, usage, ...subcommand };\n\n return formatCliHelpMsg([asCli], c);\n}\n\nexport function printCliHelp(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>) {\n console.log(formatCliHelpMsg(params, style));\n}\n\nexport function printSubcommandHelp(subcommand: Subcommand, style?: Partial<HelpMsgStyle>, cliName = \"\") {\n console.log(formatSubcommandHelpMsg(subcommand, style, cliName));\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.createArguments=createArguments;exports.createCli=createCli;exports.createOptions=createOptions;exports.createSubcommand=createSubcommand;Object.defineProperty(exports,"formatCliHelpMsg",{enumerable:true,get:function(){return _formatCli.formatCliHelpMsg;}});Object.defineProperty(exports,"formatSubcommandHelpMsg",{enumerable:true,get:function(){return _formatCli.formatSubcommandHelpMsg;}});Object.defineProperty(exports,"generateBashAutocompleteScript",{enumerable:true,get:function(){return _bashAutocompleteScript.generateBashAutocompleteScript;}});Object.defineProperty(exports,"generateMarkdown",{enumerable:true,get:function(){return _generateMarkdown.generateMarkdown;}});Object.defineProperty(exports,"generatePowerShellAutocompleteScript",{enumerable:true,get:function(){return _powershellAutocompleteScript.generatePowerShellAutocompleteScript;}});Object.defineProperty(exports,"generateZshAutocompleteScript",{enumerable:true,get:function(){return _zshAutocompleteScript.generateZshAutocompleteScript;}});Object.defineProperty(exports,"getArgumentsMetadata",{enumerable:true,get:function(){return _getArgumentsMetadata.getArgumentsMetadata;}});Object.defineProperty(exports,"getCliMetadata",{enumerable:true,get:function(){return _getCliMetadata.getCliMetadata;}});Object.defineProperty(exports,"getOptionsMetadata",{enumerable:true,get:function(){return _getOptionsMetadata.getOptionsMetadata;}});Object.defineProperty(exports,"getSubcommandsMetadata",{enumerable:true,get:function(){return _getSubcommandsMetadata.getSubcommandsMetadata;}});Object.defineProperty(exports,"helpMsgStyles",{enumerable:true,get:function(){return _styles.helpMsgStyles;}});Object.defineProperty(exports,"isOptionalSchema",{enumerable:true,get:function(){return _zodUtils.isOptionalSchema;}});Object.defineProperty(exports,"parse",{enumerable:true,get:function(){return _unsafeParse.unsafeParse;}});Object.defineProperty(exports,"parseAsync",{enumerable:true,get:function(){return _unsafeParse.unsafeParseAsync;}});Object.defineProperty(exports,"printCliHelp",{enumerable:true,get:function(){return _formatCli.printCliHelp;}});Object.defineProperty(exports,"printSubcommandHelp",{enumerable:true,get:function(){return _formatCli.printSubcommandHelp;}});Object.defineProperty(exports,"safeParse",{enumerable:true,get:function(){return _safeParse.safeParse;}});Object.defineProperty(exports,"safeParseAsync",{enumerable:true,get:function(){return _safeParse.safeParseAsync;}});Object.defineProperty(exports,"schemaDefaultValue",{enumerable:true,get:function(){return _zodUtils.schemaDefaultValue;}});Object.defineProperty(exports,"stringToArray",{enumerable:true,get:function(){return _zodUtils.stringToArray;}});Object.defineProperty(exports,"stringToSet",{enumerable:true,get:function(){return _zodUtils.stringToSet;}});var _formatCli=require("./help-message/format-cli.js");var _styles=require("./help-message/styles.js");var _unsafeParse=require("./parser/unsafe-parse.js");var _safeParse=require("./parser/safe-parse.js");var _zodUtils=require("./zod-utils.js");var _bashAutocompleteScript=require("./autocomplete-scripts/bash-autocomplete-script.js");var _powershellAutocompleteScript=require("./autocomplete-scripts/powershell-autocomplete-script.js");var _zshAutocompleteScript=require("./autocomplete-scripts/zsh-autocomplete-script.js");var _getArgumentsMetadata=require("./metadata/get-arguments-metadata.js");var _getCliMetadata=require("./metadata/get-cli-metadata.js");var _getOptionsMetadata=require("./metadata/get-options-metadata.js");var _getSubcommandsMetadata=require("./metadata/get-subcommands-metadata.js");var _generateMarkdown=require("./markdown/generate-markdown.js");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});}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});}function createOptions(options){return options;}function createArguments(args){return args;}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.createArguments=createArguments;exports.createCli=createCli;exports.createOptions=createOptions;exports.createSubcommand=createSubcommand;Object.defineProperty(exports,"formatCliHelpMsg",{enumerable:true,get:function(){return _formatCli.formatCliHelpMsg;}});Object.defineProperty(exports,"formatSubcommandHelpMsg",{enumerable:true,get:function(){return _formatCli.formatSubcommandHelpMsg;}});Object.defineProperty(exports,"generateBashAutocompleteScript",{enumerable:true,get:function(){return _bashAutocompleteScript.generateBashAutocompleteScript;}});Object.defineProperty(exports,"generateMarkdown",{enumerable:true,get:function(){return _generateMarkdown.generateMarkdown;}});Object.defineProperty(exports,"generatePowerShellAutocompleteScript",{enumerable:true,get:function(){return _powershellAutocompleteScript.generatePowerShellAutocompleteScript;}});Object.defineProperty(exports,"generateZshAutocompleteScript",{enumerable:true,get:function(){return _zshAutocompleteScript.generateZshAutocompleteScript;}});Object.defineProperty(exports,"getArgumentsMetadata",{enumerable:true,get:function(){return _getArgumentsMetadata.getArgumentsMetadata;}});Object.defineProperty(exports,"getCliMetadata",{enumerable:true,get:function(){return _getCliMetadata.getCliMetadata;}});Object.defineProperty(exports,"getOptionsMetadata",{enumerable:true,get:function(){return _getOptionsMetadata.getOptionsMetadata;}});Object.defineProperty(exports,"getSubcommandsMetadata",{enumerable:true,get:function(){return _getSubcommandsMetadata.getSubcommandsMetadata;}});Object.defineProperty(exports,"helpMsgStyles",{enumerable:true,get:function(){return _styles.helpMsgStyles;}});Object.defineProperty(exports,"isOptionalSchema",{enumerable:true,get:function(){return _zodUtils.isOptionalSchema;}});Object.defineProperty(exports,"parse",{enumerable:true,get:function(){return _unsafeParse.unsafeParse;}});Object.defineProperty(exports,"parseAsync",{enumerable:true,get:function(){return _unsafeParse.unsafeParseAsync;}});Object.defineProperty(exports,"printCliHelp",{enumerable:true,get:function(){return _formatCli.printCliHelp;}});Object.defineProperty(exports,"printSubcommandHelp",{enumerable:true,get:function(){return _formatCli.printSubcommandHelp;}});Object.defineProperty(exports,"safeParse",{enumerable:true,get:function(){return _safeParse.safeParse;}});Object.defineProperty(exports,"safeParseAsync",{enumerable:true,get:function(){return _safeParse.safeParseAsync;}});Object.defineProperty(exports,"schemaDefaultValue",{enumerable:true,get:function(){return _zodUtils.schemaDefaultValue;}});Object.defineProperty(exports,"stringToArray",{enumerable:true,get:function(){return _zodUtils.stringToArray;}});Object.defineProperty(exports,"stringToSet",{enumerable:true,get:function(){return _zodUtils.stringToSet;}});var _formatCli=require("./help-message/format-cli.js");var _styles=require("./help-message/styles.js");var _safeParse=require("./parser/safe-parse.js");var _unsafeParse=require("./parser/unsafe-parse.js");var _zodUtils=require("./zod-utils.js");var _bashAutocompleteScript=require("./autocomplete-scripts/bash-autocomplete-script.js");var _powershellAutocompleteScript=require("./autocomplete-scripts/powershell-autocomplete-script.js");var _zshAutocompleteScript=require("./autocomplete-scripts/zsh-autocomplete-script.js");var _getArgumentsMetadata=require("./metadata/get-arguments-metadata.js");var _getCliMetadata=require("./metadata/get-cli-metadata.js");var _getOptionsMetadata=require("./metadata/get-options-metadata.js");var _getSubcommandsMetadata=require("./metadata/get-subcommands-metadata.js");var _generateMarkdown=require("./markdown/generate-markdown.js");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});}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});}function createOptions(options){return options;}function createArguments(args){return args;}
@@ -1 +1 @@
1
- {"version":3,"names":["_formatCli","require","_styles","_unsafeParse","_safeParse","_zodUtils","_bashAutocompleteScript","_powershellAutocompleteScript","_zshAutocompleteScript","_getArgumentsMetadata","_getCliMetadata","_getOptionsMetadata","_getSubcommandsMetadata","_generateMarkdown","createCli","input","setAction","action","setPreValidationHook","hook","preValidation","Object","assign","createSubcommand","createOptions","options","createArguments","args"],"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":"00FAuEA,IAAAA,UAAA,CAAAC,OAAA,iCAMA,IAAAC,OAAA,CAAAD,OAAA,6BAEA,IAAAE,YAAA,CAAAF,OAAA,6BACA,IAAAG,UAAA,CAAAH,OAAA,2BAEA,IAAAI,SAAA,CAAAJ,OAAA,mBAEA,IAAAK,uBAAA,CAAAL,OAAA,uDACA,IAAAM,6BAAA,CAAAN,OAAA,6DACA,IAAAO,sBAAA,CAAAP,OAAA,sDAEA,IAAAQ,qBAAA,CAAAR,OAAA,yCACA,IAAAS,eAAA,CAAAT,OAAA,mCACA,IAAAU,mBAAA,CAAAV,OAAA,uCACA,IAAAW,uBAAA,CAAAX,OAAA,2CAEA,IAAAY,iBAAA,CAAAZ,OAAA,oCAlEO,QAAS,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,CAEO,QAAS,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,CAMO,QAAS,CAAAM,aAAaA,CAAwCC,OAA6B,CAAE,CAClG,MAAO,CAAAA,OAAO,CAChB,CAMO,QAAS,CAAAC,eAAeA,CAA4CC,IAA4B,CAAE,CACvG,MAAO,CAAAA,IAAI,CACb","ignoreList":[]}
1
+ {"version":3,"names":["_formatCli","require","_styles","_safeParse","_unsafeParse","_zodUtils","_bashAutocompleteScript","_powershellAutocompleteScript","_zshAutocompleteScript","_getArgumentsMetadata","_getCliMetadata","_getOptionsMetadata","_getSubcommandsMetadata","_generateMarkdown","createCli","input","setAction","action","setPreValidationHook","hook","preValidation","Object","assign","createSubcommand","createOptions","options","createArguments","args"],"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":"00FAuEA,IAAAA,UAAA,CAAAC,OAAA,iCAMA,IAAAC,OAAA,CAAAD,OAAA,6BAEA,IAAAE,UAAA,CAAAF,OAAA,2BACA,IAAAG,YAAA,CAAAH,OAAA,6BAEA,IAAAI,SAAA,CAAAJ,OAAA,mBAEA,IAAAK,uBAAA,CAAAL,OAAA,uDACA,IAAAM,6BAAA,CAAAN,OAAA,6DACA,IAAAO,sBAAA,CAAAP,OAAA,sDAEA,IAAAQ,qBAAA,CAAAR,OAAA,yCACA,IAAAS,eAAA,CAAAT,OAAA,mCACA,IAAAU,mBAAA,CAAAV,OAAA,uCACA,IAAAW,uBAAA,CAAAX,OAAA,2CAEA,IAAAY,iBAAA,CAAAZ,OAAA,oCAlEO,QAAS,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,CAEO,QAAS,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,CAMO,QAAS,CAAAM,aAAaA,CAAwCC,OAA6B,CAAE,CAClG,MAAO,CAAAA,OAAO,CAChB,CAMO,QAAS,CAAAC,eAAeA,CAA4CC,IAA4B,CAAE,CACvG,MAAO,CAAAA,IAAI,CACb","ignoreList":[]}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.generateMarkdown=generateMarkdown;var _getCliMetadata=require("../metadata/get-cli-metadata.js");function generateMarkdown(...params){const metadata=(0,_getCliMetadata.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
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.generateMarkdown=generateMarkdown;var _getCliMetadata=require("../metadata/get-cli-metadata.js");function generateMarkdown(...params){const metadata=(0,_getCliMetadata.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);}md=stripAnsi(md);md=escapeHtmlTags(md);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&&` ${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 escapeHtmlTags(markdown){return markdown.replace(/(```[\s\S]*?```|`[^`]*`)|(<[^>]+>)/g,(_,code,html)=>{if(code){return code;}return html.replace(/[&<>]/g,match=>{return{"&":"&amp;","<":"&lt;",">":"&gt;"}[match];});});}function ansiRegex({onlyFirst=false}={}){const ST="(?:\\u0007|\\u001B\\u005C|\\u009C)";const osc=`(?:\\u001B\\][\\s\\S]*?${ST})`;const csi="[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";const pattern=`${osc}|${csi}`;return new RegExp(pattern,onlyFirst?undefined:"g");}const regex=ansiRegex();function stripAnsi(string){return string.replace(regex,"");}
@@ -1 +1 @@
1
- {"version":3,"names":["_getCliMetadata","require","generateMarkdown","params","metadata","getCliMetadata","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","require","generateMarkdown","params","metadata","getCliMetadata","md","name","description","example","renderExamples","options","length","renderOptions","arguments","renderArguments","subcommands","renderSubcommands","stripAnsi","escapeHtmlTags","examples","list","outStr","lang","listIndent","repeat","replace","optionsMetadata","h","i","aliases","nameAsArg","concat","aliasesAsArgs","join","placeholder","optional","defaultValue","defaultValueAsString","argsMetadata","subcommandsMetadata","markdown","_","code","html","match","ansiRegex","onlyFirst","ST","osc","csi","pattern","RegExp","undefined","regex","string"],"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 md = stripAnsi(md);\n md = escapeHtmlTags(md);\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 && ` ${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 escapeHtmlTags(markdown: string) {\n return markdown.replace(/(```[\\s\\S]*?```|`[^`]*`)|(<[^>]+>)/g, (_: string, code: string, html: string) => {\n if (code) {\n return code;\n }\n\n return html.replace(/[&<>]/g, match => {\n return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\" }[match as \"&\" | \"<\" | \">\"];\n });\n });\n}\n\n/** Credits: https://github.com/chalk/ansi-regex */\nfunction ansiRegex({ onlyFirst = false } = {}) {\n // Valid string terminator sequences are BEL, ESC\\, and 0x9c\n const ST = \"(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)\";\n\n // OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n const osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n // CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n const csi = \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]\";\n\n const pattern = `${osc}|${csi}`;\n\n return new RegExp(pattern, onlyFirst ? undefined : \"g\");\n}\n\nconst regex = ansiRegex();\n\nfunction stripAnsi(string: string): string {\n return string.replace(regex, \"\");\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
- import{getCliMetadata}from"../metadata/get-cli-metadata.js";import{concat,indent,ln,subcommandPlaceholder}from"../utils.js";import{formatHelpMsgArguments}from"./format-arguments.js";import{formatHelpMsgOptions}from"./format-options.js";import{formatHelpMsgCommands}from"./format-subcommands.js";import{helpMsgStyles}from"./styles.js";export function formatCliHelpMsg(params,style){const c=helpMsgStyles.default;if(style)Object.assign(c,style);const metadata=getCliMetadata(params);const formatTitle=title=>c.title(` ${title.toUpperCase()}`);let msg="";const usage=metadata.usage||concat(c.punctuation("$"),c.description(metadata.name),metadata.subcommands.length?c.command("[command]"):"",metadata.options.length?c.option("[options]"):"",metadata.arguments.length?c.argument("<arguments>"):"",metadata.allowPositional?c.argument("<positionals>"):"");msg+=formatTitle("Usage")+ln(1);msg+=indent(2)+usage+ln(2);if(metadata.description){msg+=formatTitle("Description")+ln(1);msg+=indent(2)+c.description(metadata.description)+ln(2);}let longest=0;const optionsMetadata=metadata.options;const longestOptionTitle=optionsMetadata.reduce((acc,metadata)=>{const names=metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(", ");const optLength=names.length+metadata.placeholder.length;return optLength>acc?optLength:acc;},0);if(longestOptionTitle>longest){longest=longestOptionTitle;}const subcommandsMetadata=metadata.subcommands;const longestSubcommandTitle=subcommandsMetadata.reduce((acc,metadata)=>{const names=metadata.aliases.concat([metadata.name]).join(", ");const placeholder=subcommandPlaceholder(metadata);const optLength=names.length+placeholder.length;return optLength>acc?optLength:acc;},0);if(longestSubcommandTitle>longest){longest=longestSubcommandTitle;}const argsMetadata=metadata.arguments;const longestArgTitle=argsMetadata.reduce((acc,arg)=>arg.name.length>acc?arg.name.length:acc,0);if(longestArgTitle>longest){longest=longestArgTitle;}msg+=formatHelpMsgOptions(optionsMetadata,c,longest);msg+=formatHelpMsgCommands(subcommandsMetadata,c,longest);msg+=formatHelpMsgArguments(argsMetadata,c,longest);if(metadata.example){msg+=formatTitle("Example");msg+=ln(1);const normalizeExample=metadata.example.replace(/\n+/g,"\n"+indent(3));msg+=concat(indent(2),c.example(normalizeExample),ln(2));}return msg;}export function formatSubcommandHelpMsg(subcommand,printStyle,cliName=""){const c=helpMsgStyles.default;if(printStyle)Object.assign(c,printStyle);const usage=subcommand.usage||concat(c.punctuation("$"),cliName,c.command(subcommand.name),subcommand.options?.length?c.option("[options]"):"",subcommand.arguments?.length||subcommand.allowPositional?c.argument("<arguments>"):"");const asCli={cliName,usage,...subcommand};return formatCliHelpMsg([asCli],c);}export function printCliHelp(params,style){console.log(formatCliHelpMsg(params,style));}export function printSubcommandHelp(subcommand,style,cliName=""){console.log(formatSubcommandHelpMsg(subcommand,style,cliName));}
1
+ import{getCliMetadata}from"../metadata/get-cli-metadata.js";import{concat,indent,ln,subcommandPlaceholder}from"../utils.js";import{formatHelpMsgArguments}from"./format-arguments.js";import{formatHelpMsgOptions}from"./format-options.js";import{formatHelpMsgCommands}from"./format-subcommands.js";import{helpMsgStyles}from"./styles.js";export function formatCliHelpMsg(params,style){const c=helpMsgStyles.default;if(style)Object.assign(c,style);const metadata=getCliMetadata(params);const formatTitle=title=>c.title(` ${title.toUpperCase()}`);let msg="";const usage=metadata.usage||concat(c.punctuation("$"),c.description(metadata.name),metadata.subcommands.length?c.command("[command]"):"",metadata.options.length?c.option("[options]"):"",metadata.arguments.length?c.argument("<arguments>"):"",metadata.allowPositional?c.argument("<positionals>"):"");msg+=formatTitle("Usage")+ln(1);msg+=indent(2)+usage+ln(2);if(metadata.description){msg+=formatTitle("Description")+ln(1);msg+=indent(2)+c.description(metadata.description).replace(/\n+/g,"\n"+indent(2))+ln(2);}let longest=0;const optionsMetadata=metadata.options;const longestOptionTitle=optionsMetadata.reduce((acc,metadata)=>{const names=metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(", ");const optLength=names.length+metadata.placeholder.length;return optLength>acc?optLength:acc;},0);if(longestOptionTitle>longest){longest=longestOptionTitle;}const subcommandsMetadata=metadata.subcommands;const longestSubcommandTitle=subcommandsMetadata.reduce((acc,metadata)=>{const names=metadata.aliases.concat([metadata.name]).join(", ");const placeholder=subcommandPlaceholder(metadata);const optLength=names.length+placeholder.length;return optLength>acc?optLength:acc;},0);if(longestSubcommandTitle>longest){longest=longestSubcommandTitle;}const argsMetadata=metadata.arguments;const longestArgTitle=argsMetadata.reduce((acc,arg)=>arg.name.length>acc?arg.name.length:acc,0);if(longestArgTitle>longest){longest=longestArgTitle;}msg+=formatHelpMsgOptions(optionsMetadata,c,longest);msg+=formatHelpMsgCommands(subcommandsMetadata,c,longest);msg+=formatHelpMsgArguments(argsMetadata,c,longest);if(metadata.example){msg+=formatTitle("Example");msg+=ln(1);const normalizeExample=metadata.example.replace(/\n+/g,"\n"+indent(3));msg+=concat(indent(2),c.example(normalizeExample),ln(2));}return msg;}export function formatSubcommandHelpMsg(subcommand,printStyle,cliName=""){const c=helpMsgStyles.default;if(printStyle)Object.assign(c,printStyle);const usage=subcommand.usage||concat(c.punctuation("$"),cliName,c.command(subcommand.name),subcommand.options?.length?c.option("[options]"):"",subcommand.arguments?.length||subcommand.allowPositional?c.argument("<arguments>"):"");const asCli={cliName,usage,...subcommand};return formatCliHelpMsg([asCli],c);}export function printCliHelp(params,style){console.log(formatCliHelpMsg(params,style));}export function printSubcommandHelp(subcommand,style,cliName=""){console.log(formatSubcommandHelpMsg(subcommand,style,cliName));}
@@ -1 +1 @@
1
- {"version":3,"names":["getCliMetadata","concat","indent","ln","subcommandPlaceholder","formatHelpMsgArguments","formatHelpMsgOptions","formatHelpMsgCommands","helpMsgStyles","formatCliHelpMsg","params","style","c","default","Object","assign","metadata","formatTitle","title","toUpperCase","msg","usage","punctuation","description","name","subcommands","length","command","options","option","arguments","argument","allowPositional","longest","optionsMetadata","longestOptionTitle","reduce","acc","names","aliasesAsArgs","nameAsArg","join","optLength","placeholder","subcommandsMetadata","longestSubcommandTitle","aliases","argsMetadata","longestArgTitle","arg","example","normalizeExample","replace","formatSubcommandHelpMsg","subcommand","printStyle","cliName","asCli","printCliHelp","console","log","printSubcommandHelp"],"sourceRoot":"../../../src/help-message","sources":["format-cli.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\nimport { concat, indent, ln, subcommandPlaceholder } from \"../utils.js\";\nimport { formatHelpMsgArguments } from \"./format-arguments.js\";\nimport { formatHelpMsgOptions } from \"./format-options.js\";\nimport { formatHelpMsgCommands } from \"./format-subcommands.js\";\nimport { helpMsgStyles } from \"./styles.js\";\n\nimport type { Cli, HelpMsgStyle, Subcommand } from \"../types.js\";\n\nexport function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>): string {\n const c = helpMsgStyles.default;\n if (style) Object.assign(c, style);\n\n const metadata = getCliMetadata(params);\n\n const formatTitle = (title: string) => c.title(` ${title.toUpperCase()}`);\n\n let msg = \"\";\n\n // CLI usage\n const usage =\n metadata.usage ||\n concat(\n c.punctuation(\"$\"),\n c.description(metadata.name),\n metadata.subcommands.length ? c.command(\"[command]\") : \"\",\n metadata.options.length ? c.option(\"[options]\") : \"\",\n metadata.arguments.length ? c.argument(\"<arguments>\") : \"\",\n metadata.allowPositional ? c.argument(\"<positionals>\") : \"\",\n );\n msg += formatTitle(\"Usage\") + ln(1);\n msg += indent(2) + usage + ln(2);\n\n // CLI description\n if (metadata.description) {\n msg += formatTitle(\"Description\") + ln(1);\n msg += indent(2) + c.description(metadata.description) + ln(2);\n }\n\n let longest = 0;\n\n // Prepare CLI options\n const optionsMetadata = metadata.options;\n\n const longestOptionTitle = optionsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(\", \");\n const optLength = names.length + metadata.placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestOptionTitle > longest) {\n longest = longestOptionTitle;\n }\n\n // Prepare CLI commands\n const subcommandsMetadata = metadata.subcommands;\n\n const longestSubcommandTitle = subcommandsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliases.concat([metadata.name]).join(\", \");\n const placeholder = subcommandPlaceholder(metadata);\n const optLength = names.length + placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestSubcommandTitle > longest) {\n longest = longestSubcommandTitle;\n }\n\n // Prepare CLI arguments\n const argsMetadata = metadata.arguments;\n const longestArgTitle = argsMetadata.reduce((acc, arg) => (arg.name.length > acc ? arg.name.length : acc), 0);\n if (longestArgTitle > longest) {\n longest = longestArgTitle;\n }\n\n // CLI options\n msg += formatHelpMsgOptions(optionsMetadata, c, longest);\n\n // CLI commands\n msg += formatHelpMsgCommands(subcommandsMetadata, c, longest);\n\n // CLI arguments\n msg += formatHelpMsgArguments(argsMetadata, c, longest);\n\n // CLI example\n if (metadata.example) {\n msg += formatTitle(\"Example\");\n msg += ln(1);\n const normalizeExample = metadata.example.replace(/\\n+/g, \"\\n\" + indent(3));\n msg += concat(indent(2), c.example(normalizeExample), ln(2));\n }\n\n return msg;\n}\n\nexport function formatSubcommandHelpMsg(subcommand: Subcommand, printStyle?: Partial<HelpMsgStyle>, cliName = \"\") {\n const c = helpMsgStyles.default;\n if (printStyle) Object.assign(c, printStyle);\n\n const usage =\n subcommand.usage ||\n concat(\n c.punctuation(\"$\"),\n cliName,\n c.command(subcommand.name),\n subcommand.options?.length ? c.option(\"[options]\") : \"\",\n subcommand.arguments?.length || subcommand.allowPositional ? c.argument(\"<arguments>\") : \"\",\n );\n\n const asCli: Cli = { cliName, usage, ...subcommand };\n\n return formatCliHelpMsg([asCli], c);\n}\n\nexport function printCliHelp(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>) {\n console.log(formatCliHelpMsg(params, style));\n}\n\nexport function printSubcommandHelp(subcommand: Subcommand, style?: Partial<HelpMsgStyle>, cliName = \"\") {\n console.log(formatSubcommandHelpMsg(subcommand, style, cliName));\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getCliMetadata","concat","indent","ln","subcommandPlaceholder","formatHelpMsgArguments","formatHelpMsgOptions","formatHelpMsgCommands","helpMsgStyles","formatCliHelpMsg","params","style","c","default","Object","assign","metadata","formatTitle","title","toUpperCase","msg","usage","punctuation","description","name","subcommands","length","command","options","option","arguments","argument","allowPositional","replace","longest","optionsMetadata","longestOptionTitle","reduce","acc","names","aliasesAsArgs","nameAsArg","join","optLength","placeholder","subcommandsMetadata","longestSubcommandTitle","aliases","argsMetadata","longestArgTitle","arg","example","normalizeExample","formatSubcommandHelpMsg","subcommand","printStyle","cliName","asCli","printCliHelp","console","log","printSubcommandHelp"],"sourceRoot":"../../../src/help-message","sources":["format-cli.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\nimport { concat, indent, ln, subcommandPlaceholder } from \"../utils.js\";\nimport { formatHelpMsgArguments } from \"./format-arguments.js\";\nimport { formatHelpMsgOptions } from \"./format-options.js\";\nimport { formatHelpMsgCommands } from \"./format-subcommands.js\";\nimport { helpMsgStyles } from \"./styles.js\";\n\nimport type { Cli, HelpMsgStyle, Subcommand } from \"../types.js\";\n\nexport function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>): string {\n const c = helpMsgStyles.default;\n if (style) Object.assign(c, style);\n\n const metadata = getCliMetadata(params);\n\n const formatTitle = (title: string) => c.title(` ${title.toUpperCase()}`);\n\n let msg = \"\";\n\n // CLI usage\n const usage =\n metadata.usage ||\n concat(\n c.punctuation(\"$\"),\n c.description(metadata.name),\n metadata.subcommands.length ? c.command(\"[command]\") : \"\",\n metadata.options.length ? c.option(\"[options]\") : \"\",\n metadata.arguments.length ? c.argument(\"<arguments>\") : \"\",\n metadata.allowPositional ? c.argument(\"<positionals>\") : \"\",\n );\n msg += formatTitle(\"Usage\") + ln(1);\n msg += indent(2) + usage + ln(2);\n\n // CLI description\n if (metadata.description) {\n msg += formatTitle(\"Description\") + ln(1);\n msg += indent(2) + c.description(metadata.description).replace(/\\n+/g, \"\\n\" + indent(2)) + ln(2);\n }\n\n let longest = 0;\n\n // Prepare CLI options\n const optionsMetadata = metadata.options;\n\n const longestOptionTitle = optionsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliasesAsArgs.concat([metadata.nameAsArg]).join(\", \");\n const optLength = names.length + metadata.placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestOptionTitle > longest) {\n longest = longestOptionTitle;\n }\n\n // Prepare CLI commands\n const subcommandsMetadata = metadata.subcommands;\n\n const longestSubcommandTitle = subcommandsMetadata.reduce((acc, metadata) => {\n const names = metadata.aliases.concat([metadata.name]).join(\", \");\n const placeholder = subcommandPlaceholder(metadata);\n const optLength = names.length + placeholder.length;\n return optLength > acc ? optLength : acc;\n }, 0);\n\n if (longestSubcommandTitle > longest) {\n longest = longestSubcommandTitle;\n }\n\n // Prepare CLI arguments\n const argsMetadata = metadata.arguments;\n const longestArgTitle = argsMetadata.reduce((acc, arg) => (arg.name.length > acc ? arg.name.length : acc), 0);\n if (longestArgTitle > longest) {\n longest = longestArgTitle;\n }\n\n // CLI options\n msg += formatHelpMsgOptions(optionsMetadata, c, longest);\n\n // CLI commands\n msg += formatHelpMsgCommands(subcommandsMetadata, c, longest);\n\n // CLI arguments\n msg += formatHelpMsgArguments(argsMetadata, c, longest);\n\n // CLI example\n if (metadata.example) {\n msg += formatTitle(\"Example\");\n msg += ln(1);\n const normalizeExample = metadata.example.replace(/\\n+/g, \"\\n\" + indent(3));\n msg += concat(indent(2), c.example(normalizeExample), ln(2));\n }\n\n return msg;\n}\n\nexport function formatSubcommandHelpMsg(subcommand: Subcommand, printStyle?: Partial<HelpMsgStyle>, cliName = \"\") {\n const c = helpMsgStyles.default;\n if (printStyle) Object.assign(c, printStyle);\n\n const usage =\n subcommand.usage ||\n concat(\n c.punctuation(\"$\"),\n cliName,\n c.command(subcommand.name),\n subcommand.options?.length ? c.option(\"[options]\") : \"\",\n subcommand.arguments?.length || subcommand.allowPositional ? c.argument(\"<arguments>\") : \"\",\n );\n\n const asCli: Cli = { cliName, usage, ...subcommand };\n\n return formatCliHelpMsg([asCli], c);\n}\n\nexport function printCliHelp(params: readonly [Cli, ...Subcommand[]], style?: Partial<HelpMsgStyle>) {\n console.log(formatCliHelpMsg(params, style));\n}\n\nexport function printSubcommandHelp(subcommand: Subcommand, style?: Partial<HelpMsgStyle>, cliName = \"\") {\n console.log(formatSubcommandHelpMsg(subcommand, style, cliName));\n}\n"],"mappings":"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","ignoreList":[]}
@@ -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);}md=stripAnsi(md);md=escapeHtmlTags(md);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&&` ${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 escapeHtmlTags(markdown){return markdown.replace(/(```[\s\S]*?```|`[^`]*`)|(<[^>]+>)/g,(_,code,html)=>{if(code){return code;}return html.replace(/[&<>]/g,match=>{return{"&":"&amp;","<":"&lt;",">":"&gt;"}[match];});});}function ansiRegex({onlyFirst=false}={}){const ST="(?:\\u0007|\\u001B\\u005C|\\u009C)";const osc=`(?:\\u001B\\][\\s\\S]*?${ST})`;const csi="[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";const pattern=`${osc}|${csi}`;return new RegExp(pattern,onlyFirst?undefined:"g");}const regex=ansiRegex();function stripAnsi(string){return string.replace(regex,"");}
@@ -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","stripAnsi","escapeHtmlTags","examples","list","outStr","lang","listIndent","repeat","replace","optionsMetadata","h","i","aliases","nameAsArg","concat","aliasesAsArgs","join","placeholder","optional","defaultValue","defaultValueAsString","argsMetadata","subcommandsMetadata","markdown","_","code","html","match","ansiRegex","onlyFirst","ST","osc","csi","pattern","RegExp","undefined","regex","string"],"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 md = stripAnsi(md);\n md = escapeHtmlTags(md);\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 && ` ${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 escapeHtmlTags(markdown: string) {\n return markdown.replace(/(```[\\s\\S]*?```|`[^`]*`)|(<[^>]+>)/g, (_: string, code: string, html: string) => {\n if (code) {\n return code;\n }\n\n return html.replace(/[&<>]/g, match => {\n return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\" }[match as \"&\" | \"<\" | \">\"];\n });\n });\n}\n\n/** Credits: https://github.com/chalk/ansi-regex */\nfunction ansiRegex({ onlyFirst = false } = {}) {\n // Valid string terminator sequences are BEL, ESC\\, and 0x9c\n const ST = \"(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)\";\n\n // OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n const osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n // CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n const csi = \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]\";\n\n const pattern = `${osc}|${csi}`;\n\n return new RegExp(pattern, onlyFirst ? undefined : \"g\");\n}\n\nconst regex = ansiRegex();\n\nfunction stripAnsi(string: string): string {\n return string.replace(regex, \"\");\n}\n"],"mappings":"AAAA,OAASA,cAAc,KAAQ,iCAAiC,CAKhE,MAAO,SAAS,CAAAC,gBAAgBA,CAAC,GAAGC,MAA8B,CAAU,CAC1E,KAAM,CAAAC,QAAQ,CAAGH,cAAc,CAACE,MAAM,CAAC,CAEvC,GAAI,CAAAE,EAAE,CAAG,gDAAgD,CAGzDA,EAAE,EAAI,KAAKD,QAAQ,CAACE,IAAI,MAAM,CAG9B,GAAIF,QAAQ,CAACG,WAAW,CAAE,CACxBF,EAAE,EAAI,GAAGD,QAAQ,CAACG,WAAW,IAAI,CACnC,CAGA,GAAIH,QAAQ,CAACI,OAAO,CAAE,CACpBH,EAAE,EAAII,cAAc,CAACL,QAAQ,CAACI,OAAO,CAAC,CACxC,CAGA,GAAIJ,QAAQ,CAACM,OAAO,CAACC,MAAM,CAAE,CAC3BN,EAAE,EAAI,mBAAmB,CACzBA,EAAE,EAAIO,aAAa,CAACR,QAAQ,CAACM,OAAO,CAAE,CAAC,CAAC,CAC1C,CAGA,GAAIN,QAAQ,CAACS,SAAS,CAACF,MAAM,CAAE,CAC7BN,EAAE,EAAI,qBAAqB,CAC3BA,EAAE,EAAIS,eAAe,CAACV,QAAQ,CAACS,SAAS,CAAE,CAAC,CAAC,CAC9C,CAGA,GAAIT,QAAQ,CAACW,WAAW,CAACJ,MAAM,CAAE,CAC/BN,EAAE,EAAI,uBAAuB,CAC7BA,EAAE,EAAIW,iBAAiB,CAACZ,QAAQ,CAACW,WAAW,CAAC,CAC/C,CAEAV,EAAE,CAAGY,SAAS,CAACZ,EAAE,CAAC,CAClBA,EAAE,CAAGa,cAAc,CAACb,EAAE,CAAC,CAEvB,MAAO,CAAAA,EAAE,CACX,CAEA,QAAS,CAAAI,cAAcA,CAACU,QAAgB,CAAEC,IAAI,CAAG,KAAK,CAAE,CACtD,GAAI,CAAAC,MAAM,CAAG,EAAE,CAEf,KAAM,CAAAC,IAAI,CAAG,MAAM,CAEnB,KAAM,CAAAC,UAAU,CAAG,GAAG,CAACC,MAAM,CAACJ,IAAI,CAAG,CAAC,CAAG,CAAC,CAAC,CAE3CC,MAAM,EAAI,IAAI,EAAID,IAAI,CAAG,IAAI,CAAG,EAAE,CAAC,CAEnCC,MAAM,EAAI,KAAK,CAAGC,IAAI,CAAG,IAAI,CAC7BD,MAAM,EAAIE,UAAU,CAAGJ,QAAQ,CAACM,OAAO,CAAC,KAAK,CAAE,IAAI,CAAGF,UAAU,CAAC,CACjEF,MAAM,EAAI,IAAI,CAAGE,UAAU,CAAG,OAAO,CAErC,MAAO,CAAAF,MAAM,CACf,CAEA,QAAS,CAAAT,aAAaA,CAACc,eAAiC,CAAG,EAAE,CAAEC,CAAS,CAAE,CACxE,GAAI,CAAAN,MAAM,CAAG,EAAE,CAEf,IAAK,GAAI,CAAAO,CAAC,CAAG,CAAC,CAAEA,CAAC,CAAGF,eAAe,CAACf,MAAM,CAAEiB,CAAC,EAAE,CAAE,CAC/C,KAAM,CAAAxB,QAAQ,CAAGsB,eAAe,CAACE,CAAC,CAAC,CAEnC,KAAM,CAAAC,OAAO,CAAG,CAACzB,QAAQ,CAAC0B,SAAS,CAAC,CAACC,MAAM,CAAC3B,QAAQ,CAAC4B,aAAa,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAE9E,KAAM,CAAAC,WAAW,CAAG9B,QAAQ,CAAC8B,WAAW,EAAI,IAAI9B,QAAQ,CAAC8B,WAAW,EAAE,CAEtEb,MAAM,EAAI,GAAG,GAAG,CAACG,MAAM,CAACG,CAAC,CAAC,MAAME,OAAO,CAAGK,WAAW,IAAI,CAEzD,GAAI9B,QAAQ,CAAC+B,QAAQ,CAAE,CACrBd,MAAM,EAAI,iBAAiB,CAC7B,CAEAA,MAAM,EAAI,MAAM,CAEhB,GAAIjB,QAAQ,CAACG,WAAW,CAAE,CACxBc,MAAM,EAAI,KAAKjB,QAAQ,CAACG,WAAW,CAACkB,OAAO,CAAC,QAAQ,CAAE,QAAQ,CAAC,IAAI,CACrE,CAEA,GAAI,MAAO,CAAArB,QAAQ,CAACgC,YAAY,GAAK,WAAW,CAAE,CAChDf,MAAM,EAAI,oBAAoBjB,QAAQ,CAACiC,oBAAoB,MAAM,CACnE,CAEA,GAAIjC,QAAQ,CAACI,OAAO,CAAE,CACpBa,MAAM,EAAIZ,cAAc,CAACL,QAAQ,CAACI,OAAO,CAAE,IAAI,CAAC,CAClD,CAEA,GAAIoB,CAAC,CAAGF,eAAe,CAACf,MAAM,CAAG,CAAC,CAAE,CAClCU,MAAM,EAAI,IAAI,CAChB,CACF,CAEA,MAAO,CAAAA,MAAM,CACf,CAEA,QAAS,CAAAP,eAAeA,CAACwB,YAAgC,CAAG,EAAE,CAAEX,CAAS,CAAE,CACzE,GAAI,CAAAN,MAAM,CAAG,EAAE,CAEf,IAAK,GAAI,CAAAO,CAAC,CAAG,CAAC,CAAEA,CAAC,CAAGU,YAAY,CAAC3B,MAAM,CAAEiB,CAAC,EAAE,CAAE,CAC5C,KAAM,CAAAxB,QAAQ,CAAGkC,YAAY,CAACV,CAAC,CAAC,CAEhCP,MAAM,EAAI,GAAG,GAAG,CAACG,MAAM,CAACG,CAAC,CAAC,MAAMvB,QAAQ,CAACE,IAAI,IAAI,CAEjD,GAAIF,QAAQ,CAAC+B,QAAQ,CAAE,CACrBd,MAAM,EAAI,iBAAiB,CAC7B,CAEAA,MAAM,EAAI,MAAM,CAEhB,GAAIjB,QAAQ,CAACG,WAAW,CAAE,CACxBc,MAAM,EAAI,KAAKjB,QAAQ,CAACG,WAAW,CAACkB,OAAO,CAAC,QAAQ,CAAE,QAAQ,CAAC,IAAI,CACrE,CAEA,GAAI,MAAO,CAAArB,QAAQ,CAACgC,YAAY,GAAK,WAAW,CAAE,CAChDf,MAAM,EAAI,oBAAoBjB,QAAQ,CAACiC,oBAAoB,MAAM,CACnE,CAEA,GAAIjC,QAAQ,CAACI,OAAO,CAAE,CACpBa,MAAM,EAAIZ,cAAc,CAACL,QAAQ,CAACI,OAAO,CAAC,CAC5C,CAEA,GAAIoB,CAAC,CAAGU,YAAY,CAAC3B,MAAM,CAAG,CAAC,CAAE,CAC/BU,MAAM,EAAI,IAAI,CAChB,CACF,CAEA,MAAO,CAAAA,MAAM,CACf,CAEA,QAAS,CAAAL,iBAAiBA,CAACuB,mBAAyC,CAAE,CACpE,GAAI,CAAAlB,MAAM,CAAG,EAAE,CAEf,IAAK,GAAI,CAAAO,CAAC,CAAG,CAAC,CAAEA,CAAC,CAAGW,mBAAmB,CAAC5B,MAAM,CAAEiB,CAAC,EAAE,CAAE,CACnD,KAAM,CAAAxB,QAAQ,CAAGmC,mBAAmB,CAACX,CAAC,CAAC,CAEvC,KAAM,CAAAC,OAAO,CAAG,CAACzB,QAAQ,CAACE,IAAI,CAAC,CAACyB,MAAM,CAAC3B,QAAQ,CAACyB,OAAO,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC,CAEnE,KAAM,CAAAC,WAAW,CAAG9B,QAAQ,CAAC8B,WAAW,EAAI,IAAI9B,QAAQ,CAAC8B,WAAW,EAAE,CAEtEb,MAAM,EAAI,OAAOQ,OAAO,CAAGK,WAAW,MAAM,CAE5C,GAAI9B,QAAQ,CAACG,WAAW,CAAE,CACxBc,MAAM,EAAI,GAAGjB,QAAQ,CAACG,WAAW,IAAI,CACvC,CAEA,GAAIH,QAAQ,CAACI,OAAO,CAAE,CACpBa,MAAM,EAAIZ,cAAc,CAACL,QAAQ,CAACI,OAAO,CAAC,CAC5C,CAEA,GAAIJ,QAAQ,CAACM,OAAO,CAACC,MAAM,CAAE,CAC3BU,MAAM,EAAI,qBAAqB,CAC/BA,MAAM,EAAIT,aAAa,CAACR,QAAQ,CAACM,OAAO,CAAE,CAAC,CAAC,CAC9C,CAEA,GAAIN,QAAQ,CAACS,SAAS,CAACF,MAAM,CAAE,CAC7BU,MAAM,EAAI,uBAAuB,CACjCA,MAAM,EAAIP,eAAe,CAACV,QAAQ,CAACS,SAAS,CAAE,CAAC,CAAC,CAClD,CAEA,GAAIe,CAAC,CAAGW,mBAAmB,CAAC5B,MAAM,CAAG,CAAC,CAAE,CACtCU,MAAM,EAAI,WAAW,CACvB,CACF,CAEA,MAAO,CAAAA,MAAM,CACf,CAEA,QAAS,CAAAH,cAAcA,CAACsB,QAAgB,CAAE,CACxC,MAAO,CAAAA,QAAQ,CAACf,OAAO,CAAC,qCAAqC,CAAE,CAACgB,CAAS,CAAEC,IAAY,CAAEC,IAAY,GAAK,CACxG,GAAID,IAAI,CAAE,CACR,MAAO,CAAAA,IAAI,CACb,CAEA,MAAO,CAAAC,IAAI,CAAClB,OAAO,CAAC,QAAQ,CAAEmB,KAAK,EAAI,CACrC,MAAO,CAAE,GAAG,CAAE,OAAO,CAAE,GAAG,CAAE,MAAM,CAAE,GAAG,CAAE,MAAO,CAAC,CAACA,KAAK,CAAoB,CAC7E,CAAC,CAAC,CACJ,CAAC,CAAC,CACJ,CAGA,QAAS,CAAAC,SAASA,CAAC,CAAEC,SAAS,CAAG,KAAM,CAAC,CAAG,CAAC,CAAC,CAAE,CAE7C,KAAM,CAAAC,EAAE,CAAG,oCAAoC,CAG/C,KAAM,CAAAC,GAAG,CAAG,0BAA0BD,EAAE,GAAG,CAG3C,KAAM,CAAAE,GAAG,CAAG,oFAAoF,CAEhG,KAAM,CAAAC,OAAO,CAAG,GAAGF,GAAG,IAAIC,GAAG,EAAE,CAE/B,MAAO,IAAI,CAAAE,MAAM,CAACD,OAAO,CAAEJ,SAAS,CAAGM,SAAS,CAAG,GAAG,CAAC,CACzD,CAEA,KAAM,CAAAC,KAAK,CAAGR,SAAS,CAAC,CAAC,CAEzB,QAAS,CAAA5B,SAASA,CAACqC,MAAc,CAAU,CACzC,MAAO,CAAAA,MAAM,CAAC7B,OAAO,CAAC4B,KAAK,CAAE,EAAE,CAAC,CAClC","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":[]}
@@ -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 +1 @@
1
- {"version":3,"file":"generate-markdown.d.ts","sourceRoot":"","sources":["../../../src/markdown/generate-markdown.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,GAAG,MAAM,CAqC1E"}
1
+ {"version":3,"file":"generate-markdown.d.ts","sourceRoot":"","sources":["../../../src/markdown/generate-markdown.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,GAAG,MAAM,CAwC1E"}
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-args-parser",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
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",
@@ -34,7 +34,7 @@ export function formatCliHelpMsg(params: readonly [Cli, ...Subcommand[]], style?
34
34
  // CLI description
35
35
  if (metadata.description) {
36
36
  msg += formatTitle("Description") + ln(1);
37
- msg += indent(2) + c.description(metadata.description) + ln(2);
37
+ msg += indent(2) + c.description(metadata.description).replace(/\n+/g, "\n" + indent(2)) + ln(2);
38
38
  }
39
39
 
40
40
  let longest = 0;
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";
@@ -39,6 +39,9 @@ export function generateMarkdown(...params: [Cli, ...Subcommand[]]): string {
39
39
  md += renderSubcommands(metadata.subcommands);
40
40
  }
41
41
 
42
+ md = stripAnsi(md);
43
+ md = escapeHtmlTags(md);
44
+
42
45
  return md;
43
46
  }
44
47
 
@@ -77,7 +80,7 @@ function renderOptions(optionsMetadata: OptionMetadata[] = [], h: number) {
77
80
  outStr += "\n\n";
78
81
 
79
82
  if (metadata.description) {
80
- outStr += `- ${metadata.description}\n`;
83
+ outStr += `- ${metadata.description.replace(/(\n+)/g, " $1 ")}\n`;
81
84
  }
82
85
 
83
86
  if (typeof metadata.defaultValue !== "undefined") {
@@ -111,7 +114,7 @@ function renderArguments(argsMetadata: ArgumentMetadata[] = [], h: number) {
111
114
  outStr += "\n\n";
112
115
 
113
116
  if (metadata.description) {
114
- outStr += `- ${metadata.description}\n`;
117
+ outStr += `- ${metadata.description.replace(/(\n+)/g, " $1 ")}\n`;
115
118
  }
116
119
 
117
120
  if (typeof metadata.defaultValue !== "undefined") {
@@ -138,7 +141,7 @@ function renderSubcommands(subcommandsMetadata: SubcommandMetadata[]) {
138
141
 
139
142
  const aliases = [metadata.name].concat(metadata.aliases).join(", ");
140
143
 
141
- const placeholder = metadata.placeholder && ` ${escapeTags(metadata.placeholder)}`;
144
+ const placeholder = metadata.placeholder && ` ${metadata.placeholder}`;
142
145
 
143
146
  outStr += `### ${aliases + placeholder}\n\n`;
144
147
 
@@ -168,6 +171,36 @@ function renderSubcommands(subcommandsMetadata: SubcommandMetadata[]) {
168
171
  return outStr;
169
172
  }
170
173
 
171
- function escapeTags(str: string) {
172
- return str.replace(/</g, "&lt;").replace(/>/g, "&gt;");
174
+ function escapeHtmlTags(markdown: string) {
175
+ return markdown.replace(/(```[\s\S]*?```|`[^`]*`)|(<[^>]+>)/g, (_: string, code: string, html: string) => {
176
+ if (code) {
177
+ return code;
178
+ }
179
+
180
+ return html.replace(/[&<>]/g, match => {
181
+ return { "&": "&amp;", "<": "&lt;", ">": "&gt;" }[match as "&" | "<" | ">"];
182
+ });
183
+ });
184
+ }
185
+
186
+ /** Credits: https://github.com/chalk/ansi-regex */
187
+ function ansiRegex({ onlyFirst = false } = {}) {
188
+ // Valid string terminator sequences are BEL, ESC\, and 0x9c
189
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
190
+
191
+ // OSC sequences only: ESC ] ... ST (non-greedy until the first ST)
192
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
193
+
194
+ // CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte
195
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
196
+
197
+ const pattern = `${osc}|${csi}`;
198
+
199
+ return new RegExp(pattern, onlyFirst ? undefined : "g");
200
+ }
201
+
202
+ const regex = ansiRegex();
203
+
204
+ function stripAnsi(string: string): string {
205
+ return string.replace(regex, "");
173
206
  }
@@ -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>[]> = {
package/src/types.ts CHANGED
@@ -7,9 +7,19 @@ export type SchemaV3 = Z3.ZodTypeAny;
7
7
  export type SchemaV4 = Z4.$ZodType;
8
8
  export type Schema = SchemaV3 | SchemaV4;
9
9
 
10
- export type ZodInfer<T extends Schema> = T extends SchemaV4 ? Z4.infer<T> : T extends SchemaV3 ? Z3.infer<T> : never;
11
-
12
- export type Subcommand = {
10
+ export type ZodInferOutput<T extends Schema> = T extends SchemaV4
11
+ ? Z4.infer<T>
12
+ : T extends SchemaV3
13
+ ? Z3.infer<T>
14
+ : never;
15
+
16
+ export type ZodInferInput<T extends Schema> = T extends SchemaV4
17
+ ? Z4.input<T>
18
+ : T extends SchemaV3
19
+ ? Z3.input<T>
20
+ : never;
21
+
22
+ export interface Subcommand {
13
23
  /**
14
24
  * - The subcommand name
15
25
  * - Make sure to not duplicate commands and aliases.
@@ -86,7 +96,7 @@ export type Subcommand = {
86
96
  * helpCommand.setPreValidationHook(ctx => console.log(ctx));
87
97
  */
88
98
  preValidation?: (ctx?: any) => any;
89
- };
99
+ }
90
100
 
91
101
  export type Cli = Prettify<
92
102
  Omit<Subcommand, "name" | "aliases" | "placeholder"> & {
@@ -95,7 +105,7 @@ export type Cli = Prettify<
95
105
  }
96
106
  >;
97
107
 
98
- export type Option = {
108
+ export interface Option {
99
109
  /**
100
110
  * The name of the option, use a valid **JavaScript** variable name.\
101
111
  * **Supports:** `camelCase`, `PascalCase`, `snake_case`, and `SCREAMING_SNAKE_CASE`.\
@@ -135,9 +145,9 @@ export type Option = {
135
145
  * - Make sure to not duplicate aliases.
136
146
  */
137
147
  aliases?: [string, ...string[]];
138
- };
148
+ }
139
149
 
140
- export type Argument = {
150
+ export interface Argument {
141
151
  /** - The name of the argument. */
142
152
  name: string;
143
153
 
@@ -159,7 +169,7 @@ export type Argument = {
159
169
  * - Used for generating the help message.
160
170
  */
161
171
  example?: string;
162
- };
172
+ }
163
173
 
164
174
  export type ColorFnType = (...text: unknown[]) => string;
165
175
 
@@ -182,23 +192,59 @@ export type HelpMsgStyle = Record<
182
192
  /**
183
193
  * - Infer the options type from a subcommand.
184
194
  *
195
+ * @deprecated Use `InferOptionsOutput` instead.
196
+ */
197
+ export type InferOptionsType<T extends Partial<Subcommand>> = InferOptionsOutput<T>;
198
+
199
+ /**
200
+ * - Infer the options output type (after zod validation) from a subcommand.
201
+ *
202
+ * @example
203
+ * const subcommand = createSubcommand({ name: "build", options: [...] });
204
+ * type OptionsType = InferOptionsOutput<typeof subcommand>;
205
+ */
206
+ export type InferOptionsOutput<T extends Partial<Subcommand>> = T["options"] extends infer U extends Option[]
207
+ ? ToOptional<{ [K in U[number]["name"]]: ZodInferOutput<Extract<U[number], { name: K }>["type"]> }>
208
+ : undefined;
209
+
210
+ /**
211
+ * - Infer the options input type (before zod validation) from a subcommand.
212
+ *
185
213
  * @example
186
214
  * const subcommand = createSubcommand({ name: "build", options: [...] });
187
- * type OptionsType = InferOptionsType<typeof subcommand>;
215
+ * type OptionsType = InferOptionsInput<typeof subcommand>;
216
+ */
217
+ export type InferOptionsInput<T extends Partial<Subcommand>> = T["options"] extends infer U extends Option[]
218
+ ? ToOptional<{ [K in U[number]["name"]]: ZodInferInput<Extract<U[number], { name: K }>["type"]> }>
219
+ : undefined;
220
+
221
+ /**
222
+ * - Infer the arguments output type (after zod validation) from a subcommand.
223
+ *
224
+ * @deprecated Use `InferArgumentsOutput` instead.
225
+ */
226
+ export type InferArgumentsType<T extends Partial<Subcommand>> = InferArgumentsOutput<T>;
227
+
228
+ /**
229
+ * - Infer the arguments output type (after zod validation) from a subcommand.
230
+ *
231
+ * @example
232
+ * const subcommand = createSubcommand({ name: "build", arguments: [...] });
233
+ * type ArgumentsType = InferArgumentsOutput<typeof subcommand>;
188
234
  */
189
- export type InferOptionsType<T extends Partial<Subcommand>> = T["options"] extends infer U extends Option[]
190
- ? ToOptional<{ [K in U[number]["name"]]: ZodInfer<Extract<U[number], { name: K }>["type"]> }>
235
+ export type InferArgumentsOutput<T extends Partial<Subcommand>> = T["arguments"] extends infer U extends Argument[]
236
+ ? { [K in keyof U]: U[K] extends { type: Schema } ? ZodInferOutput<U[K]["type"]> : never }
191
237
  : undefined;
192
238
 
193
239
  /**
194
- * - Infer the arguments type from a subcommand.
240
+ * - Infer the arguments Input type (before zod validation) from a subcommand.
195
241
  *
196
242
  * @example
197
243
  * const subcommand = createSubcommand({ name: "build", arguments: [...] });
198
- * type ArgumentsType = InferArgumentsType<typeof subcommand>;
244
+ * type ArgumentsType = InferArgumentsInput<typeof subcommand>;
199
245
  */
200
- export type InferArgumentsType<T extends Partial<Subcommand>> = T["arguments"] extends infer U extends Argument[]
201
- ? { [K in keyof U]: U[K] extends { type: Schema } ? ZodInfer<U[K]["type"]> : never }
246
+ export type InferArgumentsInput<T extends Partial<Subcommand>> = T["arguments"] extends infer U extends Argument[]
247
+ ? { [K in keyof U]: U[K] extends { type: Schema } ? ZodInferInput<U[K]["type"]> : never }
202
248
  : undefined;
203
249
 
204
250
  /** `{ some props } & { other props }` => `{ some props, other props }` */