zod-args-parser 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +597 -91
- package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.js +1 -1
- package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.js.map +1 -1
- package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.js +1 -1
- package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.js.map +1 -1
- package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.js +1 -1
- package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.js.map +1 -1
- package/lib/commonjs/help-message/format-arguments.js +1 -0
- package/lib/commonjs/help-message/format-arguments.js.map +1 -0
- package/lib/commonjs/help-message/format-cli.js +1 -0
- package/lib/commonjs/help-message/format-cli.js.map +1 -0
- package/lib/commonjs/help-message/format-options.js +1 -0
- package/lib/commonjs/help-message/format-options.js.map +1 -0
- package/lib/commonjs/help-message/format-subcommands.js +1 -0
- package/lib/commonjs/help-message/format-subcommands.js.map +1 -0
- package/lib/commonjs/help-message/styles.js +1 -0
- package/lib/commonjs/help-message/styles.js.map +1 -0
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/markdown/generate-markdown.js.map +1 -1
- package/lib/commonjs/metadata/get-arguments-metadata.js +1 -1
- package/lib/commonjs/metadata/get-arguments-metadata.js.map +1 -1
- package/lib/commonjs/metadata/get-cli-metadata.js +1 -1
- package/lib/commonjs/metadata/get-cli-metadata.js.map +1 -1
- package/lib/commonjs/metadata/get-options-metadata.js +1 -1
- package/lib/commonjs/metadata/get-options-metadata.js.map +1 -1
- package/lib/commonjs/metadata/get-subcommands-metadata.js.map +1 -1
- package/lib/commonjs/parser/parse/parse.js +1 -0
- package/lib/commonjs/parser/parse/parse.js.map +1 -0
- package/lib/commonjs/parser/parse/parser-helpers.js +1 -0
- package/lib/commonjs/parser/parse/parser-helpers.js.map +1 -0
- package/lib/commonjs/parser/safe-parse.js +1 -1
- package/lib/commonjs/parser/safe-parse.js.map +1 -1
- package/lib/commonjs/parser/unsafe-parse.js +1 -0
- package/lib/commonjs/parser/unsafe-parse.js.map +1 -0
- package/lib/commonjs/parser/validate/validate-type.js +1 -0
- package/lib/commonjs/parser/validate/validate-type.js.map +1 -0
- package/lib/commonjs/parser/validate/validate.js +1 -0
- package/lib/commonjs/parser/validate/validate.js.map +1 -0
- package/lib/commonjs/utils.js +1 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/zod-utils.js +1 -0
- package/lib/commonjs/zod-utils.js.map +1 -0
- package/lib/module/autocomplete-scripts/bash-autocomplete-script.js +1 -1
- package/lib/module/autocomplete-scripts/bash-autocomplete-script.js.map +1 -1
- package/lib/module/autocomplete-scripts/powershell-autocomplete-script.js +1 -1
- package/lib/module/autocomplete-scripts/powershell-autocomplete-script.js.map +1 -1
- package/lib/module/autocomplete-scripts/zsh-autocomplete-script.js +1 -1
- package/lib/module/autocomplete-scripts/zsh-autocomplete-script.js.map +1 -1
- package/lib/module/help-message/format-arguments.js +1 -0
- package/lib/module/help-message/format-arguments.js.map +1 -0
- package/lib/module/help-message/format-cli.js +1 -0
- package/lib/module/help-message/format-cli.js.map +1 -0
- package/lib/module/help-message/format-options.js +1 -0
- package/lib/module/help-message/format-options.js.map +1 -0
- package/lib/module/help-message/{print-subcommands.js → format-subcommands.js} +1 -1
- package/lib/module/help-message/format-subcommands.js.map +1 -0
- package/lib/module/help-message/styles.js +1 -0
- package/lib/module/help-message/styles.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/markdown/generate-markdown.js.map +1 -1
- package/lib/module/metadata/get-arguments-metadata.js +1 -1
- package/lib/module/metadata/get-arguments-metadata.js.map +1 -1
- package/lib/module/metadata/get-cli-metadata.js +1 -1
- package/lib/module/metadata/get-cli-metadata.js.map +1 -1
- package/lib/module/metadata/get-options-metadata.js +1 -1
- package/lib/module/metadata/get-options-metadata.js.map +1 -1
- package/lib/module/metadata/get-subcommands-metadata.js.map +1 -1
- package/lib/module/parser/parse/parse.js +1 -0
- package/lib/module/parser/parse/parse.js.map +1 -0
- package/lib/module/parser/parse/parser-helpers.js +1 -0
- package/lib/module/parser/parse/parser-helpers.js.map +1 -0
- package/lib/module/parser/safe-parse.js +1 -1
- package/lib/module/parser/safe-parse.js.map +1 -1
- package/lib/module/parser/unsafe-parse.js +1 -0
- package/lib/module/parser/unsafe-parse.js.map +1 -0
- package/lib/module/parser/validate/validate-type.js +1 -0
- package/lib/module/parser/validate/validate-type.js.map +1 -0
- package/lib/module/parser/validate/validate.js +1 -0
- package/lib/module/parser/validate/validate.js.map +1 -0
- package/lib/module/utils.js +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/module/zod-utils.js +1 -0
- package/lib/module/zod-utils.js.map +1 -0
- package/lib/typescript/help-message/format-arguments.d.ts +4 -0
- package/lib/typescript/help-message/format-arguments.d.ts.map +1 -0
- package/lib/typescript/help-message/format-cli.d.ts +6 -0
- package/lib/typescript/help-message/format-cli.d.ts.map +1 -0
- package/lib/typescript/help-message/format-options.d.ts +4 -0
- package/lib/typescript/help-message/format-options.d.ts.map +1 -0
- package/lib/typescript/help-message/format-subcommands.d.ts +4 -0
- package/lib/typescript/help-message/format-subcommands.d.ts.map +1 -0
- package/lib/typescript/help-message/styles.d.ts +108 -0
- package/lib/typescript/help-message/styles.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +18 -29
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/markdown/generate-markdown.d.ts.map +1 -1
- package/lib/typescript/metadata/get-arguments-metadata.d.ts +2 -1
- package/lib/typescript/metadata/get-arguments-metadata.d.ts.map +1 -1
- package/lib/typescript/metadata/get-cli-metadata.d.ts +3 -2
- package/lib/typescript/metadata/get-cli-metadata.d.ts.map +1 -1
- package/lib/typescript/metadata/get-options-metadata.d.ts +2 -1
- package/lib/typescript/metadata/get-options-metadata.d.ts.map +1 -1
- package/lib/typescript/metadata/get-subcommands-metadata.d.ts +2 -1
- package/lib/typescript/metadata/get-subcommands-metadata.d.ts.map +1 -1
- package/lib/typescript/metadata/metadata-types.d.ts +80 -0
- package/lib/typescript/metadata/metadata-types.d.ts.map +1 -0
- package/lib/typescript/parser/parse/parse-types.d.ts +85 -0
- package/lib/typescript/parser/parse/parse-types.d.ts.map +1 -0
- package/lib/typescript/parser/parse/parse.d.ts +4 -0
- package/lib/typescript/parser/parse/parse.d.ts.map +1 -0
- package/lib/typescript/parser/parse/parser-helpers.d.ts +40 -0
- package/lib/typescript/parser/parse/parser-helpers.d.ts.map +1 -0
- package/lib/typescript/parser/safe-parse.d.ts +1 -0
- package/lib/typescript/parser/safe-parse.d.ts.map +1 -1
- package/lib/typescript/parser/unsafe-parse.d.ts +4 -0
- package/lib/typescript/parser/unsafe-parse.d.ts.map +1 -0
- package/lib/typescript/parser/validate/validate-type.d.ts +22 -0
- package/lib/typescript/parser/validate/validate-type.d.ts.map +1 -0
- package/lib/typescript/parser/validate/validate.d.ts +11 -0
- package/lib/typescript/parser/validate/validate.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +66 -181
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +20 -19
- package/lib/typescript/utils.d.ts.map +1 -1
- package/lib/typescript/zod-utils.d.ts +27 -0
- package/lib/typescript/zod-utils.d.ts.map +1 -0
- package/package.json +7 -6
- package/src/autocomplete-scripts/bash-autocomplete-script.ts +1 -1
- package/src/autocomplete-scripts/powershell-autocomplete-script.ts +1 -1
- package/src/autocomplete-scripts/zsh-autocomplete-script.ts +1 -1
- package/src/help-message/format-arguments.ts +38 -0
- package/src/help-message/{print-help-message.ts → format-cli.ts} +43 -48
- package/src/help-message/{print-options.ts → format-options.ts} +16 -14
- package/src/help-message/format-subcommands.ts +37 -0
- package/src/help-message/styles.ts +120 -0
- package/src/index.ts +50 -44
- package/src/markdown/generate-markdown.ts +2 -1
- package/src/metadata/get-arguments-metadata.ts +3 -2
- package/src/metadata/get-cli-metadata.ts +4 -4
- package/src/metadata/get-options-metadata.ts +4 -3
- package/src/metadata/get-subcommands-metadata.ts +2 -1
- package/src/metadata/metadata-types.ts +114 -0
- package/src/parser/parse/parse-types.ts +89 -0
- package/src/parser/parse/parse.ts +227 -0
- package/src/parser/parse/parser-helpers.ts +167 -0
- package/src/parser/safe-parse.ts +60 -8
- package/src/parser/unsafe-parse.ts +98 -0
- package/src/parser/validate/validate-type.ts +21 -0
- package/src/parser/validate/validate.ts +66 -0
- package/src/types.ts +90 -231
- package/src/utils.ts +33 -65
- package/src/{zodUtils.ts → zod-utils.ts} +65 -17
- package/lib/commonjs/help-message/colors.js +0 -1
- package/lib/commonjs/help-message/colors.js.map +0 -1
- package/lib/commonjs/help-message/print-arguments.js +0 -1
- package/lib/commonjs/help-message/print-arguments.js.map +0 -1
- package/lib/commonjs/help-message/print-help-message.js +0 -1
- package/lib/commonjs/help-message/print-help-message.js.map +0 -1
- package/lib/commonjs/help-message/print-options.js +0 -1
- package/lib/commonjs/help-message/print-options.js.map +0 -1
- package/lib/commonjs/help-message/print-subcommands.js +0 -1
- package/lib/commonjs/help-message/print-subcommands.js.map +0 -1
- package/lib/commonjs/help-message/utils.js +0 -1
- package/lib/commonjs/help-message/utils.js.map +0 -1
- package/lib/commonjs/parser/parse.js +0 -1
- package/lib/commonjs/parser/parse.js.map +0 -1
- package/lib/commonjs/zodUtils.js +0 -1
- package/lib/commonjs/zodUtils.js.map +0 -1
- package/lib/module/help-message/colors.js +0 -1
- package/lib/module/help-message/colors.js.map +0 -1
- package/lib/module/help-message/print-arguments.js +0 -1
- package/lib/module/help-message/print-arguments.js.map +0 -1
- package/lib/module/help-message/print-help-message.js +0 -1
- package/lib/module/help-message/print-help-message.js.map +0 -1
- package/lib/module/help-message/print-options.js +0 -1
- package/lib/module/help-message/print-options.js.map +0 -1
- package/lib/module/help-message/print-subcommands.js.map +0 -1
- package/lib/module/help-message/utils.js +0 -1
- package/lib/module/help-message/utils.js.map +0 -1
- package/lib/module/parser/parse.js +0 -1
- package/lib/module/parser/parse.js.map +0 -1
- package/lib/module/zodUtils.js +0 -1
- package/lib/module/zodUtils.js.map +0 -1
- package/lib/typescript/help-message/colors.d.ts +0 -17
- package/lib/typescript/help-message/colors.d.ts.map +0 -1
- package/lib/typescript/help-message/print-arguments.d.ts +0 -4
- package/lib/typescript/help-message/print-arguments.d.ts.map +0 -1
- package/lib/typescript/help-message/print-help-message.d.ts +0 -4
- package/lib/typescript/help-message/print-help-message.d.ts.map +0 -1
- package/lib/typescript/help-message/print-options.d.ts +0 -4
- package/lib/typescript/help-message/print-options.d.ts.map +0 -1
- package/lib/typescript/help-message/print-subcommands.d.ts +0 -4
- package/lib/typescript/help-message/print-subcommands.d.ts.map +0 -1
- package/lib/typescript/help-message/utils.d.ts +0 -13
- package/lib/typescript/help-message/utils.d.ts.map +0 -1
- package/lib/typescript/parser/parse.d.ts +0 -3
- package/lib/typescript/parser/parse.d.ts.map +0 -1
- package/lib/typescript/zodUtils.d.ts +0 -14
- package/lib/typescript/zodUtils.d.ts.map +0 -1
- package/src/help-message/colors.ts +0 -24
- package/src/help-message/print-arguments.ts +0 -35
- package/src/help-message/print-subcommands.ts +0 -28
- package/src/help-message/utils.ts +0 -31
- package/src/parser/parse.ts +0 -272
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["help","_interopRequireWildcard","require","
|
|
1
|
+
{"version":3,"names":["help","_interopRequireWildcard","require","_parserHelpers","_unsafeParse","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","safeParse","argsv","params","cliOptions","subcommandArr","printCliHelp","style","printSubcommandHelp","subCmdName","subcommand","findSubcommand","console","error","cliName","data","unsafeParse","success","Error","cause","safeParseAsync","unsafeParseAsync"],"sourceRoot":"../../../src/parser","sources":["safe-parse.ts"],"sourcesContent":["import * as help from \"../help-message/format-cli.js\";\nimport { findSubcommand } from \"./parse/parser-helpers.js\";\nimport { unsafeParse, unsafeParseAsync } from \"./unsafe-parse.js\";\n\nimport type { Cli, NoSubcommand, PrintMethods, SafeParseResult, Subcommand } from \"../types.js\";\n\nexport function safeParse<T extends Subcommand[], U extends Cli>(\n argsv: string[],\n ...params: [U, ...T]\n): SafeParseResult<[...T, NoSubcommand & U]> {\n const cliOptions = (\"cliName\" in params[0] ? params[0] : {}) as U;\n const subcommandArr = params as Subcommand[];\n\n type PrintTypes = PrintMethods<T[number][\"name\"]>;\n type PrintCli = PrintTypes[\"printCliHelp\"];\n type PrintSubcommand = PrintTypes[\"printSubcommandHelp\"];\n\n const printCliHelp: PrintCli = style => help.printCliHelp(params, style);\n\n const printSubcommandHelp: PrintSubcommand = (subCmdName, style) => {\n const subcommand = findSubcommand(subCmdName, subcommandArr);\n if (!subcommand) {\n return console.error(`Cannot print help for subcommand \"${subCmdName}\" as it does not exist`);\n }\n\n help.printSubcommandHelp(subcommand, style, cliOptions.cliName);\n };\n\n try {\n const data = unsafeParse(argsv, ...params);\n // @ts-expect-error The operand of a 'delete' operator must be optional.\n delete data.printCliHelp;\n // @ts-expect-errorThe operand of a 'delete' operator must be optional.\n delete data.printSubcommandHelp;\n\n return {\n success: true,\n data: data as Omit<typeof data, \"printCliHelp\" | \"printSubcommandHelp\">,\n printCliHelp,\n printSubcommandHelp,\n } as SafeParseResult<[...T, NoSubcommand & U]>;\n } catch (e) {\n if (!(e instanceof Error) || e.cause !== \"zod-args-parser\") throw e;\n return {\n success: false,\n error: e as Error,\n printCliHelp,\n printSubcommandHelp,\n } as SafeParseResult<[...T, NoSubcommand & U]>;\n }\n}\n\nexport async function safeParseAsync<T extends Subcommand[], U extends Cli>(\n argsv: string[],\n ...params: [U, ...T]\n): Promise<SafeParseResult<[...T, NoSubcommand & U]>> {\n const cliOptions = (\"cliName\" in params[0] ? params[0] : {}) as U;\n const subcommandArr = params as Subcommand[];\n\n type PrintTypes = PrintMethods<T[number][\"name\"]>;\n type PrintCli = PrintTypes[\"printCliHelp\"];\n type PrintSubcommand = PrintTypes[\"printSubcommandHelp\"];\n\n const printCliHelp: PrintCli = style => help.printCliHelp(params, style);\n\n const printSubcommandHelp: PrintSubcommand = (subCmdName, style) => {\n const subcommand = findSubcommand(subCmdName, subcommandArr);\n if (!subcommand) {\n return console.error(`Cannot print help for subcommand \"${subCmdName}\" as it does not exist`);\n }\n\n help.printSubcommandHelp(subcommand, style, cliOptions.cliName);\n };\n\n try {\n const data = await unsafeParseAsync(argsv, ...params);\n // @ts-expect-error The operand of a 'delete' operator must be optional.\n delete data.printCliHelp;\n // @ts-expect-errorThe operand of a 'delete' operator must be optional.\n delete data.printSubcommandHelp;\n\n return {\n success: true,\n data: data as Omit<typeof data, \"printCliHelp\" | \"printSubcommandHelp\">,\n printCliHelp,\n printSubcommandHelp,\n } as SafeParseResult<[...T, NoSubcommand & U]>;\n } catch (e) {\n if (!(e instanceof Error) || e.cause !== \"zod-args-parser\") throw e;\n return {\n success: false,\n error: e as Error,\n printCliHelp,\n printSubcommandHelp,\n } as SafeParseResult<[...T, NoSubcommand & U]>;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.unsafeParse=unsafeParse;exports.unsafeParseAsync=unsafeParseAsync;var help=_interopRequireWildcard(require("../help-message/format-cli.js"));var _parserHelpers=require("./parse/parser-helpers.js");var _validate=require("./validate/validate.js");var _parse=require("./parse/parse.js");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?o(f,t,i):f[t]=e[t]);return f;})(e,t);}function unsafeParse(argv,...params){const cliOptions="cliName"in params[0]?params[0]:{};const subcommandArr=params;const parsedData=(0,_parse.parse)(argv,...params);const subcommandObj=(0,_parserHelpers.findSubcommand)(parsedData.subcommand,subcommandArr);if(!subcommandObj){throw new Error(`Subcommand "${parsedData.subcommand}" does not exist`,{cause:"zod-args-parser"});}if(subcommandObj.preValidation){subcommandObj.preValidation(parsedData);}const validateResult=(0,_validate.validate)(parsedData);Object.assign(validateResult,{printCliHelp(style){help.printCliHelp(params,style);},printSubcommandHelp(subCmdName,style){const subcommandObj=(0,_parserHelpers.findSubcommand)(subCmdName,subcommandArr);if(!subcommandObj){console.error(`Cannot print help for subcommand "${subCmdName}" as it does not exist`);return;}help.printSubcommandHelp(subcommandObj,style,cliOptions.cliName);}});if(subcommandObj.action){subcommandObj.action(validateResult);}return validateResult;}async function unsafeParseAsync(argv,...params){const cliOptions="cliName"in params[0]?params[0]:{};const subcommandArr=params;const parsedData=(0,_parse.parse)(argv,...params);const subcommandObj=(0,_parserHelpers.findSubcommand)(parsedData.subcommand,subcommandArr);if(!subcommandObj){throw new Error(`Subcommand "${parsedData.subcommand}" does not exist`,{cause:"zod-args-parser"});}if(subcommandObj.preValidation){await subcommandObj.preValidation(parsedData);}const validateResult=(0,_validate.validate)(parsedData);Object.assign(validateResult,{printCliHelp(style){help.printCliHelp(params,style);},printSubcommandHelp(subCmdName,style){const subcommandObj=(0,_parserHelpers.findSubcommand)(subCmdName,subcommandArr);if(!subcommandObj){console.error(`Cannot print help for subcommand "${subCmdName}" as it does not exist`);return;}help.printSubcommandHelp(subcommandObj,style,cliOptions.cliName);}});if(subcommandObj.action){await subcommandObj.action(validateResult);}return validateResult;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["help","_interopRequireWildcard","require","_parserHelpers","_validate","_parse","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","unsafeParse","argv","params","cliOptions","subcommandArr","parsedData","parse","subcommandObj","findSubcommand","subcommand","Error","cause","preValidation","validateResult","validate","assign","printCliHelp","style","printSubcommandHelp","subCmdName","console","error","cliName","action","unsafeParseAsync"],"sourceRoot":"../../../src/parser","sources":["unsafe-parse.ts"],"sourcesContent":["import * as help from \"../help-message/format-cli.js\";\nimport { findSubcommand } from \"./parse/parser-helpers.js\";\nimport { validate } from \"./validate/validate.js\";\nimport { parse } from \"./parse/parse.js\";\n\nimport type { Cli, NoSubcommand, HelpMsgStyle, Subcommand, UnsafeParseResult } from \"../types.js\";\n\nexport function unsafeParse<T extends Subcommand[], U extends Cli>(\n argv: string[],\n ...params: [U, ...T]\n): UnsafeParseResult<[...T, NoSubcommand & U]> {\n const cliOptions = (\"cliName\" in params[0] ? params[0] : {}) as U;\n const subcommandArr = params as unknown as T;\n\n // Parse\n const parsedData = parse(argv, ...params);\n\n const subcommandObj = findSubcommand(parsedData.subcommand, subcommandArr);\n if (!subcommandObj) {\n throw new Error(`Subcommand \"${parsedData.subcommand}\" does not exist`, { cause: \"zod-args-parser\" });\n }\n\n // Fire preValidation hook\n if (subcommandObj.preValidation) {\n subcommandObj.preValidation(parsedData);\n }\n\n // Validate\n const validateResult = validate(parsedData);\n\n Object.assign(validateResult, {\n printCliHelp(style?: Partial<HelpMsgStyle>) {\n help.printCliHelp(params, style);\n },\n printSubcommandHelp(subCmdName: string, style?: Partial<HelpMsgStyle>) {\n const subcommandObj = findSubcommand(subCmdName, subcommandArr);\n if (!subcommandObj) {\n console.error(`Cannot print help for subcommand \"${subCmdName}\" as it does not exist`);\n return;\n }\n\n help.printSubcommandHelp(subcommandObj, style, cliOptions.cliName);\n },\n });\n\n // Fire action\n if (subcommandObj.action) {\n subcommandObj.action(validateResult);\n }\n\n return validateResult as UnsafeParseResult<[...T, NoSubcommand & U]>;\n}\n\nexport async function unsafeParseAsync<T extends Subcommand[], U extends Cli>(\n argv: string[],\n ...params: [U, ...T]\n): Promise<UnsafeParseResult<[...T, NoSubcommand & U]>> {\n const cliOptions = (\"cliName\" in params[0] ? params[0] : {}) as U;\n const subcommandArr = params as unknown as T;\n\n // Parse\n const parsedData = parse(argv, ...params);\n\n const subcommandObj = findSubcommand(parsedData.subcommand, subcommandArr);\n if (!subcommandObj) {\n throw new Error(`Subcommand \"${parsedData.subcommand}\" does not exist`, { cause: \"zod-args-parser\" });\n }\n\n // Fire preValidation hook\n if (subcommandObj.preValidation) {\n await subcommandObj.preValidation(parsedData);\n }\n\n // Validate\n const validateResult = validate(parsedData);\n\n Object.assign(validateResult, {\n printCliHelp(style?: Partial<HelpMsgStyle>) {\n help.printCliHelp(params, style);\n },\n printSubcommandHelp(subCmdName: string, style?: Partial<HelpMsgStyle>) {\n const subcommandObj = findSubcommand(subCmdName, subcommandArr);\n if (!subcommandObj) {\n console.error(`Cannot print help for subcommand \"${subCmdName}\" as it does not exist`);\n return;\n }\n\n help.printSubcommandHelp(subcommandObj, style, cliOptions.cliName);\n },\n });\n\n // Fire action\n if (subcommandObj.action) {\n await subcommandObj.action(validateResult);\n }\n\n return validateResult as UnsafeParseResult<[...T, NoSubcommand & U]>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.validate=validate;var _v=require("zod/v4");var _utils=require("../../utils.js");var _zodUtils=require("../../zod-utils.js");function validate(parsedData){const results={subcommand:parsedData.subcommand,positional:parsedData.positional,ctx:parsedData};for(const[optionName,{schema,rawValue,flag}]of Object.entries(parsedData.options)){let optionsValue=rawValue;if(flag&&rawValue&&(0,_zodUtils.isBooleanSchema)(schema)){const booleanValue=(0,_utils.stringToBoolean)(rawValue);if(typeof booleanValue==="boolean"){const isNegated=flag.startsWith("--no");optionsValue=isNegated?!booleanValue:booleanValue;}}const res=(0,_zodUtils.safeParseSchema)(schema,optionsValue);if(!res.success){throw new Error(`Invalid value "${rawValue}" for "${flag}": ${(0,_v.prettifyError)(res.error)}`,{cause:"zod-args-parser"});}results[optionName]=res.data;}if(parsedData.arguments){if(!results.arguments)results.arguments=[];for(const{schema,rawValue}of parsedData.arguments){const argValue=rawValue&&(0,_zodUtils.isBooleanSchema)(schema)?(0,_utils.stringToBoolean)(rawValue):rawValue;const res=(0,_zodUtils.safeParseSchema)(schema,argValue);if(!res.success){throw new Error(`The ${(0,_utils.generateOrdinalSuffix)(results.arguments.length)} argument "${rawValue}" is invalid: ${(0,_v.prettifyError)(res.error)}`,{cause:"zod-args-parser"});}results.arguments.push(res.data);}}return results;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_v","require","_utils","_zodUtils","validate","parsedData","results","subcommand","positional","ctx","optionName","schema","rawValue","flag","Object","entries","options","optionsValue","isBooleanSchema","booleanValue","stringToBoolean","isNegated","startsWith","res","safeParseSchema","success","Error","prettifyError","error","cause","data","arguments","argValue","generateOrdinalSuffix","length","push"],"sourceRoot":"../../../../src/parser/validate","sources":["validate.ts"],"sourcesContent":["import { prettifyError } from \"zod/v4\";\n\nimport { generateOrdinalSuffix, stringToBoolean } from \"../../utils.js\";\nimport { isBooleanSchema, safeParseSchema } from \"../../zod-utils.js\";\n\nimport type { ParseCtx } from \"../parse/parse-types.js\";\n\n/** The return result object temporarily type. used inside the `parse` function */\ntype ResultsTempType = Record<string, unknown> & {\n subcommand: string | undefined;\n positional?: string[];\n arguments?: unknown[];\n ctx: ParseCtx;\n};\n\nexport function validate(parsedData: ParseCtx) {\n const results: ResultsTempType = {\n subcommand: parsedData.subcommand,\n positional: parsedData.positional,\n ctx: parsedData,\n };\n\n // validate options\n for (const [optionName, { schema, rawValue, flag }] of Object.entries(parsedData.options)) {\n let optionsValue: string | boolean | undefined = rawValue;\n\n // infer boolean value if possible\n if (flag && rawValue && isBooleanSchema(schema)) {\n const booleanValue = stringToBoolean(rawValue);\n if (typeof booleanValue === \"boolean\") {\n const isNegated = flag.startsWith(\"--no\");\n optionsValue = isNegated ? !booleanValue : booleanValue;\n }\n }\n\n const res = safeParseSchema(schema, optionsValue);\n if (!res.success) {\n throw new Error(`Invalid value \"${rawValue}\" for \"${flag}\": ${prettifyError(res.error)}`, {\n cause: \"zod-args-parser\",\n });\n }\n\n results[optionName] = res.data;\n }\n\n // validate arguments\n if (parsedData.arguments) {\n if (!results.arguments) results.arguments = [];\n\n for (const { schema, rawValue } of parsedData.arguments) {\n const argValue = rawValue && isBooleanSchema(schema) ? stringToBoolean(rawValue) : rawValue;\n\n const res = safeParseSchema(schema, argValue);\n if (!res.success) {\n throw new Error(\n `The ${generateOrdinalSuffix(results.arguments.length)} argument \"${rawValue}\" is invalid: ${prettifyError(res.error)}`,\n { cause: \"zod-args-parser\" },\n );\n }\n\n results.arguments.push(res.data);\n }\n }\n\n return results;\n}\n"],"mappings":"gGAAA,IAAAA,EAAA,CAAAC,OAAA,WAEA,IAAAC,MAAA,CAAAD,OAAA,mBACA,IAAAE,SAAA,CAAAF,OAAA,uBAYO,QAAS,CAAAG,QAAQA,CAACC,UAAoB,CAAE,CAC7C,KAAM,CAAAC,OAAwB,CAAG,CAC/BC,UAAU,CAAEF,UAAU,CAACE,UAAU,CACjCC,UAAU,CAAEH,UAAU,CAACG,UAAU,CACjCC,GAAG,CAAEJ,UACP,CAAC,CAGD,IAAK,KAAM,CAACK,UAAU,CAAE,CAAEC,MAAM,CAAEC,QAAQ,CAAEC,IAAK,CAAC,CAAC,EAAI,CAAAC,MAAM,CAACC,OAAO,CAACV,UAAU,CAACW,OAAO,CAAC,CAAE,CACzF,GAAI,CAAAC,YAA0C,CAAGL,QAAQ,CAGzD,GAAIC,IAAI,EAAID,QAAQ,EAAI,GAAAM,yBAAe,EAACP,MAAM,CAAC,CAAE,CAC/C,KAAM,CAAAQ,YAAY,CAAG,GAAAC,sBAAe,EAACR,QAAQ,CAAC,CAC9C,GAAI,MAAO,CAAAO,YAAY,GAAK,SAAS,CAAE,CACrC,KAAM,CAAAE,SAAS,CAAGR,IAAI,CAACS,UAAU,CAAC,MAAM,CAAC,CACzCL,YAAY,CAAGI,SAAS,CAAG,CAACF,YAAY,CAAGA,YAAY,CACzD,CACF,CAEA,KAAM,CAAAI,GAAG,CAAG,GAAAC,yBAAe,EAACb,MAAM,CAAEM,YAAY,CAAC,CACjD,GAAI,CAACM,GAAG,CAACE,OAAO,CAAE,CAChB,KAAM,IAAI,CAAAC,KAAK,CAAC,kBAAkBd,QAAQ,UAAUC,IAAI,MAAM,GAAAc,gBAAa,EAACJ,GAAG,CAACK,KAAK,CAAC,EAAE,CAAE,CACxFC,KAAK,CAAE,iBACT,CAAC,CAAC,CACJ,CAEAvB,OAAO,CAACI,UAAU,CAAC,CAAGa,GAAG,CAACO,IAAI,CAChC,CAGA,GAAIzB,UAAU,CAAC0B,SAAS,CAAE,CACxB,GAAI,CAACzB,OAAO,CAACyB,SAAS,CAAEzB,OAAO,CAACyB,SAAS,CAAG,EAAE,CAE9C,IAAK,KAAM,CAAEpB,MAAM,CAAEC,QAAS,CAAC,EAAI,CAAAP,UAAU,CAAC0B,SAAS,CAAE,CACvD,KAAM,CAAAC,QAAQ,CAAGpB,QAAQ,EAAI,GAAAM,yBAAe,EAACP,MAAM,CAAC,CAAG,GAAAS,sBAAe,EAACR,QAAQ,CAAC,CAAGA,QAAQ,CAE3F,KAAM,CAAAW,GAAG,CAAG,GAAAC,yBAAe,EAACb,MAAM,CAAEqB,QAAQ,CAAC,CAC7C,GAAI,CAACT,GAAG,CAACE,OAAO,CAAE,CAChB,KAAM,IAAI,CAAAC,KAAK,CACb,OAAO,GAAAO,4BAAqB,EAAC3B,OAAO,CAACyB,SAAS,CAACG,MAAM,CAAC,cAActB,QAAQ,iBAAiB,GAAAe,gBAAa,EAACJ,GAAG,CAACK,KAAK,CAAC,EAAE,CACvH,CAAEC,KAAK,CAAE,iBAAkB,CAC7B,CAAC,CACH,CAEAvB,OAAO,CAACyB,SAAS,CAACI,IAAI,CAACZ,GAAG,CAACO,IAAI,CAAC,CAClC,CACF,CAEA,MAAO,CAAAxB,OAAO,CAChB","ignoreList":[]}
|
package/lib/commonjs/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.concat=concat;exports.generateOrdinalSuffix=generateOrdinalSuffix;exports.indent=indent;exports.ln=ln;exports.stringToBoolean=stringToBoolean;function stringToBoolean(str){if(str.toLowerCase()==="true"){return true;}if(str.toLowerCase()==="false"){return false;}return str;}function generateOrdinalSuffix(index){if(index<0)return"";const suffixes=["th","st","nd","rd"];const lastDigit=index%10;const lastTwoDigits=index%100;const suffix=lastDigit===1&&lastTwoDigits!==11?suffixes[1]:lastDigit===2&&lastTwoDigits!==12?suffixes[2]:lastDigit===3&&lastTwoDigits!==13?suffixes[3]:suffixes[0];return`${index+1}${suffix}`;}function ln(count){return"\n".repeat(count);}function indent(count){return" ".repeat(count);}function concat(...messages){return messages.join(" ");}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["stringToBoolean","str","toLowerCase","generateOrdinalSuffix","index","suffixes","lastDigit","lastTwoDigits","suffix","ln","count","repeat","indent","concat","messages","join"],"sourceRoot":"../../src","sources":["utils.ts"],"sourcesContent":["/**\n * Converts a string to its corresponding boolean value if the string is \"true\" or \"false\" (case-insensitive).\n *\n * @param str - The input string to convert.\n * @returns `true` if the input is \"true\", `false` if the input is \"false\", or the original string otherwise.\n */\nexport function stringToBoolean(str: string): boolean | string {\n if (str.toLowerCase() === \"true\") {\n return true;\n }\n\n if (str.toLowerCase() === \"false\") {\n return false;\n }\n\n return str;\n}\n\n/**\n * Returns the ordinal representation of a given zero-based index.\n *\n * For example, passing `0` returns `\"1st\"`, `1` returns `\"2nd\"`, and so on.\n *\n * Handles special cases for numbers ending in 11, 12, or 13 (e.g., `10` returns `\"11th\"`).\n *\n * @param index - The zero-based index to convert to an ordinal string.\n * @returns The ordinal string representation (e.g., `\"1st\"`, `\"2nd\"`, `\"3rd\"`, `\"4th\"`, ...).\n */\nexport function generateOrdinalSuffix(index: number): string {\n if (index < 0) return \"\";\n\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const lastDigit = index % 10;\n const lastTwoDigits = index % 100;\n\n const suffix =\n lastDigit === 1 && lastTwoDigits !== 11\n ? suffixes[1]\n : lastDigit === 2 && lastTwoDigits !== 12\n ? suffixes[2]\n : lastDigit === 3 && lastTwoDigits !== 13\n ? suffixes[3]\n : suffixes[0];\n\n return `${index + 1}${suffix}`;\n}\n\n/** New line */\nexport function ln(count: number) {\n return \"\\n\".repeat(count);\n}\n\n/** Space */\nexport function indent(count: number) {\n return \" \".repeat(count);\n}\n\n/** Concat strings */\nexport function concat(...messages: string[]) {\n // messages = messages.filter(Boolean);\n return messages.join(\" \");\n}\n"],"mappings":"4NAMO,QAAS,CAAAA,eAAeA,CAACC,GAAW,CAAoB,CAC7D,GAAIA,GAAG,CAACC,WAAW,CAAC,CAAC,GAAK,MAAM,CAAE,CAChC,MAAO,KAAI,CACb,CAEA,GAAID,GAAG,CAACC,WAAW,CAAC,CAAC,GAAK,OAAO,CAAE,CACjC,MAAO,MAAK,CACd,CAEA,MAAO,CAAAD,GAAG,CACZ,CAYO,QAAS,CAAAE,qBAAqBA,CAACC,KAAa,CAAU,CAC3D,GAAIA,KAAK,CAAG,CAAC,CAAE,MAAO,EAAE,CAExB,KAAM,CAAAC,QAAQ,CAAG,CAAC,IAAI,CAAE,IAAI,CAAE,IAAI,CAAE,IAAI,CAAC,CACzC,KAAM,CAAAC,SAAS,CAAGF,KAAK,CAAG,EAAE,CAC5B,KAAM,CAAAG,aAAa,CAAGH,KAAK,CAAG,GAAG,CAEjC,KAAM,CAAAI,MAAM,CACVF,SAAS,GAAK,CAAC,EAAIC,aAAa,GAAK,EAAE,CACnCF,QAAQ,CAAC,CAAC,CAAC,CACXC,SAAS,GAAK,CAAC,EAAIC,aAAa,GAAK,EAAE,CACrCF,QAAQ,CAAC,CAAC,CAAC,CACXC,SAAS,GAAK,CAAC,EAAIC,aAAa,GAAK,EAAE,CACrCF,QAAQ,CAAC,CAAC,CAAC,CACXA,QAAQ,CAAC,CAAC,CAAC,CAErB,MAAO,GAAGD,KAAK,CAAG,CAAC,GAAGI,MAAM,EAAE,CAChC,CAGO,QAAS,CAAAC,EAAEA,CAACC,KAAa,CAAE,CAChC,MAAO,IAAI,CAACC,MAAM,CAACD,KAAK,CAAC,CAC3B,CAGO,QAAS,CAAAE,MAAMA,CAACF,KAAa,CAAE,CACpC,MAAO,GAAG,CAACC,MAAM,CAACD,KAAK,CAAC,CAC1B,CAGO,QAAS,CAAAG,MAAMA,CAAC,GAAGC,QAAkB,CAAE,CAE5C,MAAO,CAAAA,QAAQ,CAACC,IAAI,CAAC,GAAG,CAAC,CAC3B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.isBooleanSchema=isBooleanSchema;exports.isOptionalSchema=isOptionalSchema;exports.safeParseSchema=safeParseSchema;exports.schemaDefaultValue=schemaDefaultValue;exports.schemaDescription=schemaDescription;exports.stringToArray=stringToArray;exports.stringToSet=stringToSet;var _v=require("zod/v3");var _core=require("zod/v4/core");function isV4Schema(schema){return"_zod"in schema;}function safeParseSchema(schema,value){if(isV4Schema(schema)){return(0,_core.safeParse)(schema,value);}return schema.safeParse(value);}function isBooleanSchema(schema){if(isV4Schema(schema)){return isBooleanV4Schema(schema);}return isBooleanV3Schema(schema);}function isBooleanV4Schema(schema){let def=schema._zod.def;while(def){if(def.type==="boolean"){return true;}if(isV4DefPipe(def)){return isBooleanV4Schema(def.out);}if(!isV4DefWithInnerType(def)){return false;}def=def.innerType._zod.def;}return false;}function isBooleanV3Schema(schema){let type=schema;while(type){if(type instanceof _v.ZodBoolean){return true;}if(type instanceof _v.ZodEffects){return isBooleanV3Schema(type._def.schema);}type=type._def.innerType;}return false;}function schemaDefaultValue(schema){if(isV4Schema(schema)){return schemaV4DefaultValue(schema);}return schemaV3DefaultValue(schema);}function schemaV4DefaultValue(schema){let def=schema._zod.def;while(def){if(isDefaultV4Def(def)){return def.defaultValue;}if(isV4DefPipe(def)){return schemaV4DefaultValue(def.out);}if(!isV4DefWithInnerType(def)){return undefined;}def=def.innerType._zod.def;}return undefined;}function schemaV3DefaultValue(schema){let type=schema;while(type){if(type instanceof _v.ZodDefault){return type._def.defaultValue();}if(type instanceof _v.ZodEffects){return schemaV3DefaultValue(type._def.schema);}type=type._def.innerType;}return undefined;}function schemaDescription(schema){if(isV4Schema(schema)){if(!("meta"in schema)||typeof schema.meta!=="function")return;return schema.meta()?.description;}return schema.description;}function isOptionalSchema(schema){if(isV4Schema(schema)){return schema._zod.def.type==="optional"||schema._zod.def.type==="default";}return schema.isOptional();}function isDefaultV4Def(def){return def.type==="default";}function isV4DefWithInnerType(def){return new Set(["default","prefault","optional","nonoptional","nullable","success","catch","readonly","promise"]).has(def.type);}function isV4DefPipe(def){return def.type==="pipe";}function stringToArray(val,sep=","){if(typeof val==="string"){return val.split(sep).map(s=>s.trim()).filter(Boolean);}return val;}function stringToSet(val,sep=","){const maybeArray=stringToArray(val,sep);if(Array.isArray(maybeArray)){return new Set(maybeArray);}return val;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_v","require","_core","isV4Schema","schema","safeParseSchema","value","safeParse","isBooleanSchema","isBooleanV4Schema","isBooleanV3Schema","def","_zod","type","isV4DefPipe","out","isV4DefWithInnerType","innerType","ZodBoolean","ZodEffects","_def","schemaDefaultValue","schemaV4DefaultValue","schemaV3DefaultValue","isDefaultV4Def","defaultValue","undefined","ZodDefault","schemaDescription","meta","description","isOptionalSchema","isOptional","Set","has","stringToArray","val","sep","split","map","s","trim","filter","Boolean","stringToSet","maybeArray","Array","isArray"],"sourceRoot":"../../src","sources":["zod-utils.ts"],"sourcesContent":["import { ZodBoolean, ZodDefault, ZodEffects } from \"zod/v3\";\nimport { safeParse } from \"zod/v4/core\";\n\nimport type * as Z4 from \"zod/v4/core\";\nimport type { Schema, SchemaV3, SchemaV4 } from \"./types.js\";\n\nfunction isV4Schema(schema: Schema): schema is SchemaV4 {\n return \"_zod\" in schema;\n}\n\n/** - Safe parse a value against a schema */\nexport function safeParseSchema(schema: Schema, value: unknown) {\n if (isV4Schema(schema)) {\n return safeParse(schema, value);\n }\n\n return schema.safeParse(value);\n}\n\n/** - Check if a schema is a boolean */\nexport function isBooleanSchema(schema: Schema): boolean {\n if (isV4Schema(schema)) {\n return isBooleanV4Schema(schema);\n }\n\n return isBooleanV3Schema(schema);\n}\n\nfunction isBooleanV4Schema(schema: SchemaV4): boolean {\n let def = schema._zod.def;\n\n while (def) {\n if (def.type === \"boolean\") {\n return true;\n }\n\n if (isV4DefPipe(def)) {\n return isBooleanV4Schema(def.out);\n }\n\n if (!isV4DefWithInnerType(def)) {\n return false;\n }\n\n def = def.innerType._zod.def;\n }\n\n return false;\n}\n\nfunction isBooleanV3Schema(schema: SchemaV3): boolean {\n let type = schema;\n while (type) {\n if (type instanceof ZodBoolean) {\n return true;\n }\n\n if (type instanceof ZodEffects) {\n return isBooleanV3Schema(type._def.schema);\n }\n\n type = type._def.innerType;\n }\n\n return false;\n}\n\n/** - Get the default value of a schema */\nexport function schemaDefaultValue(schema: Schema): unknown | undefined {\n if (isV4Schema(schema)) {\n return schemaV4DefaultValue(schema);\n }\n\n return schemaV3DefaultValue(schema);\n}\n\nfunction schemaV4DefaultValue(schema: SchemaV4): unknown | undefined {\n let def = schema._zod.def;\n\n while (def) {\n if (isDefaultV4Def(def)) {\n return def.defaultValue;\n }\n\n if (isV4DefPipe(def)) {\n return schemaV4DefaultValue(def.out);\n }\n\n if (!isV4DefWithInnerType(def)) {\n return undefined;\n }\n\n def = def.innerType._zod.def;\n }\n\n return undefined;\n}\n\nfunction schemaV3DefaultValue(schema: SchemaV3): unknown | undefined {\n let type = schema;\n while (type) {\n if (type instanceof ZodDefault) {\n return type._def.defaultValue();\n }\n\n if (type instanceof ZodEffects) {\n return schemaV3DefaultValue(type._def.schema);\n }\n\n type = type._def.innerType;\n }\n\n return undefined;\n}\n\n/** - Get the description of a schema */\nexport function schemaDescription(schema: Schema): string | undefined {\n if (isV4Schema(schema)) {\n if (!(\"meta\" in schema) || typeof schema.meta !== \"function\") return;\n return schema.meta()?.description;\n }\n\n return schema.description;\n}\n\n/** - Check if a schema is optional */\nexport function isOptionalSchema(schema: Schema): schema is Z4.$ZodOptional {\n if (isV4Schema(schema)) {\n return schema._zod.def.type === \"optional\" || schema._zod.def.type === \"default\";\n }\n\n return schema.isOptional();\n}\n\nfunction isDefaultV4Def(def: Z4.$ZodTypeDef): def is Z4.$ZodDefaultDef {\n return def.type === \"default\";\n}\n\ntype SchemaWithInnerType =\n | Z4.$ZodDefaultDef\n | Z4.$ZodPrefaultDef\n | Z4.$ZodOptionalDef\n | Z4.$ZodNonOptionalDef\n | Z4.$ZodNullableDef\n | Z4.$ZodSuccessDef\n | Z4.$ZodCatchDef\n | Z4.$ZodReadonlyDef\n | Z4.$ZodPromiseDef;\n\nfunction isV4DefWithInnerType(def: Z4.$ZodTypeDef): def is SchemaWithInnerType {\n return new Set([\n \"default\",\n \"prefault\",\n \"optional\",\n \"nonoptional\",\n \"nullable\",\n \"success\",\n \"catch\",\n \"readonly\",\n \"promise\",\n ]).has(def.type);\n}\n\nfunction isV4DefPipe(def: Z4.$ZodTypeDef): def is Z4.$ZodPipeDef {\n return def.type === \"pipe\";\n}\n\n/**\n * A preprocessing function for Zod that converts a string to an array of strings.\n *\n * @param val - The value given by zod.\n * @param sep - The separator to use when splitting the string. Defaults to \",\".\n */\nexport function stringToArray(val: unknown, sep: string = \",\") {\n if (typeof val === \"string\") {\n return val\n .split(sep)\n .map(s => s.trim())\n .filter(Boolean);\n }\n\n return val;\n}\n\n/**\n * A preprocessing function for Zod that converts a string to a `Set` of strings.\n *\n * @param val - The value given by zod.\n * @param sep - The separator to use when splitting the string. Defaults to \",\".\n */\nexport function stringToSet(val: unknown, sep: string = \",\") {\n const maybeArray = stringToArray(val, sep);\n\n if (Array.isArray(maybeArray)) {\n return new Set(maybeArray);\n }\n\n return val;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{transformOptionToArg}from"../
|
|
1
|
+
import{transformOptionToArg}from"../parser/parse/parser-helpers.js";export function generateBashAutocompleteScript(...params){const[cli,...subcommands]=params;const mappedCommands=subcommands.reduce((acc,subcommand)=>{acc[subcommand.name]={options:subcommand.options?.map(option=>transformOptionToArg(option.name))??[],aliases:subcommand.aliases??[]};return acc;},{});let switchCase="";for(const[key,{options,aliases}]of Object.entries(mappedCommands)){switchCase+=` ${key}${aliases.length?"|":""}${aliases.join("|")})\n`;switchCase+=` opts="${options.join(" ")}"\n`;switchCase+=" ;;\n";}if(cli.options?.length){switchCase+=` "-"*)\n`;switchCase+=` opts="${cli.options.map(option=>transformOptionToArg(option.name)).join(" ")}"\n`;switchCase+=" ;;\n";}return`# Auto-generated by zod-args-parser
|
|
2
2
|
|
|
3
3
|
_${cli.cliName}_autocomplete() {
|
|
4
4
|
local cur prev commands opts subcommand used_opts filtered_opts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["transformOptionToArg","generateBashAutocompleteScript","params","cli","subcommands","mappedCommands","reduce","acc","subcommand","name","options","map","option","aliases","switchCase","key","Object","entries","length","join","cliName","keys"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["bash-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../
|
|
1
|
+
{"version":3,"names":["transformOptionToArg","generateBashAutocompleteScript","params","cli","subcommands","mappedCommands","reduce","acc","subcommand","name","options","map","option","aliases","switchCase","key","Object","entries","length","join","cliName","keys"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["bash-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../parser/parse/parser-helpers.js\";\n\nimport type { Cli, Subcommand } from \"../types.js\";\n\n/**\n * - Generate bash autocomplete script for your CLI\n * - The generated script should be added to your `.bash_profile` or `.bashrc` file:\n *\n * - Run: `nano $HOME/.bash_profile` or `nano $HOME/.bashrc`\n * - Add the following line: `source <generated script path>`\n * - Save and reopen bash to take effect\n */\nexport function generateBashAutocompleteScript(...params: [Cli, ...Subcommand[]]): string {\n const [cli, ...subcommands] = params;\n\n type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;\n\n const mappedCommands = subcommands.reduce((acc: MappedCommands, subcommand) => {\n acc[subcommand.name] = {\n options: subcommand.options?.map(option => transformOptionToArg(option.name)) ?? [],\n aliases: subcommand.aliases ?? [],\n };\n return acc;\n }, {});\n\n let switchCase = \"\";\n for (const [key, { options, aliases }] of Object.entries(mappedCommands)) {\n switchCase += ` ${key}${aliases.length ? \"|\" : \"\"}${aliases.join(\"|\")})\\n`;\n switchCase += ` opts=\"${options.join(\" \")}\"\\n`;\n switchCase += \" ;;\\n\";\n }\n\n if (cli.options?.length) {\n switchCase += ` \"-\"*)\\n`;\n switchCase += ` opts=\"${cli.options.map(option => transformOptionToArg(option.name)).join(\" \")}\"\\n`;\n switchCase += \" ;;\\n\";\n }\n\n return `# Auto-generated by zod-args-parser\n\n_${cli.cliName}_autocomplete() {\n local cur prev commands opts subcommand used_opts filtered_opts\n\n cur=\"\\${COMP_WORDS[COMP_CWORD]}\"\n prev=\"\\${COMP_WORDS[COMP_CWORD-1]}\"\n subcommand=\"\\${COMP_WORDS[1]}\"\n\n commands=\"${Object.keys(mappedCommands).join(\" \")}\"\n\n case \"$subcommand\" in\n${switchCase}\n esac\n\n used_opts=\"\"\n if [[ \" \\${commands[@]} \" =~ \" $subcommand \" ]]; then\n for word in \"\\${COMP_WORDS[@]:2}\"; do\n if [[ \"$word\" =~ ^- ]]; then\n used_opts+=\" $word\"\n fi\n done\n fi\n\n if [[ -n \"$opts\" ]]; then\n filtered_opts=\"\"\n for opt in $opts; do\n if [[ ! \" $used_opts \" =~ \" $opt \" ]]; then\n filtered_opts+=\"$opt \"\n fi\n done\n COMPREPLY=( $(compgen -W \"$filtered_opts\" -- \"$cur\") )\n return\n fi\n\n if [[ \"\\${COMP_CWORD}\" -eq 1 ]]; then\n COMPREPLY=( $(compgen -W \"$commands\" -- \"$cur\") )\n fi\n}\n\ncomplete -F _${cli.cliName}_autocomplete ${cli.cliName}\n`;\n}\n"],"mappings":"AAAA,OAASA,oBAAoB,KAAQ,mCAAmC,CAYxE,MAAO,SAAS,CAAAC,8BAA8BA,CAAC,GAAGC,MAA8B,CAAU,CACxF,KAAM,CAACC,GAAG,CAAE,GAAGC,WAAW,CAAC,CAAGF,MAAM,CAIpC,KAAM,CAAAG,cAAc,CAAGD,WAAW,CAACE,MAAM,CAAC,CAACC,GAAmB,CAAEC,UAAU,GAAK,CAC7ED,GAAG,CAACC,UAAU,CAACC,IAAI,CAAC,CAAG,CACrBC,OAAO,CAAEF,UAAU,CAACE,OAAO,EAAEC,GAAG,CAACC,MAAM,EAAIZ,oBAAoB,CAACY,MAAM,CAACH,IAAI,CAAC,CAAC,EAAI,EAAE,CACnFI,OAAO,CAAEL,UAAU,CAACK,OAAO,EAAI,EACjC,CAAC,CACD,MAAO,CAAAN,GAAG,CACZ,CAAC,CAAE,CAAC,CAAC,CAAC,CAEN,GAAI,CAAAO,UAAU,CAAG,EAAE,CACnB,IAAK,KAAM,CAACC,GAAG,CAAE,CAAEL,OAAO,CAAEG,OAAQ,CAAC,CAAC,EAAI,CAAAG,MAAM,CAACC,OAAO,CAACZ,cAAc,CAAC,CAAE,CACxES,UAAU,EAAI,OAAOC,GAAG,GAAGF,OAAO,CAACK,MAAM,CAAG,GAAG,CAAG,EAAE,GAAGL,OAAO,CAACM,IAAI,CAAC,GAAG,CAAC,KAAK,CAC7EL,UAAU,EAAI,eAAeJ,OAAO,CAACS,IAAI,CAAC,GAAG,CAAC,KAAK,CACnDL,UAAU,EAAI,YAAY,CAC5B,CAEA,GAAIX,GAAG,CAACO,OAAO,EAAEQ,MAAM,CAAE,CACvBJ,UAAU,EAAI,aAAa,CAC3BA,UAAU,EAAI,eAAeX,GAAG,CAACO,OAAO,CAACC,GAAG,CAACC,MAAM,EAAIZ,oBAAoB,CAACY,MAAM,CAACH,IAAI,CAAC,CAAC,CAACU,IAAI,CAAC,GAAG,CAAC,KAAK,CACxGL,UAAU,EAAI,YAAY,CAC5B,CAEA,MAAO;AACT;AACA,GAAGX,GAAG,CAACiB,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAcJ,MAAM,CAACK,IAAI,CAAChB,cAAc,CAAC,CAACc,IAAI,CAAC,GAAG,CAAC;AACnD;AACA;AACA,EAAEL,UAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeX,GAAG,CAACiB,OAAO,iBAAiBjB,GAAG,CAACiB,OAAO;AACtD,CAAC,CACD","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{transformOptionToArg}from"../
|
|
1
|
+
import{transformOptionToArg}from"../parser/parse/parser-helpers.js";export function generatePowerShellAutocompleteScript(...params){const[cli,...subcommands]=params;const mappedCommands=subcommands.reduce((acc,subcommand)=>{acc[subcommand.name]={options:subcommand.options?.map(option=>transformOptionToArg(option.name))??[],aliases:subcommand.aliases??[]};return acc;},{});const subcommandsStr=Object.keys(mappedCommands).map(key=>`'${key}'`).join(", ");const cliOptionsStr=cli.options?.map(option=>`'${transformOptionToArg(option.name)}'`).join(", ")||"";let switchCase="switch ($subcommand) {\n";for(const[key,{options,aliases}]of Object.entries(mappedCommands)){const optionsStr=options.map(option=>`'${option}'`).join(", ");switchCase+=` '${key}' { @(${optionsStr}) }\n`;aliases.forEach(a=>switchCase+=` '${a}' { @(${optionsStr}) }\n`);}switchCase+=` default { @(${cliOptionsStr}) }\n }`;let functionInfo="";if(cli.description){functionInfo=`<#\n.DESCRIPTION\n${cli.description}\n${cli.example?`\n.EXAMPLE\n${cli.example}`:""}\n#>`;}return`# Auto-generated by zod-args-parser
|
|
2
2
|
|
|
3
3
|
${functionInfo}
|
|
4
4
|
function ${cli.cliName} {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["transformOptionToArg","generatePowerShellAutocompleteScript","params","cli","subcommands","mappedCommands","reduce","acc","subcommand","name","options","map","option","aliases","subcommandsStr","Object","keys","key","join","cliOptionsStr","switchCase","entries","optionsStr","forEach","a","functionInfo","description","example","cliName"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["powershell-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../
|
|
1
|
+
{"version":3,"names":["transformOptionToArg","generatePowerShellAutocompleteScript","params","cli","subcommands","mappedCommands","reduce","acc","subcommand","name","options","map","option","aliases","subcommandsStr","Object","keys","key","join","cliOptionsStr","switchCase","entries","optionsStr","forEach","a","functionInfo","description","example","cliName"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["powershell-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../parser/parse/parser-helpers.js\";\n\nimport type { Cli, Subcommand } from \"../types.js\";\n\n/**\n * - Generates a PowerShell autocomplete script for your CLI.\n * - The script assumes that your CLI is available as a `.ps1` file in the environment variable. For example:\n * `cliName.ps1`.\n * - This should return a path to your script: `(Get-Command <cliName>.ps1).Source`\n * - The generated script should be added to your `profile.ps1` file:\n *\n * - Run: `notepad $profile`\n * - Add the following line: `. \"<generated script path>\"`\n * - Save and reopen powershell to take effect\n */\nexport function generatePowerShellAutocompleteScript(...params: [Cli, ...Subcommand[]]): string {\n const [cli, ...subcommands] = params;\n\n type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;\n\n const mappedCommands = subcommands.reduce((acc: MappedCommands, subcommand) => {\n acc[subcommand.name] = {\n options: subcommand.options?.map(option => transformOptionToArg(option.name)) ?? [],\n aliases: subcommand.aliases ?? [],\n };\n return acc;\n }, {});\n\n const subcommandsStr = Object.keys(mappedCommands)\n .map(key => `'${key}'`)\n .join(\", \");\n const cliOptionsStr = cli.options?.map(option => `'${transformOptionToArg(option.name)}'`).join(\", \") || \"\";\n\n let switchCase = \"switch ($subcommand) {\\n\";\n for (const [key, { options, aliases }] of Object.entries(mappedCommands)) {\n const optionsStr = options.map(option => `'${option}'`).join(\", \");\n switchCase += ` '${key}' { @(${optionsStr}) }\\n`;\n aliases.forEach(a => (switchCase += ` '${a}' { @(${optionsStr}) }\\n`));\n }\n switchCase += ` default { @(${cliOptionsStr}) }\\n }`;\n\n let functionInfo = \"\";\n if (cli.description) {\n functionInfo = `<#\\n.DESCRIPTION\\n${cli.description}\\n${cli.example ? `\\n.EXAMPLE\\n${cli.example}` : \"\"}\\n#>`;\n }\n\n return `# Auto-generated by zod-args-parser\n\n${functionInfo}\nfunction ${cli.cliName} {\n param(\n [Parameter(Position = 0, Mandatory = $false)]\n [string]$subcommand,\n [Parameter(Position = 1, ValueFromRemainingArguments = $true)]\n [string[]]$arguments\n )\n $scriptPath = (Get-Command '${cli.cliName}.ps1').Source\n if ($scriptPath) {\n $argumentList = @($subcommand) + ($arguments | Where-Object { $_ -notin '--', '--%' }) | Where-Object { $_ -ne '' }\n & $scriptPath @argumentList\n return\n }\n Write-Error \"Could not find '${cli.cliName}.ps1' script\"\n}\n\nRegister-ArgumentCompleter -CommandName '${cli.cliName}' -ParameterName 'subcommand' -ScriptBlock {\n param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)\n $subcommands = @(${subcommandsStr}${subcommandsStr && cliOptionsStr ? \", \" : \"\"}${cliOptionsStr})\n $subcommands | Where-Object { $_ -like \"$wordToComplete*\" }\n}\n\nRegister-ArgumentCompleter -CommandName '${cli.cliName}' -ParameterName 'arguments' -ScriptBlock {\n param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)\n $subcommand = $commandAst.CommandElements[1].Value\n $arguments = ${switchCase}\n $arguments | Where-Object { $_ -like \"$wordToComplete*\" }\n}`;\n}\n"],"mappings":"AAAA,OAASA,oBAAoB,KAAQ,mCAAmC,CAexE,MAAO,SAAS,CAAAC,oCAAoCA,CAAC,GAAGC,MAA8B,CAAU,CAC9F,KAAM,CAACC,GAAG,CAAE,GAAGC,WAAW,CAAC,CAAGF,MAAM,CAIpC,KAAM,CAAAG,cAAc,CAAGD,WAAW,CAACE,MAAM,CAAC,CAACC,GAAmB,CAAEC,UAAU,GAAK,CAC7ED,GAAG,CAACC,UAAU,CAACC,IAAI,CAAC,CAAG,CACrBC,OAAO,CAAEF,UAAU,CAACE,OAAO,EAAEC,GAAG,CAACC,MAAM,EAAIZ,oBAAoB,CAACY,MAAM,CAACH,IAAI,CAAC,CAAC,EAAI,EAAE,CACnFI,OAAO,CAAEL,UAAU,CAACK,OAAO,EAAI,EACjC,CAAC,CACD,MAAO,CAAAN,GAAG,CACZ,CAAC,CAAE,CAAC,CAAC,CAAC,CAEN,KAAM,CAAAO,cAAc,CAAGC,MAAM,CAACC,IAAI,CAACX,cAAc,CAAC,CAC/CM,GAAG,CAACM,GAAG,EAAI,IAAIA,GAAG,GAAG,CAAC,CACtBC,IAAI,CAAC,IAAI,CAAC,CACb,KAAM,CAAAC,aAAa,CAAGhB,GAAG,CAACO,OAAO,EAAEC,GAAG,CAACC,MAAM,EAAI,IAAIZ,oBAAoB,CAACY,MAAM,CAACH,IAAI,CAAC,GAAG,CAAC,CAACS,IAAI,CAAC,IAAI,CAAC,EAAI,EAAE,CAE3G,GAAI,CAAAE,UAAU,CAAG,0BAA0B,CAC3C,IAAK,KAAM,CAACH,GAAG,CAAE,CAAEP,OAAO,CAAEG,OAAQ,CAAC,CAAC,EAAI,CAAAE,MAAM,CAACM,OAAO,CAAChB,cAAc,CAAC,CAAE,CACxE,KAAM,CAAAiB,UAAU,CAAGZ,OAAO,CAACC,GAAG,CAACC,MAAM,EAAI,IAAIA,MAAM,GAAG,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC,CAClEE,UAAU,EAAI,YAAYH,GAAG,SAASK,UAAU,OAAO,CACvDT,OAAO,CAACU,OAAO,CAACC,CAAC,EAAKJ,UAAU,EAAI,YAAYI,CAAC,SAASF,UAAU,OAAQ,CAAC,CAC/E,CACAF,UAAU,EAAI,uBAAuBD,aAAa,YAAY,CAE9D,GAAI,CAAAM,YAAY,CAAG,EAAE,CACrB,GAAItB,GAAG,CAACuB,WAAW,CAAE,CACnBD,YAAY,CAAG,qBAAqBtB,GAAG,CAACuB,WAAW,KAAKvB,GAAG,CAACwB,OAAO,CAAG,eAAexB,GAAG,CAACwB,OAAO,EAAE,CAAG,EAAE,MAAM,CAC/G,CAEA,MAAO;AACT;AACA,EAAEF,YAAY;AACd,WAAWtB,GAAG,CAACyB,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkCzB,GAAG,CAACyB,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA,mCAAmCzB,GAAG,CAACyB,OAAO;AAC9C;AACA;AACA,2CAA2CzB,GAAG,CAACyB,OAAO;AACtD;AACA,uBAAuBd,cAAc,GAAGA,cAAc,EAAIK,aAAa,CAAG,IAAI,CAAG,EAAE,GAAGA,aAAa;AACnG;AACA;AACA;AACA,2CAA2ChB,GAAG,CAACyB,OAAO;AACtD;AACA;AACA,mBAAmBR,UAAU;AAC7B;AACA,EAAE,CACF","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{transformOptionToArg}from"../
|
|
1
|
+
import{transformOptionToArg}from"../parser/parse/parser-helpers.js";export function generateZshAutocompleteScript(...params){const[cli,...subcommands]=params;const genArguments=options=>{return options?.map(option=>`'${transformOptionToArg(option.name)}[${option.description??""}]'`).join(" \\\n ");};const genSubCommand=subcommand=>{const options=subcommand.options;if(!options||options.length===0)return"";return`${subcommand.name})
|
|
2
2
|
_arguments \\
|
|
3
3
|
${genArguments(options)} \\
|
|
4
4
|
'*: :_files' \\
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["transformOptionToArg","generateZshAutocompleteScript","params","cli","subcommands","genArguments","options","map","option","name","description","join","genSubCommand","subcommand","length","cliName","filter","Boolean"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["zsh-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../
|
|
1
|
+
{"version":3,"names":["transformOptionToArg","generateZshAutocompleteScript","params","cli","subcommands","genArguments","options","map","option","name","description","join","genSubCommand","subcommand","length","cliName","filter","Boolean"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["zsh-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../parser/parse/parser-helpers.js\";\n\nimport type { Cli, Option, Subcommand } from \"../types.js\";\n\n/**\n * - Generates a ZSH autocomplete script for your CLI.\n * - The generated script should be added to your `~/.zshrc` or `~/.zsh_profile` file:\n *\n * - Run: `nano $HOME/.zshrc` or `nano $HOME/.zsh_profile`\n * - Add the following line: `source <generated script path>`\n * - Save and reopen zsh to take effect\n */\nexport function generateZshAutocompleteScript(...params: [Cli, ...Subcommand[]]): string {\n const [cli, ...subcommands] = params;\n\n const genArguments = (options: Option[]) => {\n return options\n ?.map(option => `'${transformOptionToArg(option.name)}[${option.description ?? \"\"}]'`)\n .join(\" \\\\\\n \");\n };\n\n const genSubCommand = (subcommand: Subcommand) => {\n const options = subcommand.options;\n if (!options || options.length === 0) return \"\";\n return `${subcommand.name})\n _arguments \\\\\n ${genArguments(options)} \\\\\n '*: :_files' \\\\\n && ret=0\n ;;`;\n };\n\n return `# Auto-generated by zod-args-parser\n\n_${cli.cliName}_autocomplete() {\n local ret=1\n\n _arguments -C \\\\\n '1: :_${cli.cliName}_commands' \\\\\n '*:: :->subcmds' \\\\\n && ret=0\n\n case $state in\n subcmds)\n case \"$words[1]\" in\n ${subcommands.map(genSubCommand).filter(Boolean).join(\"\\n \")}\n *)\n _arguments \\\\\n '*: :_files' \\\\\n && ret=0\n ;;\n esac\n ;;\n esac\n\n return $ret\n}\n \n_${cli.cliName}_commands() {\n local -a commands=(\n ${subcommands.map(subcommand => `\"${subcommand.name}:${subcommand.description ?? \"\"}\"`).join(\"\\n \")}\n )\n\n _describe -t subcommands 'subcommand' commands\n}\n\ncompdef _${cli.cliName}_autocomplete ${cli.cliName}\n`;\n}\n"],"mappings":"AAAA,OAASA,oBAAoB,KAAQ,mCAAmC,CAYxE,MAAO,SAAS,CAAAC,6BAA6BA,CAAC,GAAGC,MAA8B,CAAU,CACvF,KAAM,CAACC,GAAG,CAAE,GAAGC,WAAW,CAAC,CAAGF,MAAM,CAEpC,KAAM,CAAAG,YAAY,CAAIC,OAAiB,EAAK,CAC1C,MAAO,CAAAA,OAAO,EACVC,GAAG,CAACC,MAAM,EAAI,IAAIR,oBAAoB,CAACQ,MAAM,CAACC,IAAI,CAAC,IAAID,MAAM,CAACE,WAAW,EAAI,EAAE,IAAI,CAAC,CACrFC,IAAI,CAAC,mBAAmB,CAAC,CAC9B,CAAC,CAED,KAAM,CAAAC,aAAa,CAAIC,UAAsB,EAAK,CAChD,KAAM,CAAAP,OAAO,CAAGO,UAAU,CAACP,OAAO,CAClC,GAAI,CAACA,OAAO,EAAIA,OAAO,CAACQ,MAAM,GAAK,CAAC,CAAE,MAAO,EAAE,CAC/C,MAAO,GAAGD,UAAU,CAACJ,IAAI;AAC7B;AACA,cAAcJ,YAAY,CAACC,OAAO,CAAC;AACnC;AACA;AACA,aAAa,CACX,CAAC,CAED,MAAO;AACT;AACA,GAAGH,GAAG,CAACY,OAAO;AACd;AACA;AACA;AACA,YAAYZ,GAAG,CAACY,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,UAAUX,WAAW,CAACG,GAAG,CAACK,aAAa,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACN,IAAI,CAAC,YAAY,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAGR,GAAG,CAACY,OAAO;AACd;AACA,MAAMX,WAAW,CAACG,GAAG,CAACM,UAAU,EAAI,IAAIA,UAAU,CAACJ,IAAI,IAAII,UAAU,CAACH,WAAW,EAAI,EAAE,GAAG,CAAC,CAACC,IAAI,CAAC,QAAQ,CAAC;AAC1G;AACA;AACA;AACA;AACA;AACA,WAAWR,GAAG,CAACY,OAAO,iBAAiBZ,GAAG,CAACY,OAAO;AAClD,CAAC,CACD","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{concat,indent,ln}from"../utils.js";export function formatHelpMsgArguments(argsMetadata,c,longest){if(!argsMetadata.length)return"";let msg=c.title(" ARGUMENTS")+ln(1);for(const metadata of argsMetadata){const defaultStr=typeof metadata.defaultValue!=="undefined"?`(default: ${metadata.defaultValueAsString})`:"";const spacing=longest+2-metadata.name.length;const normalizeDesc=metadata.description.replace(/\n/g,"\n"+indent(longest+6)+c.punctuation("└"));msg+=concat(indent(2)+c.argument(metadata.name),indent(spacing),c.description(normalizeDesc),(defaultStr?c.default(defaultStr):metadata.optional?c.optional("(optional)"):"")+ln(1));if(metadata.example){const normalizeExample=metadata.example.replace(/\n/g,"\n"+indent(longest+16));msg+=concat(indent(longest+5),c.punctuation("└")+c.exampleTitle("Example:"),c.example(normalizeExample)+ln(1));}}msg+=ln(1);return msg;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["concat","indent","ln","formatHelpMsgArguments","argsMetadata","c","longest","length","msg","title","metadata","defaultStr","defaultValue","defaultValueAsString","spacing","name","normalizeDesc","description","replace","punctuation","argument","default","optional","example","normalizeExample","exampleTitle"],"sourceRoot":"../../../src/help-message","sources":["format-arguments.ts"],"sourcesContent":["import { concat, indent, ln } from \"../utils.js\";\n\nimport type { ArgumentMetadata } from \"../metadata/metadata-types.js\";\nimport type { HelpMsgStyle } from \"../types.js\";\n\nexport function formatHelpMsgArguments(argsMetadata: ArgumentMetadata[], c: HelpMsgStyle, longest: number): string {\n if (!argsMetadata.length) return \"\";\n\n let msg = c.title(\" ARGUMENTS\") + ln(1);\n\n for (const metadata of argsMetadata) {\n const defaultStr =\n typeof metadata.defaultValue !== \"undefined\" ? `(default: ${metadata.defaultValueAsString})` : \"\";\n\n const spacing = longest + 2 - metadata.name.length;\n const normalizeDesc = metadata.description.replace(/\\n/g, \"\\n\" + indent(longest + 6) + c.punctuation(\"└\"));\n\n msg += concat(\n indent(2) + c.argument(metadata.name),\n indent(spacing),\n c.description(normalizeDesc),\n (defaultStr ? c.default(defaultStr) : metadata.optional ? c.optional(\"(optional)\") : \"\") + ln(1),\n );\n\n if (metadata.example) {\n const normalizeExample = metadata.example.replace(/\\n/g, \"\\n\" + indent(longest + 16));\n msg += concat(\n indent(longest + 5),\n c.punctuation(\"└\") + c.exampleTitle(\"Example:\"),\n c.example(normalizeExample) + ln(1),\n );\n }\n }\n\n msg += ln(1);\n\n return msg;\n}\n"],"mappings":"AAAA,OAASA,MAAM,CAAEC,MAAM,CAAEC,EAAE,KAAQ,aAAa,CAKhD,MAAO,SAAS,CAAAC,sBAAsBA,CAACC,YAAgC,CAAEC,CAAe,CAAEC,OAAe,CAAU,CACjH,GAAI,CAACF,YAAY,CAACG,MAAM,CAAE,MAAO,EAAE,CAEnC,GAAI,CAAAC,GAAG,CAAGH,CAAC,CAACI,KAAK,CAAC,YAAY,CAAC,CAAGP,EAAE,CAAC,CAAC,CAAC,CAEvC,IAAK,KAAM,CAAAQ,QAAQ,GAAI,CAAAN,YAAY,CAAE,CACnC,KAAM,CAAAO,UAAU,CACd,MAAO,CAAAD,QAAQ,CAACE,YAAY,GAAK,WAAW,CAAG,aAAaF,QAAQ,CAACG,oBAAoB,GAAG,CAAG,EAAE,CAEnG,KAAM,CAAAC,OAAO,CAAGR,OAAO,CAAG,CAAC,CAAGI,QAAQ,CAACK,IAAI,CAACR,MAAM,CAClD,KAAM,CAAAS,aAAa,CAAGN,QAAQ,CAACO,WAAW,CAACC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAGjB,MAAM,CAACK,OAAO,CAAG,CAAC,CAAC,CAAGD,CAAC,CAACc,WAAW,CAAC,GAAG,CAAC,CAAC,CAE1GX,GAAG,EAAIR,MAAM,CACXC,MAAM,CAAC,CAAC,CAAC,CAAGI,CAAC,CAACe,QAAQ,CAACV,QAAQ,CAACK,IAAI,CAAC,CACrCd,MAAM,CAACa,OAAO,CAAC,CACfT,CAAC,CAACY,WAAW,CAACD,aAAa,CAAC,CAC5B,CAACL,UAAU,CAAGN,CAAC,CAACgB,OAAO,CAACV,UAAU,CAAC,CAAGD,QAAQ,CAACY,QAAQ,CAAGjB,CAAC,CAACiB,QAAQ,CAAC,YAAY,CAAC,CAAG,EAAE,EAAIpB,EAAE,CAAC,CAAC,CACjG,CAAC,CAED,GAAIQ,QAAQ,CAACa,OAAO,CAAE,CACpB,KAAM,CAAAC,gBAAgB,CAAGd,QAAQ,CAACa,OAAO,CAACL,OAAO,CAAC,KAAK,CAAE,IAAI,CAAGjB,MAAM,CAACK,OAAO,CAAG,EAAE,CAAC,CAAC,CACrFE,GAAG,EAAIR,MAAM,CACXC,MAAM,CAACK,OAAO,CAAG,CAAC,CAAC,CACnBD,CAAC,CAACc,WAAW,CAAC,GAAG,CAAC,CAAGd,CAAC,CAACoB,YAAY,CAAC,UAAU,CAAC,CAC/CpB,CAAC,CAACkB,OAAO,CAACC,gBAAgB,CAAC,CAAGtB,EAAE,CAAC,CAAC,CACpC,CAAC,CACH,CACF,CAEAM,GAAG,EAAIN,EAAE,CAAC,CAAC,CAAC,CAEZ,MAAO,CAAAM,GAAG,CACZ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getCliMetadata}from"../metadata/get-cli-metadata.js";import{concat,indent,ln}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||metadata.allowPositional?c.argument("<arguments>"):"");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=metadata.placeholder||(metadata.options.length?"[options]":metadata.allowPositional?"<args>":" ");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));}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getCliMetadata","concat","indent","ln","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","allowPositional","argument","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 } 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 || metadata.allowPositional ? c.argument(\"<arguments>\") : \"\",\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 =\n metadata.placeholder || (metadata.options.length ? \"[options]\" : metadata.allowPositional ? \"<args>\" : \" \");\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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{concat,indent,ln}from"../utils.js";export function formatHelpMsgOptions(optionsMetadata,c,longest){if(!optionsMetadata.length)return"";let msg=c.title(" OPTIONS")+ln(1);for(const metadata of optionsMetadata){const names=metadata.aliasesAsArgs.concat([metadata.nameAsArg]);const normalizeDesc=metadata.description.replace(/\n/g,"\n"+indent(longest+7)+c.punctuation("└"));const defaultStr=typeof metadata.defaultValue!=="undefined"?`(default: ${metadata.defaultValueAsString})`:"";const optLength=names.join(", ").length+metadata.placeholder.length;const spacing=longest+1-optLength;const coloredNames=names.map(name=>c.option(name)).join(c.punctuation(", "));msg+=concat(indent(2)+coloredNames,c.placeholder(metadata.placeholder),indent(spacing),c.description(normalizeDesc),(defaultStr?c.default(defaultStr):metadata.optional?c.optional("(optional)"):"")+ln(1));if(metadata.example){const normalizeExample=metadata.example.replace(/\n/g,"\n"+indent(longest+17));msg+=concat(indent(longest+6)+c.punctuation("└")+c.exampleTitle("Example:"),c.example(normalizeExample)+ln(1));}}msg+=ln(1);return msg;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["concat","indent","ln","formatHelpMsgOptions","optionsMetadata","c","longest","length","msg","title","metadata","names","aliasesAsArgs","nameAsArg","normalizeDesc","description","replace","punctuation","defaultStr","defaultValue","defaultValueAsString","optLength","join","placeholder","spacing","coloredNames","map","name","option","default","optional","example","normalizeExample","exampleTitle"],"sourceRoot":"../../../src/help-message","sources":["format-options.ts"],"sourcesContent":["import { concat, indent, ln } from \"../utils.js\";\n\nimport type { OptionMetadata } from \"../metadata/metadata-types.js\";\nimport type { HelpMsgStyle } from \"../types.js\";\n\nexport function formatHelpMsgOptions(optionsMetadata: OptionMetadata[], c: HelpMsgStyle, longest: number): string {\n if (!optionsMetadata.length) return \"\";\n\n let msg = c.title(\" OPTIONS\") + ln(1);\n\n for (const metadata of optionsMetadata) {\n const names = metadata.aliasesAsArgs.concat([metadata.nameAsArg]);\n const normalizeDesc = metadata.description.replace(/\\n/g, \"\\n\" + indent(longest + 7) + c.punctuation(\"└\"));\n const defaultStr =\n typeof metadata.defaultValue !== \"undefined\" ? `(default: ${metadata.defaultValueAsString})` : \"\";\n\n const optLength = names.join(\", \").length + metadata.placeholder.length;\n const spacing = longest + 1 - optLength;\n\n const coloredNames = names.map(name => c.option(name)).join(c.punctuation(\", \"));\n\n msg += concat(\n indent(2) + coloredNames,\n c.placeholder(metadata.placeholder),\n indent(spacing),\n c.description(normalizeDesc),\n (defaultStr ? c.default(defaultStr) : metadata.optional ? c.optional(\"(optional)\") : \"\") + ln(1),\n );\n\n if (metadata.example) {\n const normalizeExample = metadata.example.replace(/\\n/g, \"\\n\" + indent(longest + 17));\n msg += concat(\n indent(longest + 6) + c.punctuation(\"└\") + c.exampleTitle(\"Example:\"),\n c.example(normalizeExample) + ln(1),\n );\n }\n }\n\n msg += ln(1);\n\n return msg;\n}\n"],"mappings":"AAAA,OAASA,MAAM,CAAEC,MAAM,CAAEC,EAAE,KAAQ,aAAa,CAKhD,MAAO,SAAS,CAAAC,oBAAoBA,CAACC,eAAiC,CAAEC,CAAe,CAAEC,OAAe,CAAU,CAChH,GAAI,CAACF,eAAe,CAACG,MAAM,CAAE,MAAO,EAAE,CAEtC,GAAI,CAAAC,GAAG,CAAGH,CAAC,CAACI,KAAK,CAAC,UAAU,CAAC,CAAGP,EAAE,CAAC,CAAC,CAAC,CAErC,IAAK,KAAM,CAAAQ,QAAQ,GAAI,CAAAN,eAAe,CAAE,CACtC,KAAM,CAAAO,KAAK,CAAGD,QAAQ,CAACE,aAAa,CAACZ,MAAM,CAAC,CAACU,QAAQ,CAACG,SAAS,CAAC,CAAC,CACjE,KAAM,CAAAC,aAAa,CAAGJ,QAAQ,CAACK,WAAW,CAACC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAGf,MAAM,CAACK,OAAO,CAAG,CAAC,CAAC,CAAGD,CAAC,CAACY,WAAW,CAAC,GAAG,CAAC,CAAC,CAC1G,KAAM,CAAAC,UAAU,CACd,MAAO,CAAAR,QAAQ,CAACS,YAAY,GAAK,WAAW,CAAG,aAAaT,QAAQ,CAACU,oBAAoB,GAAG,CAAG,EAAE,CAEnG,KAAM,CAAAC,SAAS,CAAGV,KAAK,CAACW,IAAI,CAAC,IAAI,CAAC,CAACf,MAAM,CAAGG,QAAQ,CAACa,WAAW,CAAChB,MAAM,CACvE,KAAM,CAAAiB,OAAO,CAAGlB,OAAO,CAAG,CAAC,CAAGe,SAAS,CAEvC,KAAM,CAAAI,YAAY,CAAGd,KAAK,CAACe,GAAG,CAACC,IAAI,EAAItB,CAAC,CAACuB,MAAM,CAACD,IAAI,CAAC,CAAC,CAACL,IAAI,CAACjB,CAAC,CAACY,WAAW,CAAC,IAAI,CAAC,CAAC,CAEhFT,GAAG,EAAIR,MAAM,CACXC,MAAM,CAAC,CAAC,CAAC,CAAGwB,YAAY,CACxBpB,CAAC,CAACkB,WAAW,CAACb,QAAQ,CAACa,WAAW,CAAC,CACnCtB,MAAM,CAACuB,OAAO,CAAC,CACfnB,CAAC,CAACU,WAAW,CAACD,aAAa,CAAC,CAC5B,CAACI,UAAU,CAAGb,CAAC,CAACwB,OAAO,CAACX,UAAU,CAAC,CAAGR,QAAQ,CAACoB,QAAQ,CAAGzB,CAAC,CAACyB,QAAQ,CAAC,YAAY,CAAC,CAAG,EAAE,EAAI5B,EAAE,CAAC,CAAC,CACjG,CAAC,CAED,GAAIQ,QAAQ,CAACqB,OAAO,CAAE,CACpB,KAAM,CAAAC,gBAAgB,CAAGtB,QAAQ,CAACqB,OAAO,CAACf,OAAO,CAAC,KAAK,CAAE,IAAI,CAAGf,MAAM,CAACK,OAAO,CAAG,EAAE,CAAC,CAAC,CACrFE,GAAG,EAAIR,MAAM,CACXC,MAAM,CAACK,OAAO,CAAG,CAAC,CAAC,CAAGD,CAAC,CAACY,WAAW,CAAC,GAAG,CAAC,CAAGZ,CAAC,CAAC4B,YAAY,CAAC,UAAU,CAAC,CACrE5B,CAAC,CAAC0B,OAAO,CAACC,gBAAgB,CAAC,CAAG9B,EAAE,CAAC,CAAC,CACpC,CAAC,CACH,CACF,CAEAM,GAAG,EAAIN,EAAE,CAAC,CAAC,CAAC,CAEZ,MAAO,CAAAM,GAAG,CACZ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{indent,
|
|
1
|
+
import{concat,indent,ln}from"../utils.js";export function formatHelpMsgCommands(subcommandsMetadata,c,longest){if(!subcommandsMetadata.length)return"";let msg=c.title(" COMMANDS")+ln(1);for(const metadata of subcommandsMetadata){const names=metadata.aliases.concat([metadata.name]);const placeholder=metadata.placeholder||(metadata.options.length?"[options]":metadata.allowPositional?"<args>":" ");const normalizeDesc=metadata.description.replace(/\n/g,"\n"+indent(longest+7)+c.punctuation("└"));const optLength=names.join(", ").length+placeholder.length;const spacing=longest+1-optLength;const coloredNames=names.map(name=>c.command(name)).join(c.punctuation(", "));msg+=concat(indent(2)+coloredNames,c.placeholder(placeholder),indent(spacing),c.description(normalizeDesc)+ln(1));}msg+=ln(1);return msg;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["concat","indent","ln","formatHelpMsgCommands","subcommandsMetadata","c","longest","length","msg","title","metadata","names","aliases","name","placeholder","options","allowPositional","normalizeDesc","description","replace","punctuation","optLength","join","spacing","coloredNames","map","command"],"sourceRoot":"../../../src/help-message","sources":["format-subcommands.ts"],"sourcesContent":["import { concat, indent, ln } from \"../utils.js\";\n\nimport type { SubcommandMetadata } from \"../metadata/metadata-types.js\";\nimport type { HelpMsgStyle } from \"../types.js\";\n\nexport function formatHelpMsgCommands(\n subcommandsMetadata: SubcommandMetadata[],\n c: HelpMsgStyle,\n longest: number,\n): string {\n if (!subcommandsMetadata.length) return \"\";\n\n let msg = c.title(\" COMMANDS\") + ln(1);\n\n for (const metadata of subcommandsMetadata) {\n const names = metadata.aliases.concat([metadata.name]);\n const placeholder =\n metadata.placeholder || (metadata.options.length ? \"[options]\" : metadata.allowPositional ? \"<args>\" : \" \");\n const normalizeDesc = metadata.description.replace(/\\n/g, \"\\n\" + indent(longest + 7) + c.punctuation(\"└\"));\n\n const optLength = names.join(\", \").length + placeholder.length;\n const spacing = longest + 1 - optLength;\n\n const coloredNames = names.map(name => c.command(name)).join(c.punctuation(\", \"));\n\n msg += concat(\n indent(2) + coloredNames,\n c.placeholder(placeholder),\n indent(spacing),\n c.description(normalizeDesc) + ln(1),\n );\n }\n\n msg += ln(1);\n\n return msg;\n}\n"],"mappings":"AAAA,OAASA,MAAM,CAAEC,MAAM,CAAEC,EAAE,KAAQ,aAAa,CAKhD,MAAO,SAAS,CAAAC,qBAAqBA,CACnCC,mBAAyC,CACzCC,CAAe,CACfC,OAAe,CACP,CACR,GAAI,CAACF,mBAAmB,CAACG,MAAM,CAAE,MAAO,EAAE,CAE1C,GAAI,CAAAC,GAAG,CAAGH,CAAC,CAACI,KAAK,CAAC,WAAW,CAAC,CAAGP,EAAE,CAAC,CAAC,CAAC,CAEtC,IAAK,KAAM,CAAAQ,QAAQ,GAAI,CAAAN,mBAAmB,CAAE,CAC1C,KAAM,CAAAO,KAAK,CAAGD,QAAQ,CAACE,OAAO,CAACZ,MAAM,CAAC,CAACU,QAAQ,CAACG,IAAI,CAAC,CAAC,CACtD,KAAM,CAAAC,WAAW,CACfJ,QAAQ,CAACI,WAAW,GAAKJ,QAAQ,CAACK,OAAO,CAACR,MAAM,CAAG,WAAW,CAAGG,QAAQ,CAACM,eAAe,CAAG,QAAQ,CAAG,GAAG,CAAC,CAC7G,KAAM,CAAAC,aAAa,CAAGP,QAAQ,CAACQ,WAAW,CAACC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAGlB,MAAM,CAACK,OAAO,CAAG,CAAC,CAAC,CAAGD,CAAC,CAACe,WAAW,CAAC,GAAG,CAAC,CAAC,CAE1G,KAAM,CAAAC,SAAS,CAAGV,KAAK,CAACW,IAAI,CAAC,IAAI,CAAC,CAACf,MAAM,CAAGO,WAAW,CAACP,MAAM,CAC9D,KAAM,CAAAgB,OAAO,CAAGjB,OAAO,CAAG,CAAC,CAAGe,SAAS,CAEvC,KAAM,CAAAG,YAAY,CAAGb,KAAK,CAACc,GAAG,CAACZ,IAAI,EAAIR,CAAC,CAACqB,OAAO,CAACb,IAAI,CAAC,CAAC,CAACS,IAAI,CAACjB,CAAC,CAACe,WAAW,CAAC,IAAI,CAAC,CAAC,CAEjFZ,GAAG,EAAIR,MAAM,CACXC,MAAM,CAAC,CAAC,CAAC,CAAGuB,YAAY,CACxBnB,CAAC,CAACS,WAAW,CAACA,WAAW,CAAC,CAC1Bb,MAAM,CAACsB,OAAO,CAAC,CACflB,CAAC,CAACa,WAAW,CAACD,aAAa,CAAC,CAAGf,EAAE,CAAC,CAAC,CACrC,CAAC,CACH,CAEAM,GAAG,EAAIN,EAAE,CAAC,CAAC,CAAC,CAEZ,MAAO,CAAAM,GAAG,CACZ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import chalk from"chalk";export const helpMsgStyles=Object.freeze({default:{title:chalk.bold.blue,description:chalk.white,default:chalk.dim.italic,optional:chalk.dim.italic,exampleTitle:chalk.yellow,example:chalk.dim,command:chalk.yellow,option:chalk.cyan,argument:chalk.green,placeholder:chalk.hex("#FF9800"),punctuation:chalk.white.dim},dracula:{title:chalk.bold.hex("#BD93F9"),description:chalk.hex("#F8F8F2"),default:chalk.italic.hex("#6272A4"),optional:chalk.italic.hex("#6272A4"),exampleTitle:chalk.hex("#FFB86C"),example:chalk.hex("#6272A4"),command:chalk.hex("#50FA7B"),option:chalk.hex("#8BE9FD"),argument:chalk.hex("#FF79C6"),placeholder:chalk.hex("#F1FA8C"),punctuation:chalk.hex("#6272A4")},solarizedDark:{title:chalk.bold.hex("#268BD2"),description:chalk.hex("#93A1A1"),default:chalk.italic.hex("#586E75"),optional:chalk.italic.hex("#586E75"),exampleTitle:chalk.hex("#B58900"),example:chalk.hex("#586E75"),command:chalk.hex("#2AA198"),option:chalk.hex("#268BD2"),argument:chalk.hex("#859900"),placeholder:chalk.hex("#CB4B16"),punctuation:chalk.hex("#657B83")},nord:{title:chalk.bold.hex("#81A1C1"),description:chalk.hex("#D8DEE9"),default:chalk.italic.hex("#4C566A"),optional:chalk.italic.hex("#4C566A"),exampleTitle:chalk.hex("#EBCB8B"),example:chalk.hex("#4C566A"),command:chalk.hex("#A3BE8C"),option:chalk.hex("#88C0D0"),argument:chalk.hex("#BF616A"),placeholder:chalk.hex("#D08770"),punctuation:chalk.hex("#4C566A")},html:{title:(...str)=>`<span style="color: #89dceb; font-weight: bold;">${escapeHTML(str.join(" "))}</span>`,description:(...str)=>`<span style="color: #cdd6e8;">${escapeHTML(str.join(" "))}</span>`,default:(...str)=>`<span style="color: #6c7086; font-style: italic;">${escapeHTML(str.join(" "))}</span>`,optional:(...str)=>`<span style="color: #6c7086; font-style: italic;">${escapeHTML(str.join(" "))}</span>`,exampleTitle:(...str)=>`<span style="color: #f9e2af;">${escapeHTML(str.join(" "))}</span>`,example:(...str)=>`<span style="color: #6c7086;">${escapeHTML(str.join(" "))}</span>`,command:(...str)=>`<span style="color: #f9e2af;">${escapeHTML(str.join(" "))}</span>`,option:(...str)=>`<span style="color: #17b85d;">${escapeHTML(str.join(" "))}</span>`,argument:(...str)=>`<span style="color: #00ff00;">${escapeHTML(str.join(" "))}</span>`,placeholder:(...str)=>`<span style="color: #db9518;">${escapeHTML(str.join(" "))}</span>`,punctuation:(...str)=>`<span style="color: #6c7086;">${escapeHTML(str.join(" "))}</span>`},gruvboxDark:{title:chalk.bold.hex("#FABD2F"),description:chalk.hex("#EBDBB2"),default:chalk.italic.hex("#928374"),optional:chalk.italic.hex("#928374"),exampleTitle:chalk.hex("#FE8019"),example:chalk.hex("#928374"),command:chalk.hex("#B8BB26"),option:chalk.hex("#83A598"),argument:chalk.hex("#D3869B"),placeholder:chalk.hex("#FB4934"),punctuation:chalk.hex("#928374")},monokai:{title:chalk.bold.hex("#AE81FF"),description:chalk.hex("#F8F8F2"),default:chalk.italic.hex("#75715E"),optional:chalk.italic.hex("#75715E"),exampleTitle:chalk.hex("#FD971F"),example:chalk.hex("#75715E"),command:chalk.hex("#A6E22E"),option:chalk.hex("#66D9EF"),argument:chalk.hex("#F92672"),placeholder:chalk.hex("#E6DB74"),punctuation:chalk.hex("#75715E")},oneDark:{title:chalk.bold.hex("#61AFEF"),description:chalk.hex("#ABB2BF"),default:chalk.italic.hex("#5C6370"),optional:chalk.italic.hex("#5C6370"),exampleTitle:chalk.hex("#E5C07B"),example:chalk.hex("#5C6370"),command:chalk.hex("#98C379"),option:chalk.hex("#56B6C2"),argument:chalk.hex("#E06C75"),placeholder:chalk.hex("#C678DD"),punctuation:chalk.hex("#5C6370")},get noColors(){return new Proxy(this.default,{get(){return(...str)=>str.join(" ");}});}});function escapeHTML(str){return str.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["chalk","helpMsgStyles","Object","freeze","default","title","bold","blue","description","white","dim","italic","optional","exampleTitle","yellow","example","command","option","cyan","argument","green","placeholder","hex","punctuation","dracula","solarizedDark","nord","html","str","escapeHTML","join","gruvboxDark","monokai","oneDark","noColors","Proxy","get","replace"],"sourceRoot":"../../../src/help-message","sources":["styles.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport type { HelpMsgStyle } from \"../types.js\";\n\nexport const helpMsgStyles = Object.freeze({\n default: {\n title: chalk.bold.blue,\n description: chalk.white,\n default: chalk.dim.italic,\n optional: chalk.dim.italic,\n exampleTitle: chalk.yellow,\n example: chalk.dim,\n command: chalk.yellow,\n option: chalk.cyan,\n argument: chalk.green,\n placeholder: chalk.hex(\"#FF9800\"),\n punctuation: chalk.white.dim,\n },\n dracula: {\n title: chalk.bold.hex(\"#BD93F9\"),\n description: chalk.hex(\"#F8F8F2\"),\n default: chalk.italic.hex(\"#6272A4\"),\n optional: chalk.italic.hex(\"#6272A4\"),\n exampleTitle: chalk.hex(\"#FFB86C\"),\n example: chalk.hex(\"#6272A4\"),\n command: chalk.hex(\"#50FA7B\"),\n option: chalk.hex(\"#8BE9FD\"),\n argument: chalk.hex(\"#FF79C6\"),\n placeholder: chalk.hex(\"#F1FA8C\"),\n punctuation: chalk.hex(\"#6272A4\"),\n },\n solarizedDark: {\n title: chalk.bold.hex(\"#268BD2\"),\n description: chalk.hex(\"#93A1A1\"),\n default: chalk.italic.hex(\"#586E75\"),\n optional: chalk.italic.hex(\"#586E75\"),\n exampleTitle: chalk.hex(\"#B58900\"),\n example: chalk.hex(\"#586E75\"),\n command: chalk.hex(\"#2AA198\"),\n option: chalk.hex(\"#268BD2\"),\n argument: chalk.hex(\"#859900\"),\n placeholder: chalk.hex(\"#CB4B16\"),\n punctuation: chalk.hex(\"#657B83\"),\n },\n nord: {\n title: chalk.bold.hex(\"#81A1C1\"),\n description: chalk.hex(\"#D8DEE9\"),\n default: chalk.italic.hex(\"#4C566A\"),\n optional: chalk.italic.hex(\"#4C566A\"),\n exampleTitle: chalk.hex(\"#EBCB8B\"),\n example: chalk.hex(\"#4C566A\"),\n command: chalk.hex(\"#A3BE8C\"),\n option: chalk.hex(\"#88C0D0\"),\n argument: chalk.hex(\"#BF616A\"),\n placeholder: chalk.hex(\"#D08770\"),\n punctuation: chalk.hex(\"#4C566A\"),\n },\n html: {\n title: (...str) => `<span style=\"color: #89dceb; font-weight: bold;\">${escapeHTML(str.join(\" \"))}</span>`,\n description: (...str) => `<span style=\"color: #cdd6e8;\">${escapeHTML(str.join(\" \"))}</span>`,\n default: (...str) => `<span style=\"color: #6c7086; font-style: italic;\">${escapeHTML(str.join(\" \"))}</span>`,\n optional: (...str) => `<span style=\"color: #6c7086; font-style: italic;\">${escapeHTML(str.join(\" \"))}</span>`,\n exampleTitle: (...str) => `<span style=\"color: #f9e2af;\">${escapeHTML(str.join(\" \"))}</span>`,\n example: (...str) => `<span style=\"color: #6c7086;\">${escapeHTML(str.join(\" \"))}</span>`,\n command: (...str) => `<span style=\"color: #f9e2af;\">${escapeHTML(str.join(\" \"))}</span>`,\n option: (...str) => `<span style=\"color: #17b85d;\">${escapeHTML(str.join(\" \"))}</span>`,\n argument: (...str) => `<span style=\"color: #00ff00;\">${escapeHTML(str.join(\" \"))}</span>`,\n placeholder: (...str) => `<span style=\"color: #db9518;\">${escapeHTML(str.join(\" \"))}</span>`,\n punctuation: (...str) => `<span style=\"color: #6c7086;\">${escapeHTML(str.join(\" \"))}</span>`,\n },\n gruvboxDark: {\n title: chalk.bold.hex(\"#FABD2F\"),\n description: chalk.hex(\"#EBDBB2\"),\n default: chalk.italic.hex(\"#928374\"),\n optional: chalk.italic.hex(\"#928374\"),\n exampleTitle: chalk.hex(\"#FE8019\"),\n example: chalk.hex(\"#928374\"),\n command: chalk.hex(\"#B8BB26\"),\n option: chalk.hex(\"#83A598\"),\n argument: chalk.hex(\"#D3869B\"),\n placeholder: chalk.hex(\"#FB4934\"),\n punctuation: chalk.hex(\"#928374\"),\n },\n monokai: {\n title: chalk.bold.hex(\"#AE81FF\"),\n description: chalk.hex(\"#F8F8F2\"),\n default: chalk.italic.hex(\"#75715E\"),\n optional: chalk.italic.hex(\"#75715E\"),\n exampleTitle: chalk.hex(\"#FD971F\"),\n example: chalk.hex(\"#75715E\"),\n command: chalk.hex(\"#A6E22E\"),\n option: chalk.hex(\"#66D9EF\"),\n argument: chalk.hex(\"#F92672\"),\n placeholder: chalk.hex(\"#E6DB74\"),\n punctuation: chalk.hex(\"#75715E\"),\n },\n oneDark: {\n title: chalk.bold.hex(\"#61AFEF\"),\n description: chalk.hex(\"#ABB2BF\"),\n default: chalk.italic.hex(\"#5C6370\"),\n optional: chalk.italic.hex(\"#5C6370\"),\n exampleTitle: chalk.hex(\"#E5C07B\"),\n example: chalk.hex(\"#5C6370\"),\n command: chalk.hex(\"#98C379\"),\n option: chalk.hex(\"#56B6C2\"),\n argument: chalk.hex(\"#E06C75\"),\n placeholder: chalk.hex(\"#C678DD\"),\n punctuation: chalk.hex(\"#5C6370\"),\n },\n get noColors() {\n return new Proxy(this.default, {\n get() {\n return (...str: string[]) => str.join(\" \");\n },\n });\n },\n}) satisfies Record<string, HelpMsgStyle>;\n\nfunction escapeHTML(str: string) {\n return str.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export function createCli(input){const setAction=action=>{input.action=action;};return Object.assign(input,{setAction});}export function createSubcommand(input){const setAction=action=>{input.action=action;};return Object.assign(input,{setAction});}export function createOptions(options){return options;}export function createArguments(args){return args;}export{printCliHelp,printSubcommandHelp}from"./help-message/
|
|
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";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createCli","input","setAction","action","Object","assign","createSubcommand","createOptions","options","createArguments","args","printCliHelp","printSubcommandHelp","parse","safeParse","generateBashAutocompleteScript","generatePowerShellAutocompleteScript","generateZshAutocompleteScript","getArgumentsMetadata","getCliMetadata","getOptionsMetadata","getSubcommandsMetadata","generateMarkdown"],"sourceRoot":"../../src","sources":["index.ts"],"sourcesContent":["import type {\n
|
|
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 +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,
|
|
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, \"<\").replace(/>/g, \">\");\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,CAEA,MAAO,CAAAV,EAAE,CACX,CAEA,QAAS,CAAAI,cAAcA,CAACQ,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,CAAAP,aAAaA,CAACY,eAAiC,CAAG,EAAE,CAAEC,CAAS,CAAE,CACxE,GAAI,CAAAN,MAAM,CAAG,EAAE,CAEf,IAAK,GAAI,CAAAO,CAAC,CAAG,CAAC,CAAEA,CAAC,CAAGF,eAAe,CAACb,MAAM,CAAEe,CAAC,EAAE,CAAE,CAC/C,KAAM,CAAAtB,QAAQ,CAAGoB,eAAe,CAACE,CAAC,CAAC,CAEnC,KAAM,CAAAC,OAAO,CAAG,CAACvB,QAAQ,CAACwB,SAAS,CAAC,CAACC,MAAM,CAACzB,QAAQ,CAAC0B,aAAa,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAE9E,KAAM,CAAAC,WAAW,CAAG5B,QAAQ,CAAC4B,WAAW,EAAI,IAAI5B,QAAQ,CAAC4B,WAAW,EAAE,CAEtEb,MAAM,EAAI,GAAG,GAAG,CAACG,MAAM,CAACG,CAAC,CAAC,MAAME,OAAO,CAAGK,WAAW,IAAI,CAEzD,GAAI5B,QAAQ,CAAC6B,QAAQ,CAAE,CACrBd,MAAM,EAAI,iBAAiB,CAC7B,CAEAA,MAAM,EAAI,MAAM,CAEhB,GAAIf,QAAQ,CAACG,WAAW,CAAE,CACxBY,MAAM,EAAI,KAAKf,QAAQ,CAACG,WAAW,IAAI,CACzC,CAEA,GAAI,MAAO,CAAAH,QAAQ,CAAC8B,YAAY,GAAK,WAAW,CAAE,CAChDf,MAAM,EAAI,oBAAoBf,QAAQ,CAAC+B,oBAAoB,MAAM,CACnE,CAEA,GAAI/B,QAAQ,CAACI,OAAO,CAAE,CACpBW,MAAM,EAAIV,cAAc,CAACL,QAAQ,CAACI,OAAO,CAAE,IAAI,CAAC,CAClD,CAEA,GAAIkB,CAAC,CAAGF,eAAe,CAACb,MAAM,CAAG,CAAC,CAAE,CAClCQ,MAAM,EAAI,IAAI,CAChB,CACF,CAEA,MAAO,CAAAA,MAAM,CACf,CAEA,QAAS,CAAAL,eAAeA,CAACsB,YAAgC,CAAG,EAAE,CAAEX,CAAS,CAAE,CACzE,GAAI,CAAAN,MAAM,CAAG,EAAE,CAEf,IAAK,GAAI,CAAAO,CAAC,CAAG,CAAC,CAAEA,CAAC,CAAGU,YAAY,CAACzB,MAAM,CAAEe,CAAC,EAAE,CAAE,CAC5C,KAAM,CAAAtB,QAAQ,CAAGgC,YAAY,CAACV,CAAC,CAAC,CAEhCP,MAAM,EAAI,GAAG,GAAG,CAACG,MAAM,CAACG,CAAC,CAAC,MAAMrB,QAAQ,CAACE,IAAI,IAAI,CAEjD,GAAIF,QAAQ,CAAC6B,QAAQ,CAAE,CACrBd,MAAM,EAAI,iBAAiB,CAC7B,CAEAA,MAAM,EAAI,MAAM,CAEhB,GAAIf,QAAQ,CAACG,WAAW,CAAE,CACxBY,MAAM,EAAI,KAAKf,QAAQ,CAACG,WAAW,IAAI,CACzC,CAEA,GAAI,MAAO,CAAAH,QAAQ,CAAC8B,YAAY,GAAK,WAAW,CAAE,CAChDf,MAAM,EAAI,oBAAoBf,QAAQ,CAAC+B,oBAAoB,MAAM,CACnE,CAEA,GAAI/B,QAAQ,CAACI,OAAO,CAAE,CACpBW,MAAM,EAAIV,cAAc,CAACL,QAAQ,CAACI,OAAO,CAAC,CAC5C,CAEA,GAAIkB,CAAC,CAAGU,YAAY,CAACzB,MAAM,CAAG,CAAC,CAAE,CAC/BQ,MAAM,EAAI,IAAI,CAChB,CACF,CAEA,MAAO,CAAAA,MAAM,CACf,CAEA,QAAS,CAAAH,iBAAiBA,CAACqB,mBAAyC,CAAE,CACpE,GAAI,CAAAlB,MAAM,CAAG,EAAE,CAEf,IAAK,GAAI,CAAAO,CAAC,CAAG,CAAC,CAAEA,CAAC,CAAGW,mBAAmB,CAAC1B,MAAM,CAAEe,CAAC,EAAE,CAAE,CACnD,KAAM,CAAAtB,QAAQ,CAAGiC,mBAAmB,CAACX,CAAC,CAAC,CAEvC,KAAM,CAAAC,OAAO,CAAG,CAACvB,QAAQ,CAACE,IAAI,CAAC,CAACuB,MAAM,CAACzB,QAAQ,CAACuB,OAAO,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC,CAEnE,KAAM,CAAAC,WAAW,CAAG5B,QAAQ,CAAC4B,WAAW,EAAI,IAAIM,UAAU,CAAClC,QAAQ,CAAC4B,WAAW,CAAC,EAAE,CAElFb,MAAM,EAAI,OAAOQ,OAAO,CAAGK,WAAW,MAAM,CAE5C,GAAI5B,QAAQ,CAACG,WAAW,CAAE,CACxBY,MAAM,EAAI,GAAGf,QAAQ,CAACG,WAAW,IAAI,CACvC,CAEA,GAAIH,QAAQ,CAACI,OAAO,CAAE,CACpBW,MAAM,EAAIV,cAAc,CAACL,QAAQ,CAACI,OAAO,CAAC,CAC5C,CAEA,GAAIJ,QAAQ,CAACM,OAAO,CAACC,MAAM,CAAE,CAC3BQ,MAAM,EAAI,qBAAqB,CAC/BA,MAAM,EAAIP,aAAa,CAACR,QAAQ,CAACM,OAAO,CAAE,CAAC,CAAC,CAC9C,CAEA,GAAIN,QAAQ,CAACS,SAAS,CAACF,MAAM,CAAE,CAC7BQ,MAAM,EAAI,uBAAuB,CACjCA,MAAM,EAAIL,eAAe,CAACV,QAAQ,CAACS,SAAS,CAAE,CAAC,CAAC,CAClD,CAEA,GAAIa,CAAC,CAAGW,mBAAmB,CAAC1B,MAAM,CAAG,CAAC,CAAE,CACtCQ,MAAM,EAAI,WAAW,CACvB,CACF,CAEA,MAAO,CAAAA,MAAM,CACf,CAEA,QAAS,CAAAmB,UAAUA,CAACC,GAAW,CAAE,CAC/B,MAAO,CAAAA,GAAG,CAAChB,OAAO,CAAC,IAAI,CAAE,MAAM,CAAC,CAACA,OAAO,CAAC,IAAI,CAAE,MAAM,CAAC,CACxD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isOptionalSchema,schemaDefaultValue,schemaDescription}from"../
|
|
1
|
+
import{isOptionalSchema,schemaDefaultValue,schemaDescription}from"../zod-utils.js";export function getArgumentsMetadata(args){const outputMetadata=[];for(const arg of args){const defaultValue=schemaDefaultValue(arg.type);outputMetadata.push({name:arg.name,description:arg.description??schemaDescription(arg.type)??"",defaultValue,defaultValueAsString:JSON.stringify(defaultValue),optional:isOptionalSchema(arg.type),example:arg.example??"",type:arg.type});}return outputMetadata;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isOptionalSchema","schemaDefaultValue","schemaDescription","getArgumentsMetadata","args","outputMetadata","arg","defaultValue","type","push","name","description","defaultValueAsString","JSON","stringify","optional","example"],"sourceRoot":"../../../src/metadata","sources":["get-arguments-metadata.ts"],"sourcesContent":["import { isOptionalSchema, schemaDefaultValue, schemaDescription } from \"../
|
|
1
|
+
{"version":3,"names":["isOptionalSchema","schemaDefaultValue","schemaDescription","getArgumentsMetadata","args","outputMetadata","arg","defaultValue","type","push","name","description","defaultValueAsString","JSON","stringify","optional","example"],"sourceRoot":"../../../src/metadata","sources":["get-arguments-metadata.ts"],"sourcesContent":["import { isOptionalSchema, schemaDefaultValue, schemaDescription } from \"../zod-utils.js\";\n\nimport type { Argument } from \"../types.js\";\nimport type { ArgumentMetadata } from \"./metadata-types.js\";\n\nexport function getArgumentsMetadata(args: Argument[]): ArgumentMetadata[] {\n const outputMetadata: ArgumentMetadata[] = [];\n\n for (const arg of args) {\n const defaultValue = schemaDefaultValue(arg.type);\n\n outputMetadata.push({\n name: arg.name,\n description: arg.description ?? schemaDescription(arg.type) ?? \"\",\n defaultValue,\n defaultValueAsString: JSON.stringify(defaultValue),\n optional: isOptionalSchema(arg.type),\n example: arg.example ?? \"\",\n type: arg.type,\n });\n }\n\n return outputMetadata;\n}\n"],"mappings":"AAAA,OAASA,gBAAgB,CAAEC,kBAAkB,CAAEC,iBAAiB,KAAQ,iBAAiB,CAKzF,MAAO,SAAS,CAAAC,oBAAoBA,CAACC,IAAgB,CAAsB,CACzE,KAAM,CAAAC,cAAkC,CAAG,EAAE,CAE7C,IAAK,KAAM,CAAAC,GAAG,GAAI,CAAAF,IAAI,CAAE,CACtB,KAAM,CAAAG,YAAY,CAAGN,kBAAkB,CAACK,GAAG,CAACE,IAAI,CAAC,CAEjDH,cAAc,CAACI,IAAI,CAAC,CAClBC,IAAI,CAAEJ,GAAG,CAACI,IAAI,CACdC,WAAW,CAAEL,GAAG,CAACK,WAAW,EAAIT,iBAAiB,CAACI,GAAG,CAACE,IAAI,CAAC,EAAI,EAAE,CACjED,YAAY,CACZK,oBAAoB,CAAEC,IAAI,CAACC,SAAS,CAACP,YAAY,CAAC,CAClDQ,QAAQ,CAAEf,gBAAgB,CAACM,GAAG,CAACE,IAAI,CAAC,CACpCQ,OAAO,CAAEV,GAAG,CAACU,OAAO,EAAI,EAAE,CAC1BR,IAAI,CAAEF,GAAG,CAACE,IACZ,CAAC,CAAC,CACJ,CAEA,MAAO,CAAAH,cAAc,CACvB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{getArgumentsMetadata}from"./get-arguments-metadata.js";import{getOptionsMetadata}from"./get-options-metadata.js";import{getSubcommandsMetadata}from"./get-subcommands-metadata.js";export function getCliMetadata(inputData){const[cli,...subcommands]=inputData;const outputMetadata={name:cli.cliName,description:cli.description??"",usage:cli.usage??"",example:cli.example??"",allowPositional:cli.allowPositional??false,options:cli.options?getOptionsMetadata(cli.options):[],arguments:cli.arguments?getArgumentsMetadata(cli.arguments):[],subcommands:subcommands?getSubcommandsMetadata(subcommands):[]};return outputMetadata;}
|