zod-args-parser 1.0.13 → 1.0.15
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/LICENSE +21 -21
- package/README.md +12 -1
- package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.js +42 -0
- package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.js.map +1 -0
- package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.js +31 -0
- package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.js.map +1 -0
- package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.js +41 -0
- package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.js.map +1 -0
- package/lib/commonjs/help-message/colors.js +1 -0
- package/lib/commonjs/help-message/colors.js.map +1 -0
- package/lib/commonjs/help-message/print-arguments.js +1 -0
- package/lib/commonjs/help-message/print-arguments.js.map +1 -0
- package/lib/commonjs/help-message/print-help-message.js +1 -0
- package/lib/commonjs/help-message/print-help-message.js.map +1 -0
- package/lib/commonjs/help-message/print-options.js +1 -0
- package/lib/commonjs/help-message/print-options.js.map +1 -0
- package/lib/commonjs/help-message/print-subcommands.js +1 -0
- package/lib/commonjs/help-message/print-subcommands.js.map +1 -0
- package/lib/commonjs/help-message/utils.js +1 -0
- package/lib/commonjs/help-message/utils.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 +1 -0
- package/lib/commonjs/markdown/generate-markdown.js.map +1 -0
- package/lib/commonjs/metadata/get-arguments-metadata.js +1 -0
- package/lib/commonjs/metadata/get-arguments-metadata.js.map +1 -0
- package/lib/commonjs/metadata/get-cli-metadata.js +1 -0
- package/lib/commonjs/metadata/get-cli-metadata.js.map +1 -0
- package/lib/commonjs/metadata/get-options-metadata.js +1 -0
- package/lib/commonjs/metadata/get-options-metadata.js.map +1 -0
- package/lib/commonjs/metadata/get-subcommands-metadata.js +1 -0
- package/lib/commonjs/metadata/get-subcommands-metadata.js.map +1 -0
- package/lib/commonjs/parser/parse.js +1 -0
- package/lib/commonjs/parser/parse.js.map +1 -0
- package/lib/commonjs/parser/safe-parse.js +1 -0
- package/lib/commonjs/parser/safe-parse.js.map +1 -0
- package/lib/commonjs/utils.js +1 -1
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/autocomplete-scripts/bash-autocomplete-script.js +42 -0
- package/lib/module/autocomplete-scripts/bash-autocomplete-script.js.map +1 -0
- package/lib/module/autocomplete-scripts/powershell-autocomplete-script.js +31 -0
- package/lib/module/autocomplete-scripts/powershell-autocomplete-script.js.map +1 -0
- package/lib/module/autocomplete-scripts/zsh-autocomplete-script.js +41 -0
- package/lib/module/autocomplete-scripts/zsh-autocomplete-script.js.map +1 -0
- package/lib/module/help-message/colors.js +1 -0
- package/lib/module/help-message/colors.js.map +1 -0
- package/lib/module/help-message/print-arguments.js +1 -0
- package/lib/module/help-message/print-arguments.js.map +1 -0
- package/lib/module/help-message/print-help-message.js +1 -0
- package/lib/module/help-message/print-help-message.js.map +1 -0
- package/lib/module/help-message/print-options.js +1 -0
- package/lib/module/help-message/print-options.js.map +1 -0
- package/lib/module/help-message/print-subcommands.js +1 -0
- package/lib/module/help-message/print-subcommands.js.map +1 -0
- package/lib/module/help-message/utils.js +1 -0
- package/lib/module/help-message/utils.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 +1 -0
- package/lib/module/markdown/generate-markdown.js.map +1 -0
- package/lib/module/metadata/get-arguments-metadata.js +1 -0
- package/lib/module/metadata/get-arguments-metadata.js.map +1 -0
- package/lib/module/metadata/get-cli-metadata.js +1 -0
- package/lib/module/metadata/get-cli-metadata.js.map +1 -0
- package/lib/module/metadata/get-options-metadata.js +1 -0
- package/lib/module/metadata/get-options-metadata.js.map +1 -0
- package/lib/module/metadata/get-subcommands-metadata.js +1 -0
- package/lib/module/metadata/get-subcommands-metadata.js.map +1 -0
- package/lib/module/parser/parse.js +1 -0
- package/lib/module/parser/parse.js.map +1 -0
- package/lib/module/parser/safe-parse.js +1 -0
- package/lib/module/parser/safe-parse.js.map +1 -0
- package/lib/module/utils.js +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/autocomplete-scripts/bash-autocomplete-script.d.ts +11 -0
- package/lib/typescript/autocomplete-scripts/bash-autocomplete-script.d.ts.map +1 -0
- package/lib/typescript/autocomplete-scripts/powershell-autocomplete-script.d.ts +14 -0
- package/lib/typescript/autocomplete-scripts/powershell-autocomplete-script.d.ts.map +1 -0
- package/lib/typescript/autocomplete-scripts/zsh-autocomplete-script.d.ts +11 -0
- package/lib/typescript/autocomplete-scripts/zsh-autocomplete-script.d.ts.map +1 -0
- package/lib/typescript/help-message/colors.d.ts +17 -0
- package/lib/typescript/help-message/colors.d.ts.map +1 -0
- package/lib/typescript/help-message/print-arguments.d.ts +4 -0
- package/lib/typescript/help-message/print-arguments.d.ts.map +1 -0
- package/lib/typescript/help-message/print-help-message.d.ts +4 -0
- package/lib/typescript/help-message/print-help-message.d.ts.map +1 -0
- package/lib/typescript/help-message/print-options.d.ts +4 -0
- package/lib/typescript/help-message/print-options.d.ts.map +1 -0
- package/lib/typescript/help-message/print-subcommands.d.ts +4 -0
- package/lib/typescript/help-message/print-subcommands.d.ts.map +1 -0
- package/lib/typescript/help-message/utils.d.ts +13 -0
- package/lib/typescript/help-message/utils.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +11 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/markdown/generate-markdown.d.ts +3 -0
- package/lib/typescript/markdown/generate-markdown.d.ts.map +1 -0
- package/lib/typescript/metadata/get-arguments-metadata.d.ts +3 -0
- package/lib/typescript/metadata/get-arguments-metadata.d.ts.map +1 -0
- package/lib/typescript/metadata/get-cli-metadata.d.ts +3 -0
- package/lib/typescript/metadata/get-cli-metadata.d.ts.map +1 -0
- package/lib/typescript/metadata/get-options-metadata.d.ts +3 -0
- package/lib/typescript/metadata/get-options-metadata.d.ts.map +1 -0
- package/lib/typescript/metadata/get-subcommands-metadata.d.ts +3 -0
- package/lib/typescript/metadata/get-subcommands-metadata.d.ts.map +1 -0
- package/lib/typescript/parser/parse.d.ts +3 -0
- package/lib/typescript/parser/parse.d.ts.map +1 -0
- package/lib/typescript/parser/safe-parse.d.ts +3 -0
- package/lib/typescript/parser/safe-parse.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +80 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +0 -12
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +22 -22
- package/src/autocomplete-scripts/bash-autocomplete-script.ts +81 -0
- package/src/autocomplete-scripts/powershell-autocomplete-script.ts +78 -0
- package/src/autocomplete-scripts/zsh-autocomplete-script.ts +69 -0
- package/src/help-message/colors.ts +24 -0
- package/src/help-message/print-arguments.ts +35 -0
- package/src/help-message/print-help-message.ts +126 -0
- package/src/help-message/print-options.ts +40 -0
- package/src/help-message/print-subcommands.ts +28 -0
- package/src/help-message/utils.ts +31 -0
- package/src/index.ts +13 -10
- package/src/markdown/generate-markdown.ts +172 -0
- package/src/metadata/get-arguments-metadata.ts +23 -0
- package/src/metadata/get-cli-metadata.ts +23 -0
- package/src/metadata/get-options-metadata.ts +30 -0
- package/src/metadata/get-subcommands-metadata.ts +29 -0
- package/src/{parser.ts → parser/parse.ts} +4 -54
- package/src/parser/safe-parse.ts +45 -0
- package/src/types.ts +116 -0
- package/src/utils.ts +0 -32
- package/lib/commonjs/autocomplete.js +0 -107
- package/lib/commonjs/autocomplete.js.map +0 -1
- package/lib/commonjs/help.js +0 -1
- package/lib/commonjs/help.js.map +0 -1
- package/lib/commonjs/parser.js +0 -1
- package/lib/commonjs/parser.js.map +0 -1
- package/lib/module/autocomplete.js +0 -107
- package/lib/module/autocomplete.js.map +0 -1
- package/lib/module/help.js +0 -1
- package/lib/module/help.js.map +0 -1
- package/lib/module/parser.js +0 -1
- package/lib/module/parser.js.map +0 -1
- package/lib/typescript/autocomplete.d.ts +0 -32
- package/lib/typescript/autocomplete.d.ts.map +0 -1
- package/lib/typescript/help.d.ts +0 -9
- package/lib/typescript/help.d.ts.map +0 -1
- package/lib/typescript/parser.d.ts +0 -4
- package/lib/typescript/parser.d.ts.map +0 -1
- package/src/autocomplete.ts +0 -217
- package/src/help.ts +0 -341
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 Ahmed Alabsi
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Ahmed Alabsi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ A strictly typed command-line arguments parser powered by Zod.
|
|
|
13
13
|
## Installation
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm install zod-args-parser
|
|
16
|
+
npm install zod chalk zod-args-parser
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Usage
|
|
@@ -244,3 +244,14 @@ Parses the provided arguments and returns:
|
|
|
244
244
|
```ts
|
|
245
245
|
{ success: false, error: Error } | { success: true, data: ResultObj }
|
|
246
246
|
```
|
|
247
|
+
|
|
248
|
+
## Extras
|
|
249
|
+
|
|
250
|
+
- `generateBashAutocompleteScript(...params: [Cli, ...Subcommand[]]): string`
|
|
251
|
+
- `generatePowerShellAutocompleteScript(...params: [Cli, ...Subcommand[]]): string`
|
|
252
|
+
- `generateZshAutocompleteScript(...params: [Cli, ...Subcommand[]]): string`
|
|
253
|
+
- `generateMarkdown(...params: [Cli, ...Subcommand[]]): string`
|
|
254
|
+
|
|
255
|
+
## Example
|
|
256
|
+
|
|
257
|
+
- [Example code](https://github.com/alabsi91/zod-args-parser/tree/main/example)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.generateBashAutocompleteScript=generateBashAutocompleteScript;var _utils=require("../utils.js");function generateBashAutocompleteScript(...params){const[cli,...subcommands]=params;const mappedCommands=subcommands.reduce((acc,subcommand)=>{acc[subcommand.name]={options:subcommand.options?.map(option=>(0,_utils.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=>(0,_utils.transformOptionToArg)(option.name)).join(" ")}"\n`;switchCase+=" ;;\n";}return`# Auto-generated by zod-args-parser
|
|
2
|
+
|
|
3
|
+
_${cli.cliName}_autocomplete() {
|
|
4
|
+
local cur prev commands opts subcommand used_opts filtered_opts
|
|
5
|
+
|
|
6
|
+
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
7
|
+
prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
8
|
+
subcommand="\${COMP_WORDS[1]}"
|
|
9
|
+
|
|
10
|
+
commands="${Object.keys(mappedCommands).join(" ")}"
|
|
11
|
+
|
|
12
|
+
case "$subcommand" in
|
|
13
|
+
${switchCase}
|
|
14
|
+
esac
|
|
15
|
+
|
|
16
|
+
used_opts=""
|
|
17
|
+
if [[ " \${commands[@]} " =~ " $subcommand " ]]; then
|
|
18
|
+
for word in "\${COMP_WORDS[@]:2}"; do
|
|
19
|
+
if [[ "$word" =~ ^- ]]; then
|
|
20
|
+
used_opts+=" $word"
|
|
21
|
+
fi
|
|
22
|
+
done
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
if [[ -n "$opts" ]]; then
|
|
26
|
+
filtered_opts=""
|
|
27
|
+
for opt in $opts; do
|
|
28
|
+
if [[ ! " $used_opts " =~ " $opt " ]]; then
|
|
29
|
+
filtered_opts+="$opt "
|
|
30
|
+
fi
|
|
31
|
+
done
|
|
32
|
+
COMPREPLY=( $(compgen -W "$filtered_opts" -- "$cur") )
|
|
33
|
+
return
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
if [[ "\${COMP_CWORD}" -eq 1 ]]; then
|
|
37
|
+
COMPREPLY=( $(compgen -W "$commands" -- "$cur") )
|
|
38
|
+
fi
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
complete -F _${cli.cliName}_autocomplete ${cli.cliName}
|
|
42
|
+
`;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","generateBashAutocompleteScript","params","cli","subcommands","mappedCommands","reduce","acc","subcommand","name","options","map","option","transformOptionToArg","aliases","switchCase","key","Object","entries","length","join","cliName","keys"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["bash-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../utils.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":"4IAAA,IAAAA,MAAA,CAAAC,OAAA,gBAYO,QAAS,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,EAAI,GAAAC,2BAAoB,EAACD,MAAM,CAACH,IAAI,CAAC,CAAC,EAAI,EAAE,CACnFK,OAAO,CAAEN,UAAU,CAACM,OAAO,EAAI,EACjC,CAAC,CACD,MAAO,CAAAP,GAAG,CACZ,CAAC,CAAE,CAAC,CAAC,CAAC,CAEN,GAAI,CAAAQ,UAAU,CAAG,EAAE,CACnB,IAAK,KAAM,CAACC,GAAG,CAAE,CAAEN,OAAO,CAAEI,OAAQ,CAAC,CAAC,EAAI,CAAAG,MAAM,CAACC,OAAO,CAACb,cAAc,CAAC,CAAE,CACxEU,UAAU,EAAI,OAAOC,GAAG,GAAGF,OAAO,CAACK,MAAM,CAAG,GAAG,CAAG,EAAE,GAAGL,OAAO,CAACM,IAAI,CAAC,GAAG,CAAC,KAAK,CAC7EL,UAAU,EAAI,eAAeL,OAAO,CAACU,IAAI,CAAC,GAAG,CAAC,KAAK,CACnDL,UAAU,EAAI,YAAY,CAC5B,CAEA,GAAIZ,GAAG,CAACO,OAAO,EAAES,MAAM,CAAE,CACvBJ,UAAU,EAAI,aAAa,CAC3BA,UAAU,EAAI,eAAeZ,GAAG,CAACO,OAAO,CAACC,GAAG,CAACC,MAAM,EAAI,GAAAC,2BAAoB,EAACD,MAAM,CAACH,IAAI,CAAC,CAAC,CAACW,IAAI,CAAC,GAAG,CAAC,KAAK,CACxGL,UAAU,EAAI,YAAY,CAC5B,CAEA,MAAO;AACT;AACA,GAAGZ,GAAG,CAACkB,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAcJ,MAAM,CAACK,IAAI,CAACjB,cAAc,CAAC,CAACe,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,eAAeZ,GAAG,CAACkB,OAAO,iBAAiBlB,GAAG,CAACkB,OAAO;AACtD,CAAC,CACD","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.generatePowerShellAutocompleteScript=generatePowerShellAutocompleteScript;var _utils=require("../utils.js");function generatePowerShellAutocompleteScript(...params){const[cli,...subcommands]=params;const mappedCommands=subcommands.reduce((acc,subcommand)=>{acc[subcommand.name]={options:subcommand.options?.map(option=>(0,_utils.transformOptionToArg)(option.name))??[],aliases:subcommand.aliases??[]};return acc;},{});const subcommandsStr=Object.keys(mappedCommands).map(key=>`'${key}'`).join(", ");const cliOptionsStr=cli.options?.map(option=>`'${(0,_utils.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
|
+
|
|
3
|
+
${functionInfo}
|
|
4
|
+
function ${cli.cliName} {
|
|
5
|
+
param(
|
|
6
|
+
[Parameter(Position = 0, Mandatory = $false)]
|
|
7
|
+
[string]$subcommand,
|
|
8
|
+
[Parameter(Position = 1, ValueFromRemainingArguments = $true)]
|
|
9
|
+
[string[]]$arguments
|
|
10
|
+
)
|
|
11
|
+
$scriptPath = (Get-Command '${cli.cliName}.ps1').Source
|
|
12
|
+
if ($scriptPath) {
|
|
13
|
+
$argumentList = @($subcommand) + ($arguments | Where-Object { $_ -notin '--', '--%' }) | Where-Object { $_ -ne '' }
|
|
14
|
+
& $scriptPath @argumentList
|
|
15
|
+
return
|
|
16
|
+
}
|
|
17
|
+
Write-Error "Could not find '${cli.cliName}.ps1' script"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
Register-ArgumentCompleter -CommandName '${cli.cliName}' -ParameterName 'subcommand' -ScriptBlock {
|
|
21
|
+
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
|
|
22
|
+
$subcommands = @(${subcommandsStr}${subcommandsStr&&cliOptionsStr?", ":""}${cliOptionsStr})
|
|
23
|
+
$subcommands | Where-Object { $_ -like "$wordToComplete*" }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
Register-ArgumentCompleter -CommandName '${cli.cliName}' -ParameterName 'arguments' -ScriptBlock {
|
|
27
|
+
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
|
|
28
|
+
$subcommand = $commandAst.CommandElements[1].Value
|
|
29
|
+
$arguments = ${switchCase}
|
|
30
|
+
$arguments | Where-Object { $_ -like "$wordToComplete*" }
|
|
31
|
+
}`;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","generatePowerShellAutocompleteScript","params","cli","subcommands","mappedCommands","reduce","acc","subcommand","name","options","map","option","transformOptionToArg","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 \"../utils.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":"wJAAA,IAAAA,MAAA,CAAAC,OAAA,gBAeO,QAAS,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,EAAI,GAAAC,2BAAoB,EAACD,MAAM,CAACH,IAAI,CAAC,CAAC,EAAI,EAAE,CACnFK,OAAO,CAAEN,UAAU,CAACM,OAAO,EAAI,EACjC,CAAC,CACD,MAAO,CAAAP,GAAG,CACZ,CAAC,CAAE,CAAC,CAAC,CAAC,CAEN,KAAM,CAAAQ,cAAc,CAAGC,MAAM,CAACC,IAAI,CAACZ,cAAc,CAAC,CAC/CM,GAAG,CAACO,GAAG,EAAI,IAAIA,GAAG,GAAG,CAAC,CACtBC,IAAI,CAAC,IAAI,CAAC,CACb,KAAM,CAAAC,aAAa,CAAGjB,GAAG,CAACO,OAAO,EAAEC,GAAG,CAACC,MAAM,EAAI,IAAI,GAAAC,2BAAoB,EAACD,MAAM,CAACH,IAAI,CAAC,GAAG,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC,EAAI,EAAE,CAE3G,GAAI,CAAAE,UAAU,CAAG,0BAA0B,CAC3C,IAAK,KAAM,CAACH,GAAG,CAAE,CAAER,OAAO,CAAEI,OAAQ,CAAC,CAAC,EAAI,CAAAE,MAAM,CAACM,OAAO,CAACjB,cAAc,CAAC,CAAE,CACxE,KAAM,CAAAkB,UAAU,CAAGb,OAAO,CAACC,GAAG,CAACC,MAAM,EAAI,IAAIA,MAAM,GAAG,CAAC,CAACO,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,GAAIvB,GAAG,CAACwB,WAAW,CAAE,CACnBD,YAAY,CAAG,qBAAqBvB,GAAG,CAACwB,WAAW,KAAKxB,GAAG,CAACyB,OAAO,CAAG,eAAezB,GAAG,CAACyB,OAAO,EAAE,CAAG,EAAE,MAAM,CAC/G,CAEA,MAAO;AACT;AACA,EAAEF,YAAY;AACd,WAAWvB,GAAG,CAAC0B,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC1B,GAAG,CAAC0B,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA,mCAAmC1B,GAAG,CAAC0B,OAAO;AAC9C;AACA;AACA,2CAA2C1B,GAAG,CAAC0B,OAAO;AACtD;AACA,uBAAuBd,cAAc,GAAGA,cAAc,EAAIK,aAAa,CAAG,IAAI,CAAG,EAAE,GAAGA,aAAa;AACnG;AACA;AACA;AACA,2CAA2CjB,GAAG,CAAC0B,OAAO;AACtD;AACA;AACA,mBAAmBR,UAAU;AAC7B;AACA,EAAE,CACF","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.generateZshAutocompleteScript=generateZshAutocompleteScript;var _utils=require("../utils.js");function generateZshAutocompleteScript(...params){const[cli,...subcommands]=params;const genArguments=options=>{return options?.map(option=>`'${(0,_utils.transformOptionToArg)(option.name)}[${option.description??""}]'`).join(" \\\n ");};const genSubCommand=subcommand=>{const options=subcommand.options;if(!options||options.length===0)return"";return`${subcommand.name})
|
|
2
|
+
_arguments \\
|
|
3
|
+
${genArguments(options)} \\
|
|
4
|
+
'*: :_files' \\
|
|
5
|
+
&& ret=0
|
|
6
|
+
;;`;};return`# Auto-generated by zod-args-parser
|
|
7
|
+
|
|
8
|
+
_${cli.cliName}_autocomplete() {
|
|
9
|
+
local ret=1
|
|
10
|
+
|
|
11
|
+
_arguments -C \\
|
|
12
|
+
'1: :_${cli.cliName}_commands' \\
|
|
13
|
+
'*:: :->subcmds' \\
|
|
14
|
+
&& ret=0
|
|
15
|
+
|
|
16
|
+
case $state in
|
|
17
|
+
subcmds)
|
|
18
|
+
case "$words[1]" in
|
|
19
|
+
${subcommands.map(genSubCommand).filter(Boolean).join("\n ")}
|
|
20
|
+
*)
|
|
21
|
+
_arguments \\
|
|
22
|
+
'*: :_files' \\
|
|
23
|
+
&& ret=0
|
|
24
|
+
;;
|
|
25
|
+
esac
|
|
26
|
+
;;
|
|
27
|
+
esac
|
|
28
|
+
|
|
29
|
+
return $ret
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
_${cli.cliName}_commands() {
|
|
33
|
+
local -a commands=(
|
|
34
|
+
${subcommands.map(subcommand=>`"${subcommand.name}:${subcommand.description??""}"`).join("\n ")}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
_describe -t subcommands 'subcommand' commands
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
compdef _${cli.cliName}_autocomplete ${cli.cliName}
|
|
41
|
+
`;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","generateZshAutocompleteScript","params","cli","subcommands","genArguments","options","map","option","transformOptionToArg","name","description","join","genSubCommand","subcommand","length","cliName","filter","Boolean"],"sourceRoot":"../../../src/autocomplete-scripts","sources":["zsh-autocomplete-script.ts"],"sourcesContent":["import { transformOptionToArg } from \"../utils.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":"0IAAA,IAAAA,MAAA,CAAAC,OAAA,gBAYO,QAAS,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,IAAI,GAAAC,2BAAoB,EAACD,MAAM,CAACE,IAAI,CAAC,IAAIF,MAAM,CAACG,WAAW,EAAI,EAAE,IAAI,CAAC,CACrFC,IAAI,CAAC,mBAAmB,CAAC,CAC9B,CAAC,CAED,KAAM,CAAAC,aAAa,CAAIC,UAAsB,EAAK,CAChD,KAAM,CAAAR,OAAO,CAAGQ,UAAU,CAACR,OAAO,CAClC,GAAI,CAACA,OAAO,EAAIA,OAAO,CAACS,MAAM,GAAK,CAAC,CAAE,MAAO,EAAE,CAC/C,MAAO,GAAGD,UAAU,CAACJ,IAAI;AAC7B;AACA,cAAcL,YAAY,CAACC,OAAO,CAAC;AACnC;AACA;AACA,aAAa,CACX,CAAC,CAED,MAAO;AACT;AACA,GAAGH,GAAG,CAACa,OAAO;AACd;AACA;AACA;AACA,YAAYb,GAAG,CAACa,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,UAAUZ,WAAW,CAACG,GAAG,CAACM,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,GAAGT,GAAG,CAACa,OAAO;AACd;AACA,MAAMZ,WAAW,CAACG,GAAG,CAACO,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,WAAWT,GAAG,CAACa,OAAO,iBAAiBb,GAAG,CAACa,OAAO;AAClD,CAAC,CACD","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.printColors=exports.noColors=void 0;var _chalk=_interopRequireDefault(require("chalk"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}const printColors=exports.printColors={title:_chalk.default.bold.blue,description:_chalk.default.white,default:_chalk.default.dim.italic,optional:_chalk.default.dim.italic,exampleTitle:_chalk.default.yellow,example:_chalk.default.dim,command:_chalk.default.yellow,option:_chalk.default.cyan,argument:_chalk.default.green,placeholder:_chalk.default.hex("#FF9800"),punctuation:_chalk.default.white.dim};const noColors=exports.noColors=new Proxy(printColors,{get:()=>{return(...str)=>str.join(" ");}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_chalk","_interopRequireDefault","require","e","__esModule","default","printColors","exports","title","chalk","bold","blue","description","white","dim","italic","optional","exampleTitle","yellow","example","command","option","cyan","argument","green","placeholder","hex","punctuation","noColors","Proxy","get","str","join"],"sourceRoot":"../../../src/help-message","sources":["colors.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport type { PrintHelpOpt } from \"../types.js\";\n\nexport type PrintHelpColors = NonNullable<Required<PrintHelpOpt[\"customColors\"]>>;\n\nexport const printColors: PrintHelpColors = {\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\nexport const noColors = new Proxy(printColors, {\n get: () => {\n return (...str: string[]) => str.join(\" \");\n },\n});\n"],"mappings":"kHAAA,IAAAA,MAAA,CAAAC,sBAAA,CAAAC,OAAA,WAA0B,SAAAD,uBAAAE,CAAA,SAAAA,CAAA,EAAAA,CAAA,CAAAC,UAAA,CAAAD,CAAA,EAAAE,OAAA,CAAAF,CAAA,GAKnB,KAAM,CAAAG,WAA4B,CAAAC,OAAA,CAAAD,WAAA,CAAG,CAC1CE,KAAK,CAAEC,cAAK,CAACC,IAAI,CAACC,IAAI,CACtBC,WAAW,CAAEH,cAAK,CAACI,KAAK,CACxBR,OAAO,CAAEI,cAAK,CAACK,GAAG,CAACC,MAAM,CACzBC,QAAQ,CAAEP,cAAK,CAACK,GAAG,CAACC,MAAM,CAC1BE,YAAY,CAAER,cAAK,CAACS,MAAM,CAC1BC,OAAO,CAAEV,cAAK,CAACK,GAAG,CAClBM,OAAO,CAAEX,cAAK,CAACS,MAAM,CACrBG,MAAM,CAAEZ,cAAK,CAACa,IAAI,CAClBC,QAAQ,CAAEd,cAAK,CAACe,KAAK,CACrBC,WAAW,CAAEhB,cAAK,CAACiB,GAAG,CAAC,SAAS,CAAC,CACjCC,WAAW,CAAElB,cAAK,CAACI,KAAK,CAACC,GAC3B,CAAC,CAEM,KAAM,CAAAc,QAAQ,CAAArB,OAAA,CAAAqB,QAAA,CAAG,GAAI,CAAAC,KAAK,CAACvB,WAAW,CAAE,CAC7CwB,GAAG,CAAEA,CAAA,GAAM,CACT,MAAO,CAAC,GAAGC,GAAa,GAAKA,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,CAC5C,CACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.printPreparedArguments=printPreparedArguments;var _utils=require("./utils.js");function printPreparedArguments(argsMetadata,c,longest){if(!argsMetadata.length)return;(0,_utils.print)(c.title(" ARGUMENTS "));(0,_utils.println)();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"+(0,_utils.indent)(longest+6)+c.punctuation("└"));(0,_utils.println)((0,_utils.indent)(2),c.argument(metadata.name),(0,_utils.indent)(spacing),c.description(normalizeDesc),defaultStr?c.default(defaultStr):metadata.optional?c.optional("(optional)"):"");if(metadata.example){const normalizeExample=metadata.example.replace(/\n/g,"\n"+(0,_utils.indent)(longest+16));(0,_utils.println)((0,_utils.indent)(longest+5),c.punctuation("└")+c.exampleTitle("Example:"),c.example(normalizeExample));}}(0,_utils.println)();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","printPreparedArguments","argsMetadata","c","longest","length","print","title","println","metadata","defaultStr","defaultValue","defaultValueAsString","spacing","name","normalizeDesc","description","replace","indent","punctuation","argument","default","optional","example","normalizeExample","exampleTitle"],"sourceRoot":"../../../src/help-message","sources":["print-arguments.ts"],"sourcesContent":["import { indent, print, println } from \"./utils.js\";\n\nimport type { ArgumentMetadata } from \"../types.js\";\nimport type { PrintHelpColors } from \"./colors.js\";\n\nexport function printPreparedArguments(argsMetadata: ArgumentMetadata[], c: PrintHelpColors, longest: number) {\n if (!argsMetadata.length) return;\n\n print(c.title(\" ARGUMENTS \"));\n\n println();\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 println(\n indent(2),\n c.argument(metadata.name),\n indent(spacing),\n c.description(normalizeDesc),\n defaultStr ? c.default(defaultStr) : metadata.optional ? c.optional(\"(optional)\") : \"\",\n );\n\n if (metadata.example) {\n const normalizeExample = metadata.example.replace(/\\n/g, \"\\n\" + indent(longest + 16));\n println(indent(longest + 5), c.punctuation(\"└\") + c.exampleTitle(\"Example:\"), c.example(normalizeExample));\n }\n }\n\n println();\n}\n"],"mappings":"4HAAA,IAAAA,MAAA,CAAAC,OAAA,eAKO,QAAS,CAAAC,sBAAsBA,CAACC,YAAgC,CAAEC,CAAkB,CAAEC,OAAe,CAAE,CAC5G,GAAI,CAACF,YAAY,CAACG,MAAM,CAAE,OAE1B,GAAAC,YAAK,EAACH,CAAC,CAACI,KAAK,CAAC,aAAa,CAAC,CAAC,CAE7B,GAAAC,cAAO,EAAC,CAAC,CAET,IAAK,KAAM,CAAAC,QAAQ,GAAI,CAAAP,YAAY,CAAE,CACnC,KAAM,CAAAQ,UAAU,CACd,MAAO,CAAAD,QAAQ,CAACE,YAAY,GAAK,WAAW,CAAG,aAAaF,QAAQ,CAACG,oBAAoB,GAAG,CAAG,EAAE,CAEnG,KAAM,CAAAC,OAAO,CAAGT,OAAO,CAAG,CAAC,CAAGK,QAAQ,CAACK,IAAI,CAACT,MAAM,CAClD,KAAM,CAAAU,aAAa,CAAGN,QAAQ,CAACO,WAAW,CAACC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAG,GAAAC,aAAM,EAACd,OAAO,CAAG,CAAC,CAAC,CAAGD,CAAC,CAACgB,WAAW,CAAC,GAAG,CAAC,CAAC,CAE1G,GAAAX,cAAO,EACL,GAAAU,aAAM,EAAC,CAAC,CAAC,CACTf,CAAC,CAACiB,QAAQ,CAACX,QAAQ,CAACK,IAAI,CAAC,CACzB,GAAAI,aAAM,EAACL,OAAO,CAAC,CACfV,CAAC,CAACa,WAAW,CAACD,aAAa,CAAC,CAC5BL,UAAU,CAAGP,CAAC,CAACkB,OAAO,CAACX,UAAU,CAAC,CAAGD,QAAQ,CAACa,QAAQ,CAAGnB,CAAC,CAACmB,QAAQ,CAAC,YAAY,CAAC,CAAG,EACtF,CAAC,CAED,GAAIb,QAAQ,CAACc,OAAO,CAAE,CACpB,KAAM,CAAAC,gBAAgB,CAAGf,QAAQ,CAACc,OAAO,CAACN,OAAO,CAAC,KAAK,CAAE,IAAI,CAAG,GAAAC,aAAM,EAACd,OAAO,CAAG,EAAE,CAAC,CAAC,CACrF,GAAAI,cAAO,EAAC,GAAAU,aAAM,EAACd,OAAO,CAAG,CAAC,CAAC,CAAED,CAAC,CAACgB,WAAW,CAAC,GAAG,CAAC,CAAGhB,CAAC,CAACsB,YAAY,CAAC,UAAU,CAAC,CAAEtB,CAAC,CAACoB,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAC5G,CACF,CAEA,GAAAhB,cAAO,EAAC,CAAC,CACX","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.printCliHelp=printCliHelp;exports.printSubcommandHelp=printSubcommandHelp;var _getCliMetadata=require("../metadata/get-cli-metadata.js");var _colors=require("./colors.js");var _printArguments=require("./print-arguments.js");var _printOptions=require("./print-options.js");var _printSubcommands=require("./print-subcommands.js");var _utils=require("./utils.js");function printCliHelp(params,printConfig={}){printConfig.colors??=true;const c=printConfig.colors?_colors.printColors:_colors.noColors;const metadata=(0,_getCliMetadata.getCliMetadata)(params);if(printConfig.customColors){Object.assign(c,printConfig.customColors);}const printTitle=title=>{(0,_utils.print)(c.title(` ${title.toUpperCase()} `));};const usage=metadata.usage||(0,_utils.concat)(c.punctuation("$"),metadata.name,metadata.subcommands.length?c.command("[command]"):"",metadata.options.length?c.option("[options]"):"",metadata.arguments.length||metadata.allowPositional?c.argument("<arguments>"):"");printTitle("Usage");(0,_utils.println)();(0,_utils.println)((0,_utils.indent)(2),usage,(0,_utils.ln)(1));if(metadata.description){printTitle("Description");(0,_utils.println)();(0,_utils.println)((0,_utils.indent)(2),c.description(metadata.description),(0,_utils.ln)(1));}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;}(0,_printOptions.printOptions)(optionsMetadata,c,longest);(0,_printSubcommands.printSubcommands)(subcommandsMetadata,c,longest);(0,_printArguments.printPreparedArguments)(argsMetadata,c,longest);if(metadata.example){printTitle("Example");(0,_utils.println)();const normalizeExample=metadata.example.replace(/\n/g,"\n"+(0,_utils.indent)(3));(0,_utils.println)((0,_utils.indent)(2),c.example(normalizeExample),(0,_utils.ln)(1));}}function printSubcommandHelp(subcommand,printConfig={},cliName=""){printConfig.colors??=true;const c=printConfig.colors?_colors.printColors:_colors.noColors;const usage=subcommand.usage||(0,_utils.concat)(c.punctuation("$"),cliName,c.command(subcommand.name),subcommand.options?.length?c.option("[options]"):"",subcommand.arguments?.length||subcommand.allowPositional?c.argument("<arguments>"):"");const asCli={cliName,usage,...subcommand};printCliHelp([asCli],printConfig);}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_getCliMetadata","require","_colors","_printArguments","_printOptions","_printSubcommands","_utils","printCliHelp","params","printConfig","colors","c","printColors","noColors","metadata","getCliMetadata","customColors","Object","assign","printTitle","title","print","toUpperCase","usage","concat","punctuation","name","subcommands","length","command","options","option","arguments","allowPositional","argument","println","indent","ln","description","longest","optionsMetadata","longestOptionTitle","reduce","acc","names","aliasesAsArgs","nameAsArg","join","optLength","placeholder","subcommandsMetadata","longestSubcommandTitle","aliases","argsMetadata","longestArgTitle","arg","printOptions","printSubcommands","printPreparedArguments","example","normalizeExample","replace","printSubcommandHelp","subcommand","cliName","asCli"],"sourceRoot":"../../../src/help-message","sources":["print-help-message.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\nimport { noColors, printColors } from \"./colors.js\";\nimport { printPreparedArguments } from \"./print-arguments.js\";\nimport { printOptions } from \"./print-options.js\";\nimport { printSubcommands } from \"./print-subcommands.js\";\nimport { concat, indent, ln, print, println } from \"./utils.js\";\n\nimport type { Cli, PrintHelpOpt, Subcommand } from \"../types.js\";\n\nexport function printCliHelp(params: [Cli, ...Subcommand[]], printConfig: PrintHelpOpt = {}) {\n printConfig.colors ??= true;\n\n const c = printConfig.colors ? printColors : noColors;\n\n const metadata = getCliMetadata(params);\n\n if (printConfig.customColors) {\n Object.assign(c, printConfig.customColors);\n }\n\n /** Print a styled title */\n const printTitle = (title: string) => {\n print(c.title(` ${title.toUpperCase()} `));\n };\n\n // Print CLI usage\n const usage =\n metadata.usage ||\n concat(\n c.punctuation(\"$\"),\n 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 printTitle(\"Usage\");\n println();\n println(indent(2), usage, ln(1));\n\n // Print CLI description\n if (metadata.description) {\n printTitle(\"Description\");\n println();\n println(indent(2), c.description(metadata.description), ln(1));\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\n const longestArgTitle = argsMetadata.reduce((acc, arg) => (arg.name.length > acc ? arg.name.length : acc), 0);\n\n if (longestArgTitle > longest) {\n longest = longestArgTitle;\n }\n\n // Print CLI options\n printOptions(optionsMetadata, c, longest);\n\n // Print CLI commands\n printSubcommands(subcommandsMetadata, c, longest);\n\n // Print CLI arguments\n printPreparedArguments(argsMetadata, c, longest);\n\n // Print CLI example\n if (metadata.example) {\n printTitle(\"Example\");\n println();\n const normalizeExample = metadata.example.replace(/\\n/g, \"\\n\" + indent(3));\n println(indent(2), c.example(normalizeExample), ln(1));\n }\n}\n\nexport function printSubcommandHelp(subcommand: Subcommand, printConfig: PrintHelpOpt = {}, cliName = \"\") {\n printConfig.colors ??= true;\n\n const c = printConfig.colors ? printColors : noColors;\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 = {\n cliName,\n usage,\n ...subcommand,\n };\n\n printCliHelp([asCli], printConfig);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.printOptions=printOptions;var _utils=require("./utils.js");function printOptions(optionsMetadata,c,longest){if(!optionsMetadata.length)return;(0,_utils.print)(c.title(" OPTIONS "));(0,_utils.println)();for(const metadata of optionsMetadata){const names=metadata.aliasesAsArgs.concat([metadata.nameAsArg]);const normalizeDesc=metadata.description.replace(/\n/g,"\n"+(0,_utils.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(", "));(0,_utils.println)((0,_utils.indent)(2),coloredNames,c.placeholder(metadata.placeholder),(0,_utils.indent)(spacing),c.description(normalizeDesc),defaultStr?c.default(defaultStr):metadata.optional?c.optional("(optional)"):"");if(metadata.example){const normalizeExample=metadata.example.replace(/\n/g,"\n"+(0,_utils.indent)(longest+17));(0,_utils.println)((0,_utils.indent)(longest+6),c.punctuation("└")+c.exampleTitle("Example:"),c.example(normalizeExample));}}(0,_utils.println)();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","printOptions","optionsMetadata","c","longest","length","print","title","println","metadata","names","aliasesAsArgs","concat","nameAsArg","normalizeDesc","description","replace","indent","punctuation","defaultStr","defaultValue","defaultValueAsString","optLength","join","placeholder","spacing","coloredNames","map","name","option","default","optional","example","normalizeExample","exampleTitle"],"sourceRoot":"../../../src/help-message","sources":["print-options.ts"],"sourcesContent":["import { indent, print, println } from \"./utils.js\";\n\nimport type { PrintHelpColors } from \"./colors.js\";\nimport type { OptionMetadata } from \"../types.js\";\n\nexport function printOptions(optionsMetadata: OptionMetadata[], c: PrintHelpColors, longest: number) {\n if (!optionsMetadata.length) return;\n\n print(c.title(\" OPTIONS \"));\n\n println();\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 println(\n indent(2),\n coloredNames,\n c.placeholder(metadata.placeholder),\n indent(spacing),\n c.description(normalizeDesc),\n defaultStr ? c.default(defaultStr) : metadata.optional ? c.optional(\"(optional)\") : \"\",\n );\n\n if (metadata.example) {\n const normalizeExample = metadata.example.replace(/\\n/g, \"\\n\" + indent(longest + 17));\n println(indent(longest + 6), c.punctuation(\"└\") + c.exampleTitle(\"Example:\"), c.example(normalizeExample));\n }\n }\n\n println();\n}\n"],"mappings":"wGAAA,IAAAA,MAAA,CAAAC,OAAA,eAKO,QAAS,CAAAC,YAAYA,CAACC,eAAiC,CAAEC,CAAkB,CAAEC,OAAe,CAAE,CACnG,GAAI,CAACF,eAAe,CAACG,MAAM,CAAE,OAE7B,GAAAC,YAAK,EAACH,CAAC,CAACI,KAAK,CAAC,WAAW,CAAC,CAAC,CAE3B,GAAAC,cAAO,EAAC,CAAC,CAET,IAAK,KAAM,CAAAC,QAAQ,GAAI,CAAAP,eAAe,CAAE,CACtC,KAAM,CAAAQ,KAAK,CAAGD,QAAQ,CAACE,aAAa,CAACC,MAAM,CAAC,CAACH,QAAQ,CAACI,SAAS,CAAC,CAAC,CACjE,KAAM,CAAAC,aAAa,CAAGL,QAAQ,CAACM,WAAW,CAACC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAG,GAAAC,aAAM,EAACb,OAAO,CAAG,CAAC,CAAC,CAAGD,CAAC,CAACe,WAAW,CAAC,GAAG,CAAC,CAAC,CAC1G,KAAM,CAAAC,UAAU,CACd,MAAO,CAAAV,QAAQ,CAACW,YAAY,GAAK,WAAW,CAAG,aAAaX,QAAQ,CAACY,oBAAoB,GAAG,CAAG,EAAE,CAEnG,KAAM,CAAAC,SAAS,CAAGZ,KAAK,CAACa,IAAI,CAAC,IAAI,CAAC,CAAClB,MAAM,CAAGI,QAAQ,CAACe,WAAW,CAACnB,MAAM,CACvE,KAAM,CAAAoB,OAAO,CAAGrB,OAAO,CAAG,CAAC,CAAGkB,SAAS,CAEvC,KAAM,CAAAI,YAAY,CAAGhB,KAAK,CAACiB,GAAG,CAACC,IAAI,EAAIzB,CAAC,CAAC0B,MAAM,CAACD,IAAI,CAAC,CAAC,CAACL,IAAI,CAACpB,CAAC,CAACe,WAAW,CAAC,IAAI,CAAC,CAAC,CAEhF,GAAAV,cAAO,EACL,GAAAS,aAAM,EAAC,CAAC,CAAC,CACTS,YAAY,CACZvB,CAAC,CAACqB,WAAW,CAACf,QAAQ,CAACe,WAAW,CAAC,CACnC,GAAAP,aAAM,EAACQ,OAAO,CAAC,CACftB,CAAC,CAACY,WAAW,CAACD,aAAa,CAAC,CAC5BK,UAAU,CAAGhB,CAAC,CAAC2B,OAAO,CAACX,UAAU,CAAC,CAAGV,QAAQ,CAACsB,QAAQ,CAAG5B,CAAC,CAAC4B,QAAQ,CAAC,YAAY,CAAC,CAAG,EACtF,CAAC,CAED,GAAItB,QAAQ,CAACuB,OAAO,CAAE,CACpB,KAAM,CAAAC,gBAAgB,CAAGxB,QAAQ,CAACuB,OAAO,CAAChB,OAAO,CAAC,KAAK,CAAE,IAAI,CAAG,GAAAC,aAAM,EAACb,OAAO,CAAG,EAAE,CAAC,CAAC,CACrF,GAAAI,cAAO,EAAC,GAAAS,aAAM,EAACb,OAAO,CAAG,CAAC,CAAC,CAAED,CAAC,CAACe,WAAW,CAAC,GAAG,CAAC,CAAGf,CAAC,CAAC+B,YAAY,CAAC,UAAU,CAAC,CAAE/B,CAAC,CAAC6B,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAC5G,CACF,CAEA,GAAAzB,cAAO,EAAC,CAAC,CACX","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.printSubcommands=printSubcommands;var _utils=require("./utils.js");function printSubcommands(subcommandsMetadata,c,longest){if(!subcommandsMetadata.length)return;(0,_utils.print)(c.title(" COMMANDS "));(0,_utils.println)();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"+(0,_utils.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(", "));(0,_utils.println)((0,_utils.indent)(2),coloredNames,c.placeholder(placeholder),(0,_utils.indent)(spacing),c.description(normalizeDesc));}(0,_utils.println)();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","printSubcommands","subcommandsMetadata","c","longest","length","print","title","println","metadata","names","aliases","concat","name","placeholder","options","allowPositional","normalizeDesc","description","replace","indent","punctuation","optLength","join","spacing","coloredNames","map","command"],"sourceRoot":"../../../src/help-message","sources":["print-subcommands.ts"],"sourcesContent":["import { indent, print, println } from \"./utils.js\";\n\nimport type { SubcommandMetadata } from \"src/types.js\";\nimport type { PrintHelpColors } from \"./colors.js\";\n\nexport function printSubcommands(subcommandsMetadata: SubcommandMetadata[], c: PrintHelpColors, longest: number) {\n if (!subcommandsMetadata.length) return;\n\n print(c.title(\" COMMANDS \"));\n\n println();\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 println(indent(2), coloredNames, c.placeholder(placeholder), indent(spacing), c.description(normalizeDesc));\n }\n\n println();\n}\n"],"mappings":"gHAAA,IAAAA,MAAA,CAAAC,OAAA,eAKO,QAAS,CAAAC,gBAAgBA,CAACC,mBAAyC,CAAEC,CAAkB,CAAEC,OAAe,CAAE,CAC/G,GAAI,CAACF,mBAAmB,CAACG,MAAM,CAAE,OAEjC,GAAAC,YAAK,EAACH,CAAC,CAACI,KAAK,CAAC,YAAY,CAAC,CAAC,CAE5B,GAAAC,cAAO,EAAC,CAAC,CAET,IAAK,KAAM,CAAAC,QAAQ,GAAI,CAAAP,mBAAmB,CAAE,CAC1C,KAAM,CAAAQ,KAAK,CAAGD,QAAQ,CAACE,OAAO,CAACC,MAAM,CAAC,CAACH,QAAQ,CAACI,IAAI,CAAC,CAAC,CACtD,KAAM,CAAAC,WAAW,CACfL,QAAQ,CAACK,WAAW,GAAKL,QAAQ,CAACM,OAAO,CAACV,MAAM,CAAG,WAAW,CAAGI,QAAQ,CAACO,eAAe,CAAG,QAAQ,CAAG,GAAG,CAAC,CAC7G,KAAM,CAAAC,aAAa,CAAGR,QAAQ,CAACS,WAAW,CAACC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAG,GAAAC,aAAM,EAAChB,OAAO,CAAG,CAAC,CAAC,CAAGD,CAAC,CAACkB,WAAW,CAAC,GAAG,CAAC,CAAC,CAE1G,KAAM,CAAAC,SAAS,CAAGZ,KAAK,CAACa,IAAI,CAAC,IAAI,CAAC,CAAClB,MAAM,CAAGS,WAAW,CAACT,MAAM,CAC9D,KAAM,CAAAmB,OAAO,CAAGpB,OAAO,CAAG,CAAC,CAAGkB,SAAS,CAEvC,KAAM,CAAAG,YAAY,CAAGf,KAAK,CAACgB,GAAG,CAACb,IAAI,EAAIV,CAAC,CAACwB,OAAO,CAACd,IAAI,CAAC,CAAC,CAACU,IAAI,CAACpB,CAAC,CAACkB,WAAW,CAAC,IAAI,CAAC,CAAC,CAEjF,GAAAb,cAAO,EAAC,GAAAY,aAAM,EAAC,CAAC,CAAC,CAAEK,YAAY,CAAEtB,CAAC,CAACW,WAAW,CAACA,WAAW,CAAC,CAAE,GAAAM,aAAM,EAACI,OAAO,CAAC,CAAErB,CAAC,CAACe,WAAW,CAACD,aAAa,CAAC,CAAC,CAC7G,CAEA,GAAAT,cAAO,EAAC,CAAC,CACX","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.addIndentLn=addIndentLn;exports.concat=concat;exports.indent=indent;exports.ln=ln;exports.print=print;exports.println=println;function print(...messages){return process.stdout.write(messages.join(" "));}function println(...messages){messages=messages.filter(Boolean);return console.log(...messages);}function ln(count){return"\n".repeat(count);}function indent(count){return" ".repeat(count);}function addIndentLn(message,indent=""){return message.replace(/\n/g,`\n${indent}`);}function concat(...messages){messages=messages.filter(Boolean);return messages.join(" ");}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["print","messages","process","stdout","write","join","println","filter","Boolean","console","log","ln","count","repeat","indent","addIndentLn","message","replace","concat"],"sourceRoot":"../../../src/help-message","sources":["utils.ts"],"sourcesContent":["/** Print */\nexport function print(...messages: string[]) {\n return process.stdout.write(messages.join(\" \"));\n}\n\n/** Print line */\nexport function println(...messages: string[]) {\n messages = messages.filter(Boolean);\n return console.log(...messages);\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/** Add indent before each new line */\nexport function addIndentLn(message: string, indent: string = \"\") {\n return message.replace(/\\n/g, `\\n${indent}`);\n}\n\n/** Concat strings */\nexport function concat(...messages: string[]) {\n messages = messages.filter(Boolean);\n return messages.join(\" \");\n}\n"],"mappings":"4MACO,QAAS,CAAAA,KAAKA,CAAC,GAAGC,QAAkB,CAAE,CAC3C,MAAO,CAAAC,OAAO,CAACC,MAAM,CAACC,KAAK,CAACH,QAAQ,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC,CACjD,CAGO,QAAS,CAAAC,OAAOA,CAAC,GAAGL,QAAkB,CAAE,CAC7CA,QAAQ,CAAGA,QAAQ,CAACM,MAAM,CAACC,OAAO,CAAC,CACnC,MAAO,CAAAC,OAAO,CAACC,GAAG,CAAC,GAAGT,QAAQ,CAAC,CACjC,CAGO,QAAS,CAAAU,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,WAAWA,CAACC,OAAe,CAAEF,MAAc,CAAG,EAAE,CAAE,CAChE,MAAO,CAAAE,OAAO,CAACC,OAAO,CAAC,KAAK,CAAE,KAAKH,MAAM,EAAE,CAAC,CAC9C,CAGO,QAAS,CAAAI,MAAMA,CAAC,GAAGjB,QAAkB,CAAE,CAC5CA,QAAQ,CAAGA,QAAQ,CAACM,MAAM,CAACC,OAAO,CAAC,CACnC,MAAO,CAAAP,QAAQ,CAACI,IAAI,CAAC,GAAG,CAAC,CAC3B","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.createArguments=createArguments;exports.createCli=createCli;exports.createOptions=createOptions;exports.createSubcommand=createSubcommand;Object.defineProperty(exports,"generateBashAutocompleteScript",{enumerable:true,get:function(){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.createArguments=createArguments;exports.createCli=createCli;exports.createOptions=createOptions;exports.createSubcommand=createSubcommand;Object.defineProperty(exports,"generateBashAutocompleteScript",{enumerable:true,get:function(){return _bashAutocompleteScript.generateBashAutocompleteScript;}});Object.defineProperty(exports,"generateMarkdown",{enumerable:true,get:function(){return _generateMarkdown.generateMarkdown;}});Object.defineProperty(exports,"generatePowerShellAutocompleteScript",{enumerable:true,get:function(){return _powershellAutocompleteScript.generatePowerShellAutocompleteScript;}});Object.defineProperty(exports,"generateZshAutocompleteScript",{enumerable:true,get:function(){return _zshAutocompleteScript.generateZshAutocompleteScript;}});Object.defineProperty(exports,"getArgumentsMetadata",{enumerable:true,get:function(){return _getArgumentsMetadata.getArgumentsMetadata;}});Object.defineProperty(exports,"getCliMetadata",{enumerable:true,get:function(){return _getCliMetadata.getCliMetadata;}});Object.defineProperty(exports,"getOptionsMetadata",{enumerable:true,get:function(){return _getOptionsMetadata.getOptionsMetadata;}});Object.defineProperty(exports,"getSubcommandsMetadata",{enumerable:true,get:function(){return _getSubcommandsMetadata.getSubcommandsMetadata;}});Object.defineProperty(exports,"parse",{enumerable:true,get:function(){return _parse.parse;}});Object.defineProperty(exports,"printCliHelp",{enumerable:true,get:function(){return _printHelpMessage.printCliHelp;}});Object.defineProperty(exports,"printSubcommandHelp",{enumerable:true,get:function(){return _printHelpMessage.printSubcommandHelp;}});Object.defineProperty(exports,"safeParse",{enumerable:true,get:function(){return _safeParse.safeParse;}});var _printHelpMessage=require("./help-message/print-help-message.js");var _parse=require("./parser/parse.js");var _safeParse=require("./parser/safe-parse.js");var _bashAutocompleteScript=require("./autocomplete-scripts/bash-autocomplete-script.js");var _powershellAutocompleteScript=require("./autocomplete-scripts/powershell-autocomplete-script.js");var _zshAutocompleteScript=require("./autocomplete-scripts/zsh-autocomplete-script.js");var _getArgumentsMetadata=require("./metadata/get-arguments-metadata.js");var _getCliMetadata=require("./metadata/get-cli-metadata.js");var _getOptionsMetadata=require("./metadata/get-options-metadata.js");var _getSubcommandsMetadata=require("./metadata/get-subcommands-metadata.js");var _generateMarkdown=require("./markdown/generate-markdown.js");function createCli(input){const setAction=action=>{input.action=action;};return Object.assign(input,{setAction});}function createSubcommand(input){const setAction=action=>{input.action=action;};return Object.assign(input,{setAction});}function createOptions(options){return options;}function createArguments(args){return args;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_printHelpMessage","require","_parse","_safeParse","_bashAutocompleteScript","_powershellAutocompleteScript","_zshAutocompleteScript","_getArgumentsMetadata","_getCliMetadata","_getOptionsMetadata","_getSubcommandsMetadata","_generateMarkdown","createCli","input","setAction","action","Object","assign","createSubcommand","createOptions","options","createArguments","args"],"sourceRoot":"../../src","sources":["index.ts"],"sourcesContent":["import type {\n ActionFn,\n Argument,\n CheckDuplicatedOptions,\n Cli,\n Option,\n Prettify,\n Subcommand,\n UnSafeParseResult,\n} from \"./types.js\";\n\n/**\n * - Insures that there is no extra keys in `obj` compared to `shape`\n * - Also checks objects in arrays useful for the keys `options` and `arguments`\n */\ntype Exact<Obj extends object, Shape extends object> = {\n [K in keyof Obj]: K extends keyof Shape\n ? Obj[K] extends infer ObjArr extends object[]\n ? Required<Shape>[K] extends infer ShapeArr extends object[]\n ? ExactObjArr<ObjArr, ShapeArr[number]>\n : Obj[K]\n : Obj[K]\n : never;\n};\n\n/** - Insures that there is no extra keys in `obj` compared to `shape` */\ntype ExactKeys<T extends object, U extends object> = { [K in keyof T]: K extends keyof U ? T[K] : never };\n\n/** - Insures that there is no extra keys in the objects in an array compared to `shape` */\ntype ExactObjArr<ObjArr extends object[], ShapeObj extends object> = {\n [K in keyof ObjArr]: ExactKeys<ObjArr[K], ShapeObj>;\n};\n\n/**\n * - Insures that there are no duplicated options\n * - Disallow extra keys\n */\ntype CliInput<T extends Cli> = CheckDuplicatedOptions<T> extends T ? Exact<T, Cli> : CheckDuplicatedOptions<T>;\n\nexport function createCli<const T extends Cli>(input: CliInput<T>) {\n const setAction = (action: (res: UnSafeParseResult<[T]>) => void) => {\n input.action = action;\n };\n\n return Object.assign(input, { setAction }) as Prettify<CliInput<T> & ActionFn<T>>;\n}\n\n/**\n * - Insures that there are no duplicated options\n * - Disallow extra keys\n */\ntype SubcommandInput<T extends Subcommand> =\n CheckDuplicatedOptions<T> extends T ? Exact<T, Subcommand> : CheckDuplicatedOptions<T>;\n\nexport function createSubcommand<const T extends Subcommand>(input: SubcommandInput<T>) {\n const setAction = (action: (res: UnSafeParseResult<[T]>) => void) => {\n input.action = action;\n };\n\n return Object.assign(input, { setAction }) as Prettify<SubcommandInput<T> & ActionFn<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\nexport function createArguments<const T extends [Argument, ...Argument[]]>(args: T) {\n return args;\n}\n\nexport { printCliHelp, printSubcommandHelp } from \"./help-message/print-help-message.js\";\n\nexport { parse } from \"./parser/parse.js\";\nexport { safeParse } from \"./parser/safe-parse.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\";\n"],"mappings":"uyDA0EA,IAAAA,iBAAA,CAAAC,OAAA,yCAEA,IAAAC,MAAA,CAAAD,OAAA,sBACA,IAAAE,UAAA,CAAAF,OAAA,2BAEA,IAAAG,uBAAA,CAAAH,OAAA,uDACA,IAAAI,6BAAA,CAAAJ,OAAA,6DACA,IAAAK,sBAAA,CAAAL,OAAA,sDAEA,IAAAM,qBAAA,CAAAN,OAAA,yCACA,IAAAO,eAAA,CAAAP,OAAA,mCACA,IAAAQ,mBAAA,CAAAR,OAAA,uCACA,IAAAS,uBAAA,CAAAT,OAAA,2CAEA,IAAAU,iBAAA,CAAAV,OAAA,oCAjDO,QAAS,CAAAW,SAASA,CAAsBC,KAAkB,CAAE,CACjE,KAAM,CAAAC,SAAS,CAAIC,MAA6C,EAAK,CACnEF,KAAK,CAACE,MAAM,CAAGA,MAAM,CACvB,CAAC,CAED,MAAO,CAAAC,MAAM,CAACC,MAAM,CAACJ,KAAK,CAAE,CAAEC,SAAU,CAAC,CAAC,CAC5C,CASO,QAAS,CAAAI,gBAAgBA,CAA6BL,KAAyB,CAAE,CACtF,KAAM,CAAAC,SAAS,CAAIC,MAA6C,EAAK,CACnEF,KAAK,CAACE,MAAM,CAAGA,MAAM,CACvB,CAAC,CAED,MAAO,CAAAC,MAAM,CAACC,MAAM,CAACJ,KAAK,CAAE,CAAEC,SAAU,CAAC,CAAC,CAC5C,CAMO,QAAS,CAAAK,aAAaA,CAAwCC,OAA6B,CAAE,CAClG,MAAO,CAAAA,OAAO,CAChB,CAEO,QAAS,CAAAC,eAAeA,CAA4CC,IAAO,CAAE,CAClF,MAAO,CAAAA,IAAI,CACb","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.generateMarkdown=generateMarkdown;var _getCliMetadata=require("../metadata/get-cli-metadata.js");function generateMarkdown(...params){const metadata=(0,_getCliMetadata.getCliMetadata)(params);let md="<!-- Auto-generated by zod-args-parser -->\n\n";md+=`# ${metadata.name}\n\n`;if(metadata.description){md+=`${metadata.description}\n`;}if(metadata.example){md+=renderExamples(metadata.example);}if(metadata.options.length){md+="\n## Options:\n\n";md+=renderOptions(metadata.options,3);}if(metadata.arguments.length){md+="\n## Arguments:\n\n";md+=renderArguments(metadata.arguments,3);}if(metadata.subcommands.length){md+="\n## Subcommands:\n\n";md+=renderSubcommands(metadata.subcommands);}return md;}function renderExamples(examples,list=false){let outStr="";const lang="bash";const listIndent=" ".repeat(list?2:0);outStr+="\n"+(list?"- ":"");outStr+="```"+lang+"\n";outStr+=listIndent+examples.replace(/\n/g,"\n"+listIndent);outStr+="\n"+listIndent+"```\n";return outStr;}function renderOptions(optionsMetadata=[],h){let outStr="";for(let i=0;i<optionsMetadata.length;i++){const metadata=optionsMetadata[i];const aliases=[metadata.nameAsArg].concat(metadata.aliasesAsArgs).join(", ");const placeholder=metadata.placeholder&&` ${metadata.placeholder}`;outStr+=`${"#".repeat(h)} \`${aliases+placeholder}\``;if(metadata.optional){outStr+=" **[optional]**";}outStr+="\n\n";if(metadata.description){outStr+=`- ${metadata.description}\n`;}if(typeof metadata.defaultValue!=="undefined"){outStr+=`- **default:** \`${metadata.defaultValueAsString}\`\n`;}if(metadata.example){outStr+=renderExamples(metadata.example,true);}if(i<optionsMetadata.length-1){outStr+="\n";}}return outStr;}function renderArguments(argsMetadata=[],h){let outStr="";for(let i=0;i<argsMetadata.length;i++){const metadata=argsMetadata[i];outStr+=`${"#".repeat(h)} \`${metadata.name}\``;if(metadata.optional){outStr+=" **[optional]**";}outStr+="\n\n";if(metadata.description){outStr+=`- ${metadata.description}\n`;}if(typeof metadata.defaultValue!=="undefined"){outStr+=`- **default:** \`${metadata.defaultValueAsString}\`\n`;}if(metadata.example){outStr+=renderExamples(metadata.example);}if(i<argsMetadata.length-1){outStr+="\n";}}return outStr;}function renderSubcommands(subcommandsMetadata){let outStr="";for(let i=0;i<subcommandsMetadata.length;i++){const metadata=subcommandsMetadata[i];const aliases=[metadata.name].concat(metadata.aliases).join(", ");const placeholder=metadata.placeholder&&` ${escapeTags(metadata.placeholder)}`;outStr+=`### ${aliases+placeholder}\n\n`;if(metadata.description){outStr+=`${metadata.description}\n`;}if(metadata.example){outStr+=renderExamples(metadata.example);}if(metadata.options.length){outStr+="\n#### Options:\n\n";outStr+=renderOptions(metadata.options,4);}if(metadata.arguments.length){outStr+="\n#### Arguments:\n\n";outStr+=renderArguments(metadata.arguments,4);}if(i<subcommandsMetadata.length-1){outStr+="\n---\n\n";}}return outStr;}function escapeTags(str){return str.replace(/</g,"<").replace(/>/g,">");}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_getCliMetadata","require","generateMarkdown","params","metadata","getCliMetadata","md","name","description","example","renderExamples","options","length","renderOptions","arguments","renderArguments","subcommands","renderSubcommands","examples","list","outStr","lang","listIndent","repeat","replace","optionsMetadata","h","i","aliases","nameAsArg","concat","aliasesAsArgs","join","placeholder","optional","defaultValue","defaultValueAsString","argsMetadata","subcommandsMetadata","escapeTags","str"],"sourceRoot":"../../../src/markdown","sources":["generate-markdown.ts"],"sourcesContent":["import { getCliMetadata } from \"../metadata/get-cli-metadata.js\";\n\nimport type { ArgumentMetadata, Cli, OptionMetadata, Subcommand, SubcommandMetadata } 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":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getArgumentsMetadata=getArgumentsMetadata;var _utils=require("../utils.js");function getArgumentsMetadata(args){const outputMetadata=[];for(const arg of args){const defaultValue=(0,_utils.getDefaultValueFromSchema)(arg.type);outputMetadata.push({name:arg.name,description:arg.description??arg.type.description??"",defaultValue,defaultValueAsString:JSON.stringify(defaultValue),optional:arg.type.isOptional(),example:arg.example??"",type:arg.type});}return outputMetadata;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","getArgumentsMetadata","args","outputMetadata","arg","defaultValue","getDefaultValueFromSchema","type","push","name","description","defaultValueAsString","JSON","stringify","optional","isOptional","example"],"sourceRoot":"../../../src/metadata","sources":["get-arguments-metadata.ts"],"sourcesContent":["import { getDefaultValueFromSchema } from \"../utils.js\";\n\nimport type { Argument, ArgumentMetadata } from \"../types.js\";\n\nexport function getArgumentsMetadata(args: Argument[]): ArgumentMetadata[] {\n const outputMetadata: ArgumentMetadata[] = [];\n\n for (const arg of args) {\n const defaultValue = getDefaultValueFromSchema(arg.type);\n\n outputMetadata.push({\n name: arg.name,\n description: arg.description ?? arg.type.description ?? \"\",\n defaultValue,\n defaultValueAsString: JSON.stringify(defaultValue),\n optional: arg.type.isOptional(),\n example: arg.example ?? \"\",\n type: arg.type,\n });\n }\n\n return outputMetadata;\n}\n"],"mappings":"wHAAA,IAAAA,MAAA,CAAAC,OAAA,gBAIO,QAAS,CAAAC,oBAAoBA,CAACC,IAAgB,CAAsB,CACzE,KAAM,CAAAC,cAAkC,CAAG,EAAE,CAE7C,IAAK,KAAM,CAAAC,GAAG,GAAI,CAAAF,IAAI,CAAE,CACtB,KAAM,CAAAG,YAAY,CAAG,GAAAC,gCAAyB,EAACF,GAAG,CAACG,IAAI,CAAC,CAExDJ,cAAc,CAACK,IAAI,CAAC,CAClBC,IAAI,CAAEL,GAAG,CAACK,IAAI,CACdC,WAAW,CAAEN,GAAG,CAACM,WAAW,EAAIN,GAAG,CAACG,IAAI,CAACG,WAAW,EAAI,EAAE,CAC1DL,YAAY,CACZM,oBAAoB,CAAEC,IAAI,CAACC,SAAS,CAACR,YAAY,CAAC,CAClDS,QAAQ,CAAEV,GAAG,CAACG,IAAI,CAACQ,UAAU,CAAC,CAAC,CAC/BC,OAAO,CAAEZ,GAAG,CAACY,OAAO,EAAI,EAAE,CAC1BT,IAAI,CAAEH,GAAG,CAACG,IACZ,CAAC,CAAC,CACJ,CAEA,MAAO,CAAAJ,cAAc,CACvB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getCliMetadata=getCliMetadata;var _getOptionsMetadata=require("./get-options-metadata.js");var _getArgumentsMetadata=require("./get-arguments-metadata.js");var _getSubcommandsMetadata=require("./get-subcommands-metadata.js");function getCliMetadata(inputData){const[cli,...subcommands]=inputData;const outputMetadata={name:cli.cliName,description:cli.description??"",placeholder:cli.placeholder??"",usage:cli.usage??"",example:cli.example??"",allowPositional:cli.allowPositional??false,options:cli.options?(0,_getOptionsMetadata.getOptionsMetadata)(cli.options):[],arguments:cli.arguments?(0,_getArgumentsMetadata.getArgumentsMetadata)(cli.arguments):[],subcommands:subcommands?(0,_getSubcommandsMetadata.getSubcommandsMetadata)(subcommands):[]};return outputMetadata;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_getOptionsMetadata","require","_getArgumentsMetadata","_getSubcommandsMetadata","getCliMetadata","inputData","cli","subcommands","outputMetadata","name","cliName","description","placeholder","usage","example","allowPositional","options","getOptionsMetadata","arguments","getArgumentsMetadata","getSubcommandsMetadata"],"sourceRoot":"../../../src/metadata","sources":["get-cli-metadata.ts"],"sourcesContent":["import { getOptionsMetadata } from \"./get-options-metadata.js\";\nimport { getArgumentsMetadata } from \"./get-arguments-metadata.js\";\nimport { getSubcommandsMetadata } from \"./get-subcommands-metadata.js\";\n\nimport type { Cli, CliMetadata, Subcommand } from \"../types.js\";\n\nexport function getCliMetadata(inputData: [Cli, ...Subcommand[]]): CliMetadata {\n const [cli, ...subcommands] = inputData;\n\n const outputMetadata: CliMetadata = {\n name: cli.cliName,\n description: cli.description ?? \"\",\n placeholder: cli.placeholder ?? \"\",\n usage: cli.usage ?? \"\",\n example: cli.example ?? \"\",\n allowPositional: cli.allowPositional ?? false,\n options: cli.options ? getOptionsMetadata(cli.options) : [],\n arguments: cli.arguments ? getArgumentsMetadata(cli.arguments) : [],\n subcommands: subcommands ? getSubcommandsMetadata(subcommands) : [],\n };\n\n return outputMetadata;\n}\n"],"mappings":"4GAAA,IAAAA,mBAAA,CAAAC,OAAA,8BACA,IAAAC,qBAAA,CAAAD,OAAA,gCACA,IAAAE,uBAAA,CAAAF,OAAA,kCAIO,QAAS,CAAAG,cAAcA,CAACC,SAAiC,CAAe,CAC7E,KAAM,CAACC,GAAG,CAAE,GAAGC,WAAW,CAAC,CAAGF,SAAS,CAEvC,KAAM,CAAAG,cAA2B,CAAG,CAClCC,IAAI,CAAEH,GAAG,CAACI,OAAO,CACjBC,WAAW,CAAEL,GAAG,CAACK,WAAW,EAAI,EAAE,CAClCC,WAAW,CAAEN,GAAG,CAACM,WAAW,EAAI,EAAE,CAClCC,KAAK,CAAEP,GAAG,CAACO,KAAK,EAAI,EAAE,CACtBC,OAAO,CAAER,GAAG,CAACQ,OAAO,EAAI,EAAE,CAC1BC,eAAe,CAAET,GAAG,CAACS,eAAe,EAAI,KAAK,CAC7CC,OAAO,CAAEV,GAAG,CAACU,OAAO,CAAG,GAAAC,sCAAkB,EAACX,GAAG,CAACU,OAAO,CAAC,CAAG,EAAE,CAC3DE,SAAS,CAAEZ,GAAG,CAACY,SAAS,CAAG,GAAAC,0CAAoB,EAACb,GAAG,CAACY,SAAS,CAAC,CAAG,EAAE,CACnEX,WAAW,CAAEA,WAAW,CAAG,GAAAa,8CAAsB,EAACb,WAAW,CAAC,CAAG,EACnE,CAAC,CAED,MAAO,CAAAC,cAAc,CACvB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getOptionsMetadata=getOptionsMetadata;var _utils=require("../utils.js");function getOptionsMetadata(options){const outputMetadata=[];if(!options||!options.length)return outputMetadata;for(const option of options){const defaultValue=(0,_utils.getDefaultValueFromSchema)(option.type);const aliases=option.aliases??[];outputMetadata.push({name:option.name,nameAsArg:(0,_utils.transformOptionToArg)(option.name),aliases,aliasesAsArgs:aliases.map(_utils.transformOptionToArg),placeholder:option.placeholder??"",description:option.description??option.type.description??"",optional:option.type.isOptional(),example:option.example??"",defaultValue,defaultValueAsString:JSON.stringify(defaultValue),type:option.type});}return outputMetadata;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_utils","require","getOptionsMetadata","options","outputMetadata","length","option","defaultValue","getDefaultValueFromSchema","type","aliases","push","name","nameAsArg","transformOptionToArg","aliasesAsArgs","map","placeholder","description","optional","isOptional","example","defaultValueAsString","JSON","stringify"],"sourceRoot":"../../../src/metadata","sources":["get-options-metadata.ts"],"sourcesContent":["import { getDefaultValueFromSchema, transformOptionToArg } from \"../utils.js\";\n\nimport type { Option, OptionMetadata } from \"../types.js\";\n\nexport function getOptionsMetadata(options: Option[]): OptionMetadata[] {\n const outputMetadata: OptionMetadata[] = [];\n\n if (!options || !options.length) return outputMetadata;\n\n for (const option of options) {\n const defaultValue = getDefaultValueFromSchema(option.type);\n const aliases = option.aliases ?? [];\n\n outputMetadata.push({\n name: option.name,\n nameAsArg: transformOptionToArg(option.name),\n aliases,\n aliasesAsArgs: aliases.map(transformOptionToArg),\n placeholder: option.placeholder ?? \"\",\n description: option.description ?? option.type.description ?? \"\",\n optional: option.type.isOptional(),\n example: option.example ?? \"\",\n defaultValue,\n defaultValueAsString: JSON.stringify(defaultValue),\n type: option.type,\n });\n }\n\n return outputMetadata;\n}\n"],"mappings":"oHAAA,IAAAA,MAAA,CAAAC,OAAA,gBAIO,QAAS,CAAAC,kBAAkBA,CAACC,OAAiB,CAAoB,CACtE,KAAM,CAAAC,cAAgC,CAAG,EAAE,CAE3C,GAAI,CAACD,OAAO,EAAI,CAACA,OAAO,CAACE,MAAM,CAAE,MAAO,CAAAD,cAAc,CAEtD,IAAK,KAAM,CAAAE,MAAM,GAAI,CAAAH,OAAO,CAAE,CAC5B,KAAM,CAAAI,YAAY,CAAG,GAAAC,gCAAyB,EAACF,MAAM,CAACG,IAAI,CAAC,CAC3D,KAAM,CAAAC,OAAO,CAAGJ,MAAM,CAACI,OAAO,EAAI,EAAE,CAEpCN,cAAc,CAACO,IAAI,CAAC,CAClBC,IAAI,CAAEN,MAAM,CAACM,IAAI,CACjBC,SAAS,CAAE,GAAAC,2BAAoB,EAACR,MAAM,CAACM,IAAI,CAAC,CAC5CF,OAAO,CACPK,aAAa,CAAEL,OAAO,CAACM,GAAG,CAACF,2BAAoB,CAAC,CAChDG,WAAW,CAAEX,MAAM,CAACW,WAAW,EAAI,EAAE,CACrCC,WAAW,CAAEZ,MAAM,CAACY,WAAW,EAAIZ,MAAM,CAACG,IAAI,CAACS,WAAW,EAAI,EAAE,CAChEC,QAAQ,CAAEb,MAAM,CAACG,IAAI,CAACW,UAAU,CAAC,CAAC,CAClCC,OAAO,CAAEf,MAAM,CAACe,OAAO,EAAI,EAAE,CAC7Bd,YAAY,CACZe,oBAAoB,CAAEC,IAAI,CAACC,SAAS,CAACjB,YAAY,CAAC,CAClDE,IAAI,CAAEH,MAAM,CAACG,IACf,CAAC,CAAC,CACJ,CAEA,MAAO,CAAAL,cAAc,CACvB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getSubcommandsMetadata=getSubcommandsMetadata;var _getArgumentsMetadata=require("./get-arguments-metadata.js");var _getOptionsMetadata=require("./get-options-metadata.js");function getSubcommandsMetadata(subcommands){const outputMetadata=[];if(!subcommands||!subcommands.length)return outputMetadata;for(const subcommand of subcommands){const optionsMetadata=subcommand.options?(0,_getOptionsMetadata.getOptionsMetadata)(subcommand.options):[];const argumentsMetadata=subcommand.arguments?(0,_getArgumentsMetadata.getArgumentsMetadata)(subcommand.arguments):[];outputMetadata.push({name:subcommand.name,aliases:subcommand.aliases??[],description:subcommand.description??"",placeholder:subcommand.placeholder??"",usage:subcommand.usage??"",example:subcommand.example??"",allowPositional:subcommand.allowPositional??false,options:optionsMetadata,arguments:argumentsMetadata});}return outputMetadata;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_getArgumentsMetadata","require","_getOptionsMetadata","getSubcommandsMetadata","subcommands","outputMetadata","length","subcommand","optionsMetadata","options","getOptionsMetadata","argumentsMetadata","arguments","getArgumentsMetadata","push","name","aliases","description","placeholder","usage","example","allowPositional"],"sourceRoot":"../../../src/metadata","sources":["get-subcommands-metadata.ts"],"sourcesContent":["import { getArgumentsMetadata } from \"./get-arguments-metadata.js\";\nimport { getOptionsMetadata } from \"./get-options-metadata.js\";\n\nimport type { Subcommand, SubcommandMetadata } from \"../types.js\";\n\nexport function getSubcommandsMetadata(subcommands: Subcommand[]): SubcommandMetadata[] {\n const outputMetadata: SubcommandMetadata[] = [];\n\n if (!subcommands || !subcommands.length) return outputMetadata;\n\n for (const subcommand of subcommands) {\n const optionsMetadata = subcommand.options ? getOptionsMetadata(subcommand.options) : [];\n const argumentsMetadata = subcommand.arguments ? getArgumentsMetadata(subcommand.arguments) : [];\n\n outputMetadata.push({\n name: subcommand.name,\n aliases: subcommand.aliases ?? [],\n description: subcommand.description ?? \"\",\n placeholder: subcommand.placeholder ?? \"\",\n usage: subcommand.usage ?? \"\",\n example: subcommand.example ?? \"\",\n allowPositional: subcommand.allowPositional ?? false,\n options: optionsMetadata,\n arguments: argumentsMetadata,\n });\n }\n\n return outputMetadata;\n}\n"],"mappings":"4HAAA,IAAAA,qBAAA,CAAAC,OAAA,gCACA,IAAAC,mBAAA,CAAAD,OAAA,8BAIO,QAAS,CAAAE,sBAAsBA,CAACC,WAAyB,CAAwB,CACtF,KAAM,CAAAC,cAAoC,CAAG,EAAE,CAE/C,GAAI,CAACD,WAAW,EAAI,CAACA,WAAW,CAACE,MAAM,CAAE,MAAO,CAAAD,cAAc,CAE9D,IAAK,KAAM,CAAAE,UAAU,GAAI,CAAAH,WAAW,CAAE,CACpC,KAAM,CAAAI,eAAe,CAAGD,UAAU,CAACE,OAAO,CAAG,GAAAC,sCAAkB,EAACH,UAAU,CAACE,OAAO,CAAC,CAAG,EAAE,CACxF,KAAM,CAAAE,iBAAiB,CAAGJ,UAAU,CAACK,SAAS,CAAG,GAAAC,0CAAoB,EAACN,UAAU,CAACK,SAAS,CAAC,CAAG,EAAE,CAEhGP,cAAc,CAACS,IAAI,CAAC,CAClBC,IAAI,CAAER,UAAU,CAACQ,IAAI,CACrBC,OAAO,CAAET,UAAU,CAACS,OAAO,EAAI,EAAE,CACjCC,WAAW,CAAEV,UAAU,CAACU,WAAW,EAAI,EAAE,CACzCC,WAAW,CAAEX,UAAU,CAACW,WAAW,EAAI,EAAE,CACzCC,KAAK,CAAEZ,UAAU,CAACY,KAAK,EAAI,EAAE,CAC7BC,OAAO,CAAEb,UAAU,CAACa,OAAO,EAAI,EAAE,CACjCC,eAAe,CAAEd,UAAU,CAACc,eAAe,EAAI,KAAK,CACpDZ,OAAO,CAAED,eAAe,CACxBI,SAAS,CAAED,iBACb,CAAC,CAAC,CACJ,CAEA,MAAO,CAAAN,cAAc,CACvB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.parse=parse;var help=_interopRequireWildcard(require("../help-message/print-help-message.js"));var _utils=require("../utils.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 parse(argsv,...params){const cliOptions="cliName"in params[0]?params[0]:{};const subcommandArr=params;const allSubcommands=new Set(subcommandArr.flatMap(c=>[c.name,...(c.aliases||[])]));argsv=(0,_utils.decoupleFlags)(argsv);const results={subcommand:undefined,printCliHelp(opt){help.printCliHelp(params,opt);},printSubcommandHelp(subcommandStr,opt){const subcommand=subcommandArr.find(c=>{if(c.name===subcommandStr)return true;if(!subcommandStr)return false;if(!c.aliases?.length)return false;return c.aliases.includes(subcommandStr);});if(!subcommand)return console.error(`Cannot print help for subcommand "${subcommandStr}" as it does not exist`);help.printSubcommandHelp(subcommand,opt,cliOptions.cliName);}};const GetSubcommandProps=(cmd=results.subcommand)=>{return subcommandArr.find(c=>{if(c.name===cmd)return true;if(!cmd)return false;if(!c.aliases?.length)return false;return c.aliases.includes(cmd);});};const addRawArg=(optionName,rawArg)=>{if(!results._info)results._info={};if(!results._info[optionName])results._info[optionName]=Object.create({});results._info[optionName].rawArg=rawArg;};const addRawValue=(optionName,rawValue)=>{if(!results._info)results._info={};if(!results._info[optionName])results._info[optionName]=Object.create({});results._info[optionName].rawValue=rawValue;};const addSource=(optionName,source)=>{if(!results._info)results._info={};if(!results._info[optionName])results._info[optionName]=Object.create({});results._info[optionName].source=source;};const fillOption=(optionName,value)=>{if(!results._info)results._info={};if(!results._info[optionName])results._info[optionName]=Object.create({});Object.assign(results._info[optionName],value);};for(let i=0;i<argsv.length;i++){const arg=argsv[i];if(i===0){results.subcommand=allSubcommands.has(arg)?arg:undefined;const subcommandProps=GetSubcommandProps();if(subcommandProps?.allowPositional)results.positional=[];if(subcommandProps?.arguments?.length)results.arguments=[];if(results.subcommand)continue;}const argAndValue=arg.split("=").filter(Boolean);const argWithEquals=arg.includes("=");const argument=argAndValue[0];const argValue=argAndValue[1];if((0,_utils.isOptionArg)(argument)){if((0,_utils.isFlagArg)(argument)&&argWithEquals){throw new Error(`Flag arguments cannot be assigned using "=": "${arg}"`);}const subcommandProps=GetSubcommandProps();if(!subcommandProps)throw new Error(`Unknown subcommand: "${results.subcommand}"`);if(!subcommandProps.options){const msg=!results.subcommand?"options are not allowed here":`subcommand "${results.subcommand}" does not allow options`;throw new Error(`Error: ${msg}: "${argument}"`);}const optionName=(0,_utils.transformArg)(argument);const isNegative=argument.startsWith("--no-");const option=subcommandProps.options.find(o=>{if(o.name===optionName)return true;if(isNegative&&(0,_utils.noName)(o.name)===optionName)return true;if(!o.aliases)return false;if(o.aliases.includes(optionName))return true;if(isNegative&&o.aliases.map(_utils.noName).includes(optionName))return true;return false;});if(!option){throw new Error(`Unknown option: "${argument}"`);}if(option.name in results){throw new Error(`Duplicated option: "${argument}"`);}const isTypeBoolean=(0,_utils.isBooleanSchema)(option.type);const nextArg=argsv[i+1];let optionValue=argWithEquals?argValue:nextArg;if(isTypeBoolean){if(argWithEquals){const parsedBoolean=(0,_utils.stringToBoolean)(argValue);optionValue=isNegative?!parsedBoolean:parsedBoolean;}else{optionValue=!isNegative;}}if(typeof optionValue==="undefined"){throw new Error(`Expected a value for "${argument}" but got nothing`);}if(!argWithEquals&&(0,_utils.isOptionArg)(optionValue)){throw new Error(`Expected a value for "${argument}" but got an argument "${nextArg}"`);}const res=option.type.safeParse(optionValue);if(!res.success){throw new Error(`Invalid value "${optionValue}" for "${argument}": ${res.error.errors[0].message}`);}results[option.name]=res.data;addRawArg(option.name,argument);const rawVal=argWithEquals?argValue:isTypeBoolean?"":nextArg;addRawValue(option.name,rawVal);fillOption(option.name,option);if(!argWithEquals&&!isTypeBoolean)i++;continue;}const subcommandProps=GetSubcommandProps();if(subcommandProps?.arguments?.length){if(!results.arguments)results.arguments=[];const currentArgCount=results.arguments.length;if(currentArgCount<subcommandProps.arguments.length){const argType=subcommandProps.arguments[currentArgCount].type;let argValue=arg;const isTypeBoolean=(0,_utils.isBooleanSchema)(argType);if(isTypeBoolean)argValue=(0,_utils.stringToBoolean)(argValue);const res=argType.safeParse(argValue);if(!res.success){throw new Error(`The ${(0,_utils.getOrdinalPlacement)(currentArgCount)} argument "${arg}" is invalid: ${res.error.errors[0].message}`);}results.arguments.push(res.data);continue;}}if(subcommandProps?.allowPositional){if(!results.positional)results.positional=[];results.positional.push(arg);continue;}const msg=!results.subcommand?"here":`for subcommand "${results.subcommand}"`;throw new Error(`Unexpected argument "${arg}": positional arguments are not allowed ${msg}`);}const subcommandProps=GetSubcommandProps();if(subcommandProps?.options?.length){for(const option of subcommandProps.options){if(option.name in results){addSource(option.name,"cli");fillOption(option.name,option);continue;}if(option.type.isOptional()){const hasDefault=typeof option.type._def.defaultValue==="function";if(!hasDefault)continue;results[option.name]=option.type._def.defaultValue();addSource(option.name,"default");fillOption(option.name,option);continue;}throw new Error(`Missing required option: ${(0,_utils.transformOptionToArg)(option.name)}`);}}if(subcommandProps?.arguments?.length){const currentArgCount=results.arguments?.length??0;const subcommandArgCount=subcommandProps.arguments.length;if(currentArgCount<subcommandArgCount){for(let i=currentArgCount;i<subcommandArgCount;i++){const argumentType=subcommandProps.arguments[i].type;const hasDefault=typeof argumentType._def.defaultValue==="function";if(hasDefault&&results.arguments){results.arguments.push(argumentType._def.defaultValue());continue;}if(argumentType.isOptional())continue;throw new Error(`the ${(0,_utils.getOrdinalPlacement)(i)} argument is required: "${subcommandProps.arguments[i].name}"`);}}}if(subcommandProps?.action){subcommandProps.action(results);}return results;}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["help","_interopRequireWildcard","require","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","parse","argsv","params","cliOptions","subcommandArr","allSubcommands","Set","flatMap","c","name","aliases","decoupleFlags","results","subcommand","undefined","printCliHelp","opt","printSubcommandHelp","subcommandStr","find","length","includes","console","error","cliName","GetSubcommandProps","cmd","addRawArg","optionName","rawArg","_info","create","addRawValue","rawValue","addSource","source","fillOption","value","assign","arg","subcommandProps","allowPositional","positional","arguments","argAndValue","split","filter","Boolean","argWithEquals","argument","argValue","isOptionArg","isFlagArg","Error","options","msg","transformArg","isNegative","startsWith","option","noName","map","isTypeBoolean","isBooleanSchema","type","nextArg","optionValue","parsedBoolean","stringToBoolean","res","safeParse","success","errors","message","data","rawVal","currentArgCount","argType","getOrdinalPlacement","push","isOptional","hasDefault","_def","defaultValue","transformOptionToArg","subcommandArgCount","argumentType","action"],"sourceRoot":"../../../src/parser","sources":["parse.ts"],"sourcesContent":["import * as help from \"../help-message/print-help-message.js\";\nimport {\n decoupleFlags,\n getOrdinalPlacement,\n isBooleanSchema,\n isFlagArg,\n isOptionArg,\n noName,\n stringToBoolean,\n transformArg,\n transformOptionToArg,\n} from \"../utils.js\";\n\nimport type { Cli, NoSubcommand, Option, PrintHelpOpt, Subcommand, UnSafeParseResult } from \"../types.js\";\n\nexport function parse<T extends Subcommand[], U extends Cli>(\n argsv: 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 const allSubcommands = new Set<string>(subcommandArr.flatMap(c => [c.name, ...(c.aliases || [])]));\n\n // decouple flags E.g. `-rf` -> `-r, -f`\n argsv = decoupleFlags(argsv);\n\n type ResultObj = Record<string, unknown> & {\n subcommand: string | undefined;\n positional?: string[];\n arguments?: unknown[];\n _info?: Record<string, { rawArg?: string; rawValue?: string; source: \"cli\" | \"default\" }>;\n printCliHelp: (options?: PrintHelpOpt) => void;\n printSubcommandHelp: (subcommand: any, options?: PrintHelpOpt) => void;\n };\n\n const results: ResultObj = {\n subcommand: undefined,\n printCliHelp(opt) {\n help.printCliHelp(params, opt);\n },\n printSubcommandHelp(subcommandStr, opt) {\n const subcommand = subcommandArr.find(c => {\n if (c.name === subcommandStr) return true;\n if (!subcommandStr) return false;\n if (!c.aliases?.length) return false;\n return c.aliases.includes(subcommandStr);\n });\n if (!subcommand) return console.error(`Cannot print help for subcommand \"${subcommandStr}\" as it does not exist`);\n help.printSubcommandHelp(subcommand, opt, cliOptions.cliName);\n },\n };\n\n /** - Get current subcommand props */\n const GetSubcommandProps = (cmd = results.subcommand) => {\n return subcommandArr.find(c => {\n if (c.name === cmd) return true;\n if (!cmd) return false;\n if (!c.aliases?.length) return false;\n return c.aliases.includes(cmd);\n });\n };\n\n const addRawArg = (optionName: string, rawArg: string) => {\n if (!results._info) results._info = {};\n if (!results._info[optionName]) results._info[optionName] = Object.create({});\n results._info[optionName].rawArg = rawArg;\n };\n\n const addRawValue = (optionName: string, rawValue: string) => {\n if (!results._info) results._info = {};\n if (!results._info[optionName]) results._info[optionName] = Object.create({});\n results._info[optionName].rawValue = rawValue;\n };\n\n const addSource = (optionName: string, source: \"cli\" | \"default\") => {\n if (!results._info) results._info = {};\n if (!results._info[optionName]) results._info[optionName] = Object.create({});\n results._info[optionName].source = source;\n };\n\n const fillOption = (optionName: string, value: Option) => {\n if (!results._info) results._info = {};\n if (!results._info[optionName]) results._info[optionName] = Object.create({});\n Object.assign(results._info[optionName], value);\n };\n\n for (let i = 0; i < argsv.length; i++) {\n const arg = argsv[i];\n\n // * subcommand\n if (i === 0) {\n results.subcommand = allSubcommands.has(arg) ? arg : undefined;\n\n // add positional and arguments array\n const subcommandProps = GetSubcommandProps();\n if (subcommandProps?.allowPositional) results.positional = [];\n if (subcommandProps?.arguments?.length) results.arguments = [];\n\n if (results.subcommand) continue;\n }\n\n // * option\n const argAndValue = arg.split(\"=\").filter(Boolean);\n const argWithEquals = arg.includes(\"=\");\n const argument = argAndValue[0];\n const argValue: string | undefined = argAndValue[1];\n\n if (isOptionArg(argument)) {\n if (isFlagArg(argument) && argWithEquals) {\n throw new Error(`Flag arguments cannot be assigned using \"=\": \"${arg}\"`);\n }\n\n const subcommandProps = GetSubcommandProps();\n if (!subcommandProps) throw new Error(`Unknown subcommand: \"${results.subcommand}\"`);\n\n if (!subcommandProps.options) {\n const msg = !results.subcommand\n ? \"options are not allowed here\"\n : `subcommand \"${results.subcommand}\" does not allow options`;\n throw new Error(`Error: ${msg}: \"${argument}\"`);\n }\n\n const optionName = transformArg(argument);\n const isNegative = argument.startsWith(\"--no-\");\n\n const option = subcommandProps.options.find(o => {\n if (o.name === optionName) return true;\n if (isNegative && noName(o.name) === optionName) return true;\n\n if (!o.aliases) return false;\n if (o.aliases.includes(optionName)) return true;\n if (isNegative && o.aliases.map(noName).includes(optionName)) return true;\n\n return false;\n });\n\n if (!option) {\n throw new Error(`Unknown option: \"${argument}\"`);\n }\n\n if (option.name in results) {\n throw new Error(`Duplicated option: \"${argument}\"`);\n }\n\n const isTypeBoolean = isBooleanSchema(option.type);\n const nextArg = argsv[i + 1];\n\n let optionValue: string | boolean = argWithEquals ? argValue : nextArg;\n\n if (isTypeBoolean) {\n if (argWithEquals) {\n const parsedBoolean = stringToBoolean(argValue);\n optionValue = isNegative ? !parsedBoolean : parsedBoolean;\n } else {\n optionValue = !isNegative;\n }\n }\n\n if (typeof optionValue === \"undefined\") {\n throw new Error(`Expected a value for \"${argument}\" but got nothing`);\n }\n\n if (!argWithEquals && isOptionArg(optionValue)) {\n throw new Error(`Expected a value for \"${argument}\" but got an argument \"${nextArg}\"`);\n }\n\n const res = option.type.safeParse(optionValue);\n if (!res.success) {\n throw new Error(`Invalid value \"${optionValue}\" for \"${argument}\": ${res.error.errors[0].message}`);\n }\n\n results[option.name] = res.data;\n addRawArg(option.name, argument);\n const rawVal = argWithEquals ? argValue : isTypeBoolean ? \"\" : nextArg;\n addRawValue(option.name, rawVal);\n fillOption(option.name, option);\n\n if (!argWithEquals && !isTypeBoolean) i++;\n continue;\n }\n\n const subcommandProps = GetSubcommandProps();\n\n // * arguments\n if (subcommandProps?.arguments?.length) {\n if (!results.arguments) results.arguments = [];\n\n const currentArgCount = results.arguments.length;\n\n if (currentArgCount < subcommandProps.arguments.length) {\n const argType = subcommandProps.arguments[currentArgCount].type;\n\n let argValue: string | boolean = arg;\n const isTypeBoolean = isBooleanSchema(argType);\n if (isTypeBoolean) argValue = stringToBoolean(argValue);\n\n const res = argType.safeParse(argValue);\n if (!res.success) {\n throw new Error(\n `The ${getOrdinalPlacement(currentArgCount)} argument \"${arg}\" is invalid: ${res.error.errors[0].message}`,\n );\n }\n\n results.arguments.push(res.data);\n continue;\n }\n }\n\n // * positional\n if (subcommandProps?.allowPositional) {\n if (!results.positional) results.positional = [];\n results.positional.push(arg);\n continue;\n }\n\n const msg = !results.subcommand ? \"here\" : `for subcommand \"${results.subcommand}\"`;\n throw new Error(`Unexpected argument \"${arg}\": positional arguments are not allowed ${msg}`);\n }\n\n // check for missing options - set defaults - add _source\n const subcommandProps = GetSubcommandProps();\n if (subcommandProps?.options?.length) {\n for (const option of subcommandProps.options) {\n if (option.name in results) {\n addSource(option.name, \"cli\");\n fillOption(option.name, option);\n continue;\n }\n\n if (option.type.isOptional()) {\n const hasDefault = typeof option.type._def.defaultValue === \"function\";\n if (!hasDefault) continue;\n results[option.name] = option.type._def.defaultValue();\n addSource(option.name, \"default\");\n fillOption(option.name, option);\n continue;\n }\n\n throw new Error(`Missing required option: ${transformOptionToArg(option.name)}`);\n }\n }\n\n // check for arguments - set defaults\n if (subcommandProps?.arguments?.length) {\n const currentArgCount = results.arguments?.length ?? 0;\n const subcommandArgCount = subcommandProps.arguments.length;\n\n // missing arguments\n if (currentArgCount < subcommandArgCount) {\n for (let i = currentArgCount; i < subcommandArgCount; i++) {\n const argumentType = subcommandProps.arguments[i].type;\n const hasDefault = typeof argumentType._def.defaultValue === \"function\";\n if (hasDefault && results.arguments) {\n results.arguments.push(argumentType._def.defaultValue());\n continue;\n }\n\n if (argumentType.isOptional()) continue;\n\n throw new Error(`the ${getOrdinalPlacement(i)} argument is required: \"${subcommandProps.arguments[i].name}\"`);\n }\n }\n }\n\n if (subcommandProps?.action) {\n subcommandProps.action(results);\n }\n\n return results 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});exports.safeParse=safeParse;var help=_interopRequireWildcard(require("../help-message/print-help-message.js"));var _parse=require("./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 safeParse(argsv,...params){const cliOptions="cliName"in params[0]?params[0]:{};const subcommandArr=params;const printCliHelp=opt=>help.printCliHelp(params,opt);const printSubcommandHelp=(subcommandStr,opt)=>{const subcommand=subcommandArr.find(c=>c.name===subcommandStr);if(!subcommand)return console.error(`Cannot print help for subcommand "${subcommandStr}" as it does not exist`);help.printSubcommandHelp(subcommand,opt,cliOptions.cliName);};try{const data=(0,_parse.parse)(argsv,...params);delete data.printCliHelp;delete data.printSubcommandHelp;return{success:true,data:data,printCliHelp,printSubcommandHelp};}catch(e){return{success:false,error:e,printCliHelp,printSubcommandHelp};}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["help","_interopRequireWildcard","require","_parse","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","opt","printSubcommandHelp","subcommandStr","subcommand","find","c","name","console","error","cliName","data","parse","success"],"sourceRoot":"../../../src/parser","sources":["safe-parse.ts"],"sourcesContent":["import * as help from \"../help-message/print-help-message.js\";\nimport { parse } from \"./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 = opt => help.printCliHelp(params, opt);\n const printSubcommandHelp: PrintSubcommand = (subcommandStr, opt) => {\n const subcommand = subcommandArr.find(c => c.name === subcommandStr);\n if (!subcommand) return console.error(`Cannot print help for subcommand \"${subcommandStr}\" as it does not exist`);\n help.printSubcommandHelp(subcommand, opt, cliOptions.cliName);\n };\n\n try {\n const data = parse(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 return {\n success: false,\n error: e as Error,\n printCliHelp,\n printSubcommandHelp,\n } as SafeParseResult<[...T, NoSubcommand & U]>;\n }\n}\n"],"mappings":"kGAAA,IAAAA,IAAA,CAAAC,uBAAA,CAAAC,OAAA,2CACA,IAAAC,MAAA,CAAAD,OAAA,eAAmC,SAAAD,wBAAAG,CAAA,CAAAC,CAAA,wBAAAC,OAAA,KAAAC,CAAA,KAAAD,OAAA,GAAAE,CAAA,KAAAF,OAAA,UAAAL,uBAAA,SAAAA,CAAAG,CAAA,CAAAC,CAAA,MAAAA,CAAA,EAAAD,CAAA,EAAAA,CAAA,CAAAK,UAAA,QAAAL,CAAA,KAAAM,CAAA,CAAAC,CAAA,CAAAC,CAAA,EAAAC,SAAA,MAAAC,OAAA,CAAAV,CAAA,YAAAA,CAAA,mBAAAA,CAAA,qBAAAA,CAAA,QAAAQ,CAAA,IAAAF,CAAA,CAAAL,CAAA,CAAAG,CAAA,CAAAD,CAAA,KAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,SAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,EAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,CAAAQ,CAAA,aAAAP,CAAA,IAAAD,CAAA,aAAAC,CAAA,KAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,CAAAC,CAAA,KAAAM,CAAA,EAAAD,CAAA,CAAAU,MAAA,CAAAC,cAAA,GAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,CAAAC,CAAA,KAAAM,CAAA,CAAAK,GAAA,EAAAL,CAAA,CAAAM,GAAA,EAAAP,CAAA,CAAAE,CAAA,CAAAP,CAAA,CAAAM,CAAA,EAAAC,CAAA,CAAAP,CAAA,EAAAD,CAAA,CAAAC,CAAA,UAAAO,CAAA,IAAAR,CAAA,CAAAC,CAAA,GAI5B,QAAS,CAAAkB,SAASA,CACvBC,KAAe,CACf,GAAGC,MAAiB,CACuB,CAC3C,KAAM,CAAAC,UAAU,CAAI,SAAS,EAAI,CAAAD,MAAM,CAAC,CAAC,CAAC,CAAGA,MAAM,CAAC,CAAC,CAAC,CAAG,CAAC,CAAO,CACjE,KAAM,CAAAE,aAAa,CAAGF,MAAsB,CAM5C,KAAM,CAAAG,YAAsB,CAAGC,GAAG,EAAI7B,IAAI,CAAC4B,YAAY,CAACH,MAAM,CAAEI,GAAG,CAAC,CACpE,KAAM,CAAAC,mBAAoC,CAAGA,CAACC,aAAa,CAAEF,GAAG,GAAK,CACnE,KAAM,CAAAG,UAAU,CAAGL,aAAa,CAACM,IAAI,CAACC,CAAC,EAAIA,CAAC,CAACC,IAAI,GAAKJ,aAAa,CAAC,CACpE,GAAI,CAACC,UAAU,CAAE,MAAO,CAAAI,OAAO,CAACC,KAAK,CAAC,qCAAqCN,aAAa,wBAAwB,CAAC,CACjH/B,IAAI,CAAC8B,mBAAmB,CAACE,UAAU,CAAEH,GAAG,CAAEH,UAAU,CAACY,OAAO,CAAC,CAC/D,CAAC,CAED,GAAI,CACF,KAAM,CAAAC,IAAI,CAAG,GAAAC,YAAK,EAAChB,KAAK,CAAE,GAAGC,MAAM,CAAC,CAEpC,MAAO,CAAAc,IAAI,CAACX,YAAY,CAExB,MAAO,CAAAW,IAAI,CAACT,mBAAmB,CAE/B,MAAO,CACLW,OAAO,CAAE,IAAI,CACbF,IAAI,CAAEA,IAAiE,CACvEX,YAAY,CACZE,mBACF,CAAC,CACH,CAAE,MAAO1B,CAAC,CAAE,CACV,MAAO,CACLqC,OAAO,CAAE,KAAK,CACdJ,KAAK,CAAEjC,CAAU,CACjBwB,YAAY,CACZE,mBACF,CAAC,CACH,CACF","ignoreList":[]}
|