zod-args-parser 2.0.0-alpha.0 → 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +525 -588
- package/lib/cjs/autocomplete-scripts/bash-autocomplete-script.cjs +2 -0
- package/lib/cjs/autocomplete-scripts/bash-autocomplete-script.cjs.map +1 -0
- package/lib/cjs/autocomplete-scripts/powershell-autocomplete-script.cjs +2 -0
- package/lib/cjs/autocomplete-scripts/powershell-autocomplete-script.cjs.map +1 -0
- package/lib/cjs/autocomplete-scripts/zsh-autocomplete-script.cjs +42 -0
- package/lib/cjs/autocomplete-scripts/zsh-autocomplete-script.cjs.map +1 -0
- package/lib/cjs/coerce/coerce-methods.cjs +2 -0
- package/lib/cjs/coerce/coerce-methods.cjs.map +1 -0
- package/lib/cjs/coerce/string-to-array.cjs +2 -0
- package/lib/cjs/coerce/string-to-array.cjs.map +1 -0
- package/lib/cjs/coerce/string-to-primitive.cjs +2 -0
- package/lib/cjs/coerce/string-to-primitive.cjs.map +1 -0
- package/lib/cjs/coerce/string-to-set.cjs +2 -0
- package/lib/cjs/coerce/string-to-set.cjs.map +1 -0
- package/lib/cjs/definitions/define-arguments.cjs +2 -0
- package/lib/cjs/definitions/define-arguments.cjs.map +1 -0
- package/lib/cjs/definitions/define-cli.cjs +2 -0
- package/lib/cjs/definitions/define-cli.cjs.map +1 -0
- package/lib/cjs/definitions/define-options.cjs +2 -0
- package/lib/cjs/definitions/define-options.cjs.map +1 -0
- package/lib/cjs/definitions/define-subcommand.cjs +2 -0
- package/lib/cjs/definitions/define-subcommand.cjs.map +1 -0
- package/lib/cjs/definitions/validate-cli-definition.cjs +2 -0
- package/lib/cjs/definitions/validate-cli-definition.cjs.map +1 -0
- package/lib/cjs/help-message/format-arguments.cjs +2 -0
- package/lib/cjs/help-message/format-arguments.cjs.map +1 -0
- package/lib/cjs/help-message/format-options.cjs +2 -0
- package/lib/cjs/help-message/format-options.cjs.map +1 -0
- package/lib/cjs/help-message/format-subcommands.cjs +2 -0
- package/lib/cjs/help-message/format-subcommands.cjs.map +1 -0
- package/lib/cjs/help-message/generate-for-cli.cjs +2 -0
- package/lib/cjs/help-message/generate-for-cli.cjs.map +1 -0
- package/lib/cjs/help-message/generate-for-subcommand.cjs +2 -0
- package/lib/cjs/help-message/generate-for-subcommand.cjs.map +1 -0
- package/lib/cjs/help-message/print-help.cjs +2 -0
- package/lib/cjs/help-message/print-help.cjs.map +1 -0
- package/lib/cjs/help-message/set-defaults.cjs +2 -0
- package/lib/cjs/help-message/set-defaults.cjs.map +1 -0
- package/lib/cjs/help-message/styles.cjs +2 -0
- package/lib/cjs/help-message/styles.cjs.map +1 -0
- package/lib/cjs/help-message/terminal-markdown.cjs +2 -0
- package/lib/cjs/help-message/terminal-markdown.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -0
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/markdown/generate-markdown.cjs +2 -0
- package/lib/cjs/markdown/generate-markdown.cjs.map +1 -0
- package/lib/cjs/metadata/arguments-metadata.cjs +2 -0
- package/lib/cjs/metadata/arguments-metadata.cjs.map +1 -0
- package/lib/cjs/metadata/cli-metadata.cjs +2 -0
- package/lib/cjs/metadata/cli-metadata.cjs.map +1 -0
- package/lib/cjs/metadata/options-metadata.cjs +2 -0
- package/lib/cjs/metadata/options-metadata.cjs.map +1 -0
- package/lib/cjs/metadata/subcommands-metadata.cjs +2 -0
- package/lib/cjs/metadata/subcommands-metadata.cjs.map +1 -0
- package/lib/cjs/parse/context/cli-context-builder.cjs +2 -0
- package/lib/cjs/parse/context/cli-context-builder.cjs.map +1 -0
- package/lib/cjs/parse/context/object-context-builder.cjs +2 -0
- package/lib/cjs/parse/context/object-context-builder.cjs.map +1 -0
- package/lib/cjs/parse/parser-utilities.cjs +2 -0
- package/lib/cjs/parse/parser-utilities.cjs.map +1 -0
- package/lib/cjs/parse/safe-parse.cjs +2 -0
- package/lib/cjs/parse/safe-parse.cjs.map +1 -0
- package/lib/cjs/parse/validation/validate-context.cjs +2 -0
- package/lib/cjs/parse/validation/validate-context.cjs.map +1 -0
- package/lib/cjs/parse/validation/validators/arguments.cjs +2 -0
- package/lib/cjs/parse/validation/validators/arguments.cjs.map +1 -0
- package/lib/cjs/parse/validation/validators/conflict.cjs +2 -0
- package/lib/cjs/parse/validation/validators/conflict.cjs.map +1 -0
- package/lib/cjs/parse/validation/validators/exclusive.cjs +2 -0
- package/lib/cjs/parse/validation/validators/exclusive.cjs.map +1 -0
- package/lib/cjs/parse/validation/validators/explicitly-passed.cjs +2 -0
- package/lib/cjs/parse/validation/validators/explicitly-passed.cjs.map +1 -0
- package/lib/cjs/parse/validation/validators/options.cjs +2 -0
- package/lib/cjs/parse/validation/validators/options.cjs.map +1 -0
- package/lib/cjs/parse/validation/validators/requires.cjs +2 -0
- package/lib/cjs/parse/validation/validators/requires.cjs.map +1 -0
- package/lib/cjs/utilities.cjs +2 -0
- package/lib/cjs/utilities.cjs.map +1 -0
- package/lib/esm/autocomplete-scripts/bash-autocomplete-script.js +2 -0
- package/lib/esm/autocomplete-scripts/bash-autocomplete-script.js.map +1 -0
- package/lib/esm/autocomplete-scripts/powershell-autocomplete-script.js +2 -0
- package/lib/esm/autocomplete-scripts/powershell-autocomplete-script.js.map +1 -0
- package/lib/esm/autocomplete-scripts/zsh-autocomplete-script.js +42 -0
- package/lib/esm/autocomplete-scripts/zsh-autocomplete-script.js.map +1 -0
- package/lib/esm/coerce/coerce-methods.js +2 -0
- package/lib/esm/coerce/coerce-methods.js.map +1 -0
- package/lib/esm/coerce/string-to-array.js +2 -0
- package/lib/esm/coerce/string-to-array.js.map +1 -0
- package/lib/esm/coerce/string-to-primitive.js +2 -0
- package/lib/esm/coerce/string-to-primitive.js.map +1 -0
- package/lib/esm/coerce/string-to-set.js +2 -0
- package/lib/esm/coerce/string-to-set.js.map +1 -0
- package/lib/esm/definitions/define-arguments.js +2 -0
- package/lib/esm/definitions/define-arguments.js.map +1 -0
- package/lib/esm/definitions/define-cli.js +2 -0
- package/lib/esm/definitions/define-cli.js.map +1 -0
- package/lib/esm/definitions/define-options.js +2 -0
- package/lib/esm/definitions/define-options.js.map +1 -0
- package/lib/esm/definitions/define-subcommand.js +2 -0
- package/lib/esm/definitions/define-subcommand.js.map +1 -0
- package/lib/esm/definitions/validate-cli-definition.js +2 -0
- package/lib/esm/definitions/validate-cli-definition.js.map +1 -0
- package/lib/esm/help-message/format-arguments.js +2 -0
- package/lib/esm/help-message/format-arguments.js.map +1 -0
- package/lib/esm/help-message/format-options.js +2 -0
- package/lib/esm/help-message/format-options.js.map +1 -0
- package/lib/esm/help-message/format-subcommands.js +2 -0
- package/lib/esm/help-message/format-subcommands.js.map +1 -0
- package/lib/esm/help-message/generate-for-cli.js +2 -0
- package/lib/esm/help-message/generate-for-cli.js.map +1 -0
- package/lib/esm/help-message/generate-for-subcommand.js +2 -0
- package/lib/esm/help-message/generate-for-subcommand.js.map +1 -0
- package/lib/esm/help-message/print-help.js +2 -0
- package/lib/esm/help-message/print-help.js.map +1 -0
- package/lib/esm/help-message/set-defaults.js +2 -0
- package/lib/esm/help-message/set-defaults.js.map +1 -0
- package/lib/esm/help-message/styles.js +2 -0
- package/lib/esm/help-message/styles.js.map +1 -0
- package/lib/esm/help-message/terminal-markdown.js +2 -0
- package/lib/esm/help-message/terminal-markdown.js.map +1 -0
- package/lib/esm/index.js +2 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/markdown/generate-markdown.js +2 -0
- package/lib/esm/markdown/generate-markdown.js.map +1 -0
- package/lib/esm/metadata/arguments-metadata.js +2 -0
- package/lib/esm/metadata/arguments-metadata.js.map +1 -0
- package/lib/esm/metadata/cli-metadata.js +2 -0
- package/lib/esm/metadata/cli-metadata.js.map +1 -0
- package/lib/esm/metadata/options-metadata.js +2 -0
- package/lib/esm/metadata/options-metadata.js.map +1 -0
- package/lib/esm/metadata/subcommands-metadata.js +2 -0
- package/lib/esm/metadata/subcommands-metadata.js.map +1 -0
- package/lib/esm/parse/context/cli-context-builder.js +2 -0
- package/lib/esm/parse/context/cli-context-builder.js.map +1 -0
- package/lib/esm/parse/context/object-context-builder.js +2 -0
- package/lib/esm/parse/context/object-context-builder.js.map +1 -0
- package/lib/esm/parse/parser-utilities.js +2 -0
- package/lib/esm/parse/parser-utilities.js.map +1 -0
- package/lib/esm/parse/safe-parse.js +2 -0
- package/lib/esm/parse/safe-parse.js.map +1 -0
- package/lib/esm/parse/validation/validate-context.js +2 -0
- package/lib/esm/parse/validation/validate-context.js.map +1 -0
- package/lib/esm/parse/validation/validators/arguments.js +2 -0
- package/lib/esm/parse/validation/validators/arguments.js.map +1 -0
- package/lib/esm/parse/validation/validators/conflict.js +2 -0
- package/lib/esm/parse/validation/validators/conflict.js.map +1 -0
- package/lib/esm/parse/validation/validators/exclusive.js +2 -0
- package/lib/esm/parse/validation/validators/exclusive.js.map +1 -0
- package/lib/esm/parse/validation/validators/explicitly-passed.js +2 -0
- package/lib/esm/parse/validation/validators/explicitly-passed.js.map +1 -0
- package/lib/esm/parse/validation/validators/options.js +2 -0
- package/lib/esm/parse/validation/validators/options.js.map +1 -0
- package/lib/esm/parse/validation/validators/requires.js +2 -0
- package/lib/esm/parse/validation/validators/requires.js.map +1 -0
- package/lib/esm/utilities.js +2 -0
- package/lib/esm/utilities.js.map +1 -0
- package/lib/iife/index.js +2 -0
- package/lib/iife/index.js.map +1 -0
- package/lib/mjs/autocomplete-scripts/bash-autocomplete-script.mjs +2 -0
- package/lib/mjs/autocomplete-scripts/bash-autocomplete-script.mjs.map +1 -0
- package/lib/mjs/autocomplete-scripts/powershell-autocomplete-script.mjs +2 -0
- package/lib/mjs/autocomplete-scripts/powershell-autocomplete-script.mjs.map +1 -0
- package/lib/mjs/autocomplete-scripts/zsh-autocomplete-script.mjs +42 -0
- package/lib/mjs/autocomplete-scripts/zsh-autocomplete-script.mjs.map +1 -0
- package/lib/mjs/coerce/coerce-methods.mjs +2 -0
- package/lib/mjs/coerce/coerce-methods.mjs.map +1 -0
- package/lib/mjs/coerce/string-to-array.mjs +2 -0
- package/lib/mjs/coerce/string-to-array.mjs.map +1 -0
- package/lib/mjs/coerce/string-to-primitive.mjs +2 -0
- package/lib/mjs/coerce/string-to-primitive.mjs.map +1 -0
- package/lib/mjs/coerce/string-to-set.mjs +2 -0
- package/lib/mjs/coerce/string-to-set.mjs.map +1 -0
- package/lib/mjs/definitions/define-arguments.mjs +2 -0
- package/lib/mjs/definitions/define-arguments.mjs.map +1 -0
- package/lib/mjs/definitions/define-cli.mjs +2 -0
- package/lib/mjs/definitions/define-cli.mjs.map +1 -0
- package/lib/mjs/definitions/define-options.mjs +2 -0
- package/lib/mjs/definitions/define-options.mjs.map +1 -0
- package/lib/mjs/definitions/define-subcommand.mjs +2 -0
- package/lib/mjs/definitions/define-subcommand.mjs.map +1 -0
- package/lib/mjs/definitions/validate-cli-definition.mjs +2 -0
- package/lib/mjs/definitions/validate-cli-definition.mjs.map +1 -0
- package/lib/mjs/help-message/format-arguments.mjs +2 -0
- package/lib/mjs/help-message/format-arguments.mjs.map +1 -0
- package/lib/mjs/help-message/format-options.mjs +2 -0
- package/lib/mjs/help-message/format-options.mjs.map +1 -0
- package/lib/mjs/help-message/format-subcommands.mjs +2 -0
- package/lib/mjs/help-message/format-subcommands.mjs.map +1 -0
- package/lib/mjs/help-message/generate-for-cli.mjs +2 -0
- package/lib/mjs/help-message/generate-for-cli.mjs.map +1 -0
- package/lib/mjs/help-message/generate-for-subcommand.mjs +2 -0
- package/lib/mjs/help-message/generate-for-subcommand.mjs.map +1 -0
- package/lib/mjs/help-message/print-help.mjs +2 -0
- package/lib/mjs/help-message/print-help.mjs.map +1 -0
- package/lib/mjs/help-message/set-defaults.mjs +2 -0
- package/lib/mjs/help-message/set-defaults.mjs.map +1 -0
- package/lib/mjs/help-message/styles.mjs +2 -0
- package/lib/mjs/help-message/styles.mjs.map +1 -0
- package/lib/mjs/help-message/terminal-markdown.mjs +2 -0
- package/lib/mjs/help-message/terminal-markdown.mjs.map +1 -0
- package/lib/mjs/index.mjs +2 -0
- package/lib/mjs/index.mjs.map +1 -0
- package/lib/mjs/markdown/generate-markdown.mjs +2 -0
- package/lib/mjs/markdown/generate-markdown.mjs.map +1 -0
- package/lib/mjs/metadata/arguments-metadata.mjs +2 -0
- package/lib/mjs/metadata/arguments-metadata.mjs.map +1 -0
- package/lib/mjs/metadata/cli-metadata.mjs +2 -0
- package/lib/mjs/metadata/cli-metadata.mjs.map +1 -0
- package/lib/mjs/metadata/options-metadata.mjs +2 -0
- package/lib/mjs/metadata/options-metadata.mjs.map +1 -0
- package/lib/mjs/metadata/subcommands-metadata.mjs +2 -0
- package/lib/mjs/metadata/subcommands-metadata.mjs.map +1 -0
- package/lib/mjs/parse/context/cli-context-builder.mjs +2 -0
- package/lib/mjs/parse/context/cli-context-builder.mjs.map +1 -0
- package/lib/mjs/parse/context/object-context-builder.mjs +2 -0
- package/lib/mjs/parse/context/object-context-builder.mjs.map +1 -0
- package/lib/mjs/parse/parser-utilities.mjs +2 -0
- package/lib/mjs/parse/parser-utilities.mjs.map +1 -0
- package/lib/mjs/parse/safe-parse.mjs +2 -0
- package/lib/mjs/parse/safe-parse.mjs.map +1 -0
- package/lib/mjs/parse/validation/validate-context.mjs +2 -0
- package/lib/mjs/parse/validation/validate-context.mjs.map +1 -0
- package/lib/mjs/parse/validation/validators/arguments.mjs +2 -0
- package/lib/mjs/parse/validation/validators/arguments.mjs.map +1 -0
- package/lib/mjs/parse/validation/validators/conflict.mjs +2 -0
- package/lib/mjs/parse/validation/validators/conflict.mjs.map +1 -0
- package/lib/mjs/parse/validation/validators/exclusive.mjs +2 -0
- package/lib/mjs/parse/validation/validators/exclusive.mjs.map +1 -0
- package/lib/mjs/parse/validation/validators/explicitly-passed.mjs +2 -0
- package/lib/mjs/parse/validation/validators/explicitly-passed.mjs.map +1 -0
- package/lib/mjs/parse/validation/validators/options.mjs +2 -0
- package/lib/mjs/parse/validation/validators/options.mjs.map +1 -0
- package/lib/mjs/parse/validation/validators/requires.mjs +2 -0
- package/lib/mjs/parse/validation/validators/requires.mjs.map +1 -0
- package/lib/mjs/utilities.mjs +2 -0
- package/lib/mjs/utilities.mjs.map +1 -0
- package/lib/typescript/autocomplete-scripts/bash-autocomplete-script.d.ts +2 -2
- package/lib/typescript/autocomplete-scripts/bash-autocomplete-script.d.ts.map +1 -1
- package/lib/typescript/autocomplete-scripts/powershell-autocomplete-script.d.ts +2 -2
- package/lib/typescript/autocomplete-scripts/powershell-autocomplete-script.d.ts.map +1 -1
- package/lib/typescript/autocomplete-scripts/zsh-autocomplete-script.d.ts +2 -2
- package/lib/typescript/autocomplete-scripts/zsh-autocomplete-script.d.ts.map +1 -1
- package/lib/typescript/coerce/coerce-methods.d.ts +20 -0
- package/lib/typescript/coerce/coerce-methods.d.ts.map +1 -0
- package/lib/typescript/coerce/string-to-array.d.ts +6 -0
- package/lib/typescript/coerce/string-to-array.d.ts.map +1 -0
- package/lib/typescript/coerce/string-to-primitive.d.ts +5 -0
- package/lib/typescript/coerce/string-to-primitive.d.ts.map +1 -0
- package/lib/typescript/coerce/string-to-set.d.ts +6 -0
- package/lib/typescript/coerce/string-to-set.d.ts.map +1 -0
- package/lib/typescript/definitions/define-arguments.d.ts +7 -0
- package/lib/typescript/definitions/define-arguments.d.ts.map +1 -0
- package/lib/typescript/definitions/define-cli.d.ts +24 -0
- package/lib/typescript/definitions/define-cli.d.ts.map +1 -0
- package/lib/typescript/definitions/define-options.d.ts +7 -0
- package/lib/typescript/definitions/define-options.d.ts.map +1 -0
- package/lib/typescript/definitions/define-subcommand.d.ts +17 -0
- package/lib/typescript/definitions/define-subcommand.d.ts.map +1 -0
- package/lib/typescript/definitions/validate-cli-definition.d.ts +4 -0
- package/lib/typescript/definitions/validate-cli-definition.d.ts.map +1 -0
- package/lib/typescript/help-message/format-arguments.d.ts +3 -3
- package/lib/typescript/help-message/format-arguments.d.ts.map +1 -1
- package/lib/typescript/help-message/format-options.d.ts +3 -3
- package/lib/typescript/help-message/format-options.d.ts.map +1 -1
- package/lib/typescript/help-message/format-subcommands.d.ts +3 -3
- package/lib/typescript/help-message/format-subcommands.d.ts.map +1 -1
- package/lib/typescript/help-message/generate-for-cli.d.ts +8 -0
- package/lib/typescript/help-message/generate-for-cli.d.ts.map +1 -0
- package/lib/typescript/help-message/generate-for-subcommand.d.ts +4 -0
- package/lib/typescript/help-message/generate-for-subcommand.d.ts.map +1 -0
- package/lib/typescript/help-message/print-help.d.ts +5 -0
- package/lib/typescript/help-message/print-help.d.ts.map +1 -0
- package/lib/typescript/help-message/set-defaults.d.ts +4 -0
- package/lib/typescript/help-message/set-defaults.d.ts.map +1 -0
- package/lib/typescript/help-message/styles.d.ts +30 -106
- package/lib/typescript/help-message/styles.d.ts.map +1 -1
- package/lib/typescript/help-message/terminal-markdown.d.ts +3 -0
- package/lib/typescript/help-message/terminal-markdown.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +23 -35
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/markdown/generate-markdown.d.ts +2 -2
- package/lib/typescript/markdown/generate-markdown.d.ts.map +1 -1
- package/lib/typescript/metadata/arguments-metadata.d.ts +4 -0
- package/lib/typescript/metadata/arguments-metadata.d.ts.map +1 -0
- package/lib/typescript/metadata/cli-metadata.d.ts +4 -0
- package/lib/typescript/metadata/cli-metadata.d.ts.map +1 -0
- package/lib/typescript/metadata/options-metadata.d.ts +4 -0
- package/lib/typescript/metadata/options-metadata.d.ts.map +1 -0
- package/lib/typescript/metadata/subcommands-metadata.d.ts +4 -0
- package/lib/typescript/metadata/subcommands-metadata.d.ts.map +1 -0
- package/lib/typescript/parse/context/cli-context-builder.d.ts +9 -0
- package/lib/typescript/parse/context/cli-context-builder.d.ts.map +1 -0
- package/lib/typescript/parse/context/object-context-builder.d.ts +6 -0
- package/lib/typescript/parse/context/object-context-builder.d.ts.map +1 -0
- package/lib/typescript/{parser/parse/parser-helpers.d.ts → parse/parser-utilities.d.ts} +18 -9
- package/lib/typescript/parse/parser-utilities.d.ts.map +1 -0
- package/lib/typescript/parse/safe-parse.d.ts +5 -0
- package/lib/typescript/parse/safe-parse.d.ts.map +1 -0
- package/lib/typescript/parse/validation/validate-context.d.ts +6 -0
- package/lib/typescript/parse/validation/validate-context.d.ts.map +1 -0
- package/lib/typescript/parse/validation/validators/arguments.d.ts +12 -0
- package/lib/typescript/parse/validation/validators/arguments.d.ts.map +1 -0
- package/lib/typescript/parse/validation/validators/conflict.d.ts +16 -0
- package/lib/typescript/parse/validation/validators/conflict.d.ts.map +1 -0
- package/lib/typescript/parse/validation/validators/exclusive.d.ts +16 -0
- package/lib/typescript/parse/validation/validators/exclusive.d.ts.map +1 -0
- package/lib/typescript/parse/validation/validators/explicitly-passed.d.ts +5 -0
- package/lib/typescript/parse/validation/validators/explicitly-passed.d.ts.map +1 -0
- package/lib/typescript/parse/validation/validators/options.d.ts +12 -0
- package/lib/typescript/parse/validation/validators/options.d.ts.map +1 -0
- package/lib/typescript/parse/validation/validators/requires.d.ts +18 -0
- package/lib/typescript/parse/validation/validators/requires.d.ts.map +1 -0
- package/lib/typescript/types/context-types.d.ts +135 -0
- package/lib/typescript/types/context-types.d.ts.map +1 -0
- package/lib/typescript/types/definitions-types.d.ts +294 -0
- package/lib/typescript/types/definitions-types.d.ts.map +1 -0
- package/lib/typescript/types/help-message-types.d.ts +134 -0
- package/lib/typescript/types/help-message-types.d.ts.map +1 -0
- package/lib/typescript/types/io-types.d.ts +96 -0
- package/lib/typescript/types/io-types.d.ts.map +1 -0
- package/lib/typescript/types/metadata-types.d.ts +75 -0
- package/lib/typescript/types/metadata-types.d.ts.map +1 -0
- package/lib/typescript/types/schema-types.d.ts +6 -0
- package/lib/typescript/types/schema-types.d.ts.map +1 -0
- package/lib/typescript/types/types.d.ts +61 -0
- package/lib/typescript/types/types.d.ts.map +1 -0
- package/lib/typescript/types/utilities-types.d.ts +17 -0
- package/lib/typescript/types/utilities-types.d.ts.map +1 -0
- package/lib/typescript/utilities.d.ts +24 -10
- package/lib/typescript/utilities.d.ts.map +1 -1
- package/package.json +29 -26
- package/src/autocomplete-scripts/bash-autocomplete-script.ts +13 -9
- package/src/autocomplete-scripts/powershell-autocomplete-script.ts +21 -13
- package/src/autocomplete-scripts/zsh-autocomplete-script.ts +27 -23
- package/src/coerce/coerce-methods.ts +75 -0
- package/src/coerce/string-to-array.ts +18 -0
- package/src/coerce/string-to-primitive.ts +31 -0
- package/src/coerce/string-to-set.ts +15 -0
- package/src/definitions/define-arguments.ts +10 -0
- package/src/definitions/define-cli.ts +105 -0
- package/src/definitions/define-options.ts +12 -0
- package/src/definitions/define-subcommand.ts +57 -0
- package/src/definitions/validate-cli-definition.ts +331 -0
- package/src/help-message/format-arguments.ts +57 -33
- package/src/help-message/format-options.ts +59 -34
- package/src/help-message/format-subcommands.ts +43 -21
- package/src/help-message/generate-for-cli.ts +114 -0
- package/src/help-message/generate-for-subcommand.ts +32 -0
- package/src/help-message/print-help.ts +13 -0
- package/src/help-message/set-defaults.ts +34 -0
- package/src/help-message/styles.ts +148 -103
- package/src/help-message/terminal-markdown.ts +147 -0
- package/src/index.ts +28 -97
- package/src/markdown/generate-markdown.ts +47 -58
- package/src/metadata/arguments-metadata.ts +28 -0
- package/src/metadata/cli-metadata.ts +26 -0
- package/src/metadata/options-metadata.ts +38 -0
- package/src/metadata/subcommands-metadata.ts +35 -0
- package/src/parse/context/cli-context-builder.ts +246 -0
- package/src/parse/context/object-context-builder.ts +63 -0
- package/src/{parser/parse/parser-helpers.ts → parse/parser-utilities.ts} +46 -25
- package/src/parse/safe-parse.ts +76 -0
- package/src/parse/validation/validate-context.ts +23 -0
- package/src/parse/validation/validators/arguments.ts +59 -0
- package/src/parse/validation/validators/conflict.ts +68 -0
- package/src/parse/validation/validators/exclusive.ts +70 -0
- package/src/parse/validation/validators/explicitly-passed.ts +15 -0
- package/src/parse/validation/validators/options.ts +59 -0
- package/src/parse/validation/validators/requires.ts +82 -0
- package/src/types/context-types.ts +171 -0
- package/src/types/definitions-types.ts +340 -0
- package/src/types/help-message-types.ts +153 -0
- package/src/types/io-types.ts +131 -0
- package/src/types/metadata-types.ts +104 -0
- package/src/types/schema-types.ts +9 -0
- package/src/types/types.ts +72 -0
- package/src/types/utilities-types.ts +26 -0
- package/src/utilities.ts +200 -23
- package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.cjs +0 -42
- package/lib/commonjs/autocomplete-scripts/bash-autocomplete-script.cjs.map +0 -1
- package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.cjs +0 -31
- package/lib/commonjs/autocomplete-scripts/powershell-autocomplete-script.cjs.map +0 -1
- package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.cjs +0 -41
- package/lib/commonjs/autocomplete-scripts/zsh-autocomplete-script.cjs.map +0 -1
- package/lib/commonjs/help-message/format-arguments.cjs +0 -1
- package/lib/commonjs/help-message/format-arguments.cjs.map +0 -1
- package/lib/commonjs/help-message/format-cli.cjs +0 -1
- package/lib/commonjs/help-message/format-cli.cjs.map +0 -1
- package/lib/commonjs/help-message/format-options.cjs +0 -1
- package/lib/commonjs/help-message/format-options.cjs.map +0 -1
- package/lib/commonjs/help-message/format-subcommands.cjs +0 -1
- package/lib/commonjs/help-message/format-subcommands.cjs.map +0 -1
- package/lib/commonjs/help-message/styles.cjs +0 -1
- package/lib/commonjs/help-message/styles.cjs.map +0 -1
- package/lib/commonjs/index.cjs +0 -1
- package/lib/commonjs/index.cjs.map +0 -1
- package/lib/commonjs/markdown/generate-markdown.cjs +0 -1
- package/lib/commonjs/markdown/generate-markdown.cjs.map +0 -1
- package/lib/commonjs/metadata/get-arguments-metadata.cjs +0 -1
- package/lib/commonjs/metadata/get-arguments-metadata.cjs.map +0 -1
- package/lib/commonjs/metadata/get-cli-metadata.cjs +0 -1
- package/lib/commonjs/metadata/get-cli-metadata.cjs.map +0 -1
- package/lib/commonjs/metadata/get-options-metadata.cjs +0 -1
- package/lib/commonjs/metadata/get-options-metadata.cjs.map +0 -1
- package/lib/commonjs/metadata/get-subcommands-metadata.cjs +0 -1
- package/lib/commonjs/metadata/get-subcommands-metadata.cjs.map +0 -1
- package/lib/commonjs/parser/parse/parse.cjs +0 -1
- package/lib/commonjs/parser/parse/parse.cjs.map +0 -1
- package/lib/commonjs/parser/parse/parser-helpers.cjs +0 -1
- package/lib/commonjs/parser/parse/parser-helpers.cjs.map +0 -1
- package/lib/commonjs/parser/safe-parse.cjs +0 -1
- package/lib/commonjs/parser/safe-parse.cjs.map +0 -1
- package/lib/commonjs/parser/unsafe-parse.cjs +0 -1
- package/lib/commonjs/parser/unsafe-parse.cjs.map +0 -1
- package/lib/commonjs/parser/validate/validate-type.cjs +0 -1
- package/lib/commonjs/parser/validate/validate-type.cjs.map +0 -1
- package/lib/commonjs/parser/validate/validate.cjs +0 -1
- package/lib/commonjs/parser/validate/validate.cjs.map +0 -1
- package/lib/commonjs/utilities.cjs +0 -1
- package/lib/commonjs/utilities.cjs.map +0 -1
- package/lib/commonjs/zod-utilities.cjs +0 -1
- package/lib/commonjs/zod-utilities.cjs.map +0 -1
- package/lib/module/autocomplete-scripts/bash-autocomplete-script.mjs +0 -42
- package/lib/module/autocomplete-scripts/bash-autocomplete-script.mjs.map +0 -1
- package/lib/module/autocomplete-scripts/powershell-autocomplete-script.mjs +0 -31
- package/lib/module/autocomplete-scripts/powershell-autocomplete-script.mjs.map +0 -1
- package/lib/module/autocomplete-scripts/zsh-autocomplete-script.mjs +0 -41
- package/lib/module/autocomplete-scripts/zsh-autocomplete-script.mjs.map +0 -1
- package/lib/module/help-message/format-arguments.mjs +0 -1
- package/lib/module/help-message/format-arguments.mjs.map +0 -1
- package/lib/module/help-message/format-cli.mjs +0 -1
- package/lib/module/help-message/format-cli.mjs.map +0 -1
- package/lib/module/help-message/format-options.mjs +0 -1
- package/lib/module/help-message/format-options.mjs.map +0 -1
- package/lib/module/help-message/format-subcommands.mjs +0 -1
- package/lib/module/help-message/format-subcommands.mjs.map +0 -1
- package/lib/module/help-message/styles.mjs +0 -1
- package/lib/module/help-message/styles.mjs.map +0 -1
- package/lib/module/index.mjs +0 -1
- package/lib/module/index.mjs.map +0 -1
- package/lib/module/markdown/generate-markdown.mjs +0 -1
- package/lib/module/markdown/generate-markdown.mjs.map +0 -1
- package/lib/module/metadata/get-arguments-metadata.mjs +0 -1
- package/lib/module/metadata/get-arguments-metadata.mjs.map +0 -1
- package/lib/module/metadata/get-cli-metadata.mjs +0 -1
- package/lib/module/metadata/get-cli-metadata.mjs.map +0 -1
- package/lib/module/metadata/get-options-metadata.mjs +0 -1
- package/lib/module/metadata/get-options-metadata.mjs.map +0 -1
- package/lib/module/metadata/get-subcommands-metadata.mjs +0 -1
- package/lib/module/metadata/get-subcommands-metadata.mjs.map +0 -1
- package/lib/module/parser/parse/parse.mjs +0 -1
- package/lib/module/parser/parse/parse.mjs.map +0 -1
- package/lib/module/parser/parse/parser-helpers.mjs +0 -1
- package/lib/module/parser/parse/parser-helpers.mjs.map +0 -1
- package/lib/module/parser/safe-parse.mjs +0 -1
- package/lib/module/parser/safe-parse.mjs.map +0 -1
- package/lib/module/parser/unsafe-parse.mjs +0 -1
- package/lib/module/parser/unsafe-parse.mjs.map +0 -1
- package/lib/module/parser/validate/validate-type.mjs +0 -1
- package/lib/module/parser/validate/validate-type.mjs.map +0 -1
- package/lib/module/parser/validate/validate.mjs +0 -1
- package/lib/module/parser/validate/validate.mjs.map +0 -1
- package/lib/module/utilities.mjs +0 -1
- package/lib/module/utilities.mjs.map +0 -1
- package/lib/module/zod-utilities.mjs +0 -1
- package/lib/module/zod-utilities.mjs.map +0 -1
- package/lib/typescript/help-message/format-cli.d.ts +0 -6
- package/lib/typescript/help-message/format-cli.d.ts.map +0 -1
- package/lib/typescript/metadata/get-arguments-metadata.d.ts +0 -4
- package/lib/typescript/metadata/get-arguments-metadata.d.ts.map +0 -1
- package/lib/typescript/metadata/get-cli-metadata.d.ts +0 -4
- package/lib/typescript/metadata/get-cli-metadata.d.ts.map +0 -1
- package/lib/typescript/metadata/get-options-metadata.d.ts +0 -4
- package/lib/typescript/metadata/get-options-metadata.d.ts.map +0 -1
- package/lib/typescript/metadata/get-subcommands-metadata.d.ts +0 -4
- package/lib/typescript/metadata/get-subcommands-metadata.d.ts.map +0 -1
- package/lib/typescript/metadata/metadata-types.d.ts +0 -80
- package/lib/typescript/metadata/metadata-types.d.ts.map +0 -1
- package/lib/typescript/parser/parse/parse-types.d.ts +0 -85
- package/lib/typescript/parser/parse/parse-types.d.ts.map +0 -1
- package/lib/typescript/parser/parse/parse.d.ts +0 -4
- package/lib/typescript/parser/parse/parse.d.ts.map +0 -1
- package/lib/typescript/parser/parse/parser-helpers.d.ts.map +0 -1
- package/lib/typescript/parser/safe-parse.d.ts +0 -4
- package/lib/typescript/parser/safe-parse.d.ts.map +0 -1
- package/lib/typescript/parser/unsafe-parse.d.ts +0 -4
- package/lib/typescript/parser/unsafe-parse.d.ts.map +0 -1
- package/lib/typescript/parser/validate/validate-type.d.ts +0 -23
- package/lib/typescript/parser/validate/validate-type.d.ts.map +0 -1
- package/lib/typescript/parser/validate/validate.d.ts +0 -12
- package/lib/typescript/parser/validate/validate.d.ts.map +0 -1
- package/lib/typescript/types.d.ts +0 -294
- package/lib/typescript/types.d.ts.map +0 -1
- package/lib/typescript/zod-utilities.d.ts +0 -28
- package/lib/typescript/zod-utilities.d.ts.map +0 -1
- package/src/help-message/format-cli.ts +0 -141
- package/src/metadata/get-arguments-metadata.ts +0 -25
- package/src/metadata/get-cli-metadata.ts +0 -23
- package/src/metadata/get-options-metadata.ts +0 -35
- package/src/metadata/get-subcommands-metadata.ts +0 -32
- package/src/metadata/metadata-types.ts +0 -114
- package/src/parser/parse/parse-types.ts +0 -89
- package/src/parser/parse/parse.ts +0 -235
- package/src/parser/safe-parse.ts +0 -103
- package/src/parser/unsafe-parse.ts +0 -98
- package/src/parser/validate/validate-type.ts +0 -20
- package/src/parser/validate/validate.ts +0 -71
- package/src/types.ts +0 -365
- package/src/zod-utilities.ts +0 -214
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io-types.d.ts","sourceRoot":"","sources":["../../../src/types/io-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { SchemaType } from "./schema-types.ts";
|
|
2
|
+
interface MetadataBase {
|
|
3
|
+
/** Empty string if not provided */
|
|
4
|
+
description: string;
|
|
5
|
+
/** Empty string if not provided */
|
|
6
|
+
descriptionMarkdown: string;
|
|
7
|
+
/** Empty string if not provided */
|
|
8
|
+
example: string;
|
|
9
|
+
/** Whether the metadata is hidden from the documentation. */
|
|
10
|
+
hidden: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface CliMetadata extends Omit<MetadataBase, "hidden"> {
|
|
13
|
+
/** The name of the cli program. */
|
|
14
|
+
name: string;
|
|
15
|
+
/** Empty string if not provided */
|
|
16
|
+
usage: string;
|
|
17
|
+
/** Whether the cli program allows positionals arguments. */
|
|
18
|
+
allowPositionals: boolean;
|
|
19
|
+
/** Empty array if not provided */
|
|
20
|
+
options: OptionMetadata[];
|
|
21
|
+
/** Empty array if not provided */
|
|
22
|
+
arguments: ArgumentMetadata[];
|
|
23
|
+
/** Empty array if not provided */
|
|
24
|
+
subcommands: SubcommandMetadata[];
|
|
25
|
+
}
|
|
26
|
+
export interface SubcommandMetadata extends MetadataBase {
|
|
27
|
+
/** The subcommand name. */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Empty array if not provided */
|
|
30
|
+
aliases: string[];
|
|
31
|
+
/** Empty string if not provided */
|
|
32
|
+
placeholder: string;
|
|
33
|
+
/** Empty string if not provided */
|
|
34
|
+
usage: string;
|
|
35
|
+
/** Whether the subcommand allows positionals arguments. */
|
|
36
|
+
allowPositionals: boolean;
|
|
37
|
+
/** Empty array if not provided */
|
|
38
|
+
options: OptionMetadata[];
|
|
39
|
+
/** Empty array if not provided */
|
|
40
|
+
arguments: ArgumentMetadata[];
|
|
41
|
+
}
|
|
42
|
+
export interface OptionMetadata extends MetadataBase {
|
|
43
|
+
/** The option name. */
|
|
44
|
+
name: string;
|
|
45
|
+
/** The option name as argument. E.g. `--option-name` */
|
|
46
|
+
nameAsArg: string;
|
|
47
|
+
/** Empty array if not provided. */
|
|
48
|
+
aliases: string[];
|
|
49
|
+
/** Empty array if not provided. E.g. `[--alias-name, ...]` */
|
|
50
|
+
aliasesAsArgs: string[];
|
|
51
|
+
/** Empty string if not provided */
|
|
52
|
+
placeholder: string;
|
|
53
|
+
/** The default value of the option. */
|
|
54
|
+
defaultValue: unknown;
|
|
55
|
+
/** Empty string if not provided. */
|
|
56
|
+
defaultValueAsString: string;
|
|
57
|
+
/** Is optional. */
|
|
58
|
+
optional: boolean;
|
|
59
|
+
/** Standard Schema V1. */
|
|
60
|
+
schema: SchemaType;
|
|
61
|
+
}
|
|
62
|
+
export interface ArgumentMetadata extends MetadataBase {
|
|
63
|
+
/** The argument name. */
|
|
64
|
+
name: string;
|
|
65
|
+
/** The default value of the argument. */
|
|
66
|
+
defaultValue: unknown;
|
|
67
|
+
/** The default value of the argument as string. */
|
|
68
|
+
defaultValueAsString: string;
|
|
69
|
+
/** Is optional. */
|
|
70
|
+
optional: boolean;
|
|
71
|
+
/** Standard Schema V1. */
|
|
72
|
+
schema: SchemaType;
|
|
73
|
+
}
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=metadata-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-types.d.ts","sourceRoot":"","sources":["../../../src/types/metadata-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,YAAY;IACpB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAE5B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,6DAA6D;IAC7D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;IAC/D,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IAEd,4DAA4D;IAC5D,gBAAgB,EAAE,OAAO,CAAC;IAE1B,kCAAkC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,kCAAkC;IAClC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAE9B,kCAAkC;IAClC,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,gBAAgB,EAAE,OAAO,CAAC;IAE1B,kCAAkC;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAE1B,kCAAkC;IAClC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAElB,mCAAmC;IACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAC;IAEtB,oCAAoC;IACpC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,mBAAmB;IACnB,QAAQ,EAAE,OAAO,CAAC;IAElB,0BAA0B;IAC1B,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,yCAAyC;IACzC,YAAY,EAAE,OAAO,CAAC;IAEtB,mDAAmD;IACnD,oBAAoB,EAAE,MAAM,CAAC;IAE7B,mBAAmB;IACnB,QAAQ,EAAE,OAAO,CAAC;IAElB,0BAA0B;IAC1B,MAAM,EAAE,UAAU,CAAC;CACpB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
+
export type SchemaType<T = unknown> = StandardSchemaV1<T>;
|
|
3
|
+
export type InferSchemaInputType<T extends SchemaType> = StandardSchemaV1.InferInput<T>;
|
|
4
|
+
export type InferSchemaOutputType<T extends SchemaType> = StandardSchemaV1.InferOutput<T>;
|
|
5
|
+
export type SchemaResult<T = unknown> = StandardSchemaV1.Result<T>;
|
|
6
|
+
//# sourceMappingURL=schema-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-types.d.ts","sourceRoot":"","sources":["../../../src/types/schema-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAExF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,UAAU,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAE1F,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Cli, Subcommand } from "./definitions-types.ts";
|
|
2
|
+
import type { PrintHelpOptions } from "./help-message-types.ts";
|
|
3
|
+
import type { InferInputType, InputTypeWide, OutputType, OutputTypeWide } from "./io-types.ts";
|
|
4
|
+
type PrimitiveTypeNames = "string" | "number" | "boolean" | "object" | "unknown";
|
|
5
|
+
export type CoerceTypes = PrimitiveTypeNames | `${PrimitiveTypeNames}[]` | `set<${PrimitiveTypeNames}>` | (string & {});
|
|
6
|
+
export interface CoerceMethod<Value> {
|
|
7
|
+
(terminalInput: string): Value;
|
|
8
|
+
type?: CoerceTypes;
|
|
9
|
+
}
|
|
10
|
+
type GetSubcommandsNames<T extends Partial<Subcommand>> = T extends Cli ? T["subcommands"] extends infer S extends readonly [Subcommand, ...Subcommand[]] ? {
|
|
11
|
+
[Index in keyof S]: S[Index] extends {
|
|
12
|
+
name: string;
|
|
13
|
+
} ? S[Index]["name"] : never;
|
|
14
|
+
}[number] : never : never;
|
|
15
|
+
type Unsubscribe = () => void;
|
|
16
|
+
export interface AttachedMethods<T extends Cli | Subcommand> {
|
|
17
|
+
/**
|
|
18
|
+
* Add a handler to be called when the subcommand/cli is executed.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const unsubscribe = cli.onExecute(result => console.log(result));
|
|
22
|
+
*/
|
|
23
|
+
onExecute: (handler: (data: OutputType<[T]>) => void) => Unsubscribe;
|
|
24
|
+
execute: InferInputType<T> extends infer InputType ? undefined extends InputType ? (input?: InputType) => void : (input: InputType) => void : never;
|
|
25
|
+
/** **WARNING**: This will only be available after the CLI schema has been created */
|
|
26
|
+
generateCliHelpMessage?: (options?: PrintHelpOptions) => string;
|
|
27
|
+
/**
|
|
28
|
+
* **WARNING**: This will only be available after the CLI schema has been created
|
|
29
|
+
*
|
|
30
|
+
* @throws {Error} - When the subcommand is not found
|
|
31
|
+
*/
|
|
32
|
+
generateSubcommandHelpMessage?: (subcommandName: GetSubcommandsNames<T> | (string & {}), options?: PrintHelpOptions) => string;
|
|
33
|
+
}
|
|
34
|
+
export interface AttachedMethodsWide {
|
|
35
|
+
onExecute: (handler: (data: OutputTypeWide) => void) => Unsubscribe;
|
|
36
|
+
execute: (input?: InputTypeWide) => void;
|
|
37
|
+
generateCliHelpMessage?: (options?: PrintHelpOptions) => void;
|
|
38
|
+
/** @throws {Error} - When the subcommand is not found */
|
|
39
|
+
generateSubcommandHelpMessage?: (subcommandName: string, options?: PrintHelpOptions) => void;
|
|
40
|
+
}
|
|
41
|
+
export type CliOutputType<S extends Cli> = OutputType<[S]> | (S["subcommands"] extends readonly [Subcommand, ...Subcommand[]] ? OutputType<S["subcommands"]> : never);
|
|
42
|
+
export type CliParseResult<S extends Cli> = {
|
|
43
|
+
value: CliOutputType<S>;
|
|
44
|
+
error?: undefined;
|
|
45
|
+
} | {
|
|
46
|
+
value?: never;
|
|
47
|
+
error: Error;
|
|
48
|
+
};
|
|
49
|
+
export type CliParseResultWide = {
|
|
50
|
+
value: OutputTypeWide;
|
|
51
|
+
error?: undefined;
|
|
52
|
+
} | {
|
|
53
|
+
value?: never;
|
|
54
|
+
error: Error;
|
|
55
|
+
};
|
|
56
|
+
export interface ValidateMethods<S extends Cli> {
|
|
57
|
+
run(input: string | string[]): CliParseResult<S>;
|
|
58
|
+
runAsync(input: string | string[]): Promise<CliParseResult<S>>;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/F,KAAK,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,GAAG,kBAAkB,IAAI,GAAG,OAAO,kBAAkB,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAExH,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,CAAC,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/B,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,KAAK,mBAAmB,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,GACnE,CAAC,CAAC,aAAa,CAAC,SAAS,MAAM,CAAC,SAAS,SAAS,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,GAC7E;KAAG,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,GAC5F,KAAK,GACP,KAAK,CAAC;AAEV,KAAK,WAAW,GAAG,MAAM,IAAI,CAAC;AAE9B,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,GAAG,GAAG,UAAU;IACzD;;;;;OAKG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,WAAW,CAAC;IAGrE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,MAAM,SAAS,GAC9C,SAAS,SAAS,SAAS,GACzB,CAAC,KAAK,CAAC,EAAE,SAAS,KAAK,IAAI,GAC3B,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAC5B,KAAK,CAAC;IAEV,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAEhE;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,CAC9B,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EACtD,OAAO,CAAC,EAAE,gBAAgB,KACvB,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,KAAK,WAAW,CAAC;IACpE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,sBAAsB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9D,yDAAyD;IACzD,6BAA6B,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC9F;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,GAAG,IACnC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GACf,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,SAAS,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AAE7G,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,GAAG,IACpC;IAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAC9C;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpC,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,GAAG;IAC5C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CAChE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** `{ some props } & { other props }` => `{ some props, other props }` */
|
|
2
|
+
export type Prettify<T> = {
|
|
3
|
+
[K in keyof T]: T[K];
|
|
4
|
+
} & {};
|
|
5
|
+
/** Extract the undefined properties from an object */
|
|
6
|
+
export type UndefinedProperties<T> = {
|
|
7
|
+
[P in keyof T]-?: undefined extends T[P] ? P : never;
|
|
8
|
+
}[keyof T];
|
|
9
|
+
/** Make undefined properties optional? */
|
|
10
|
+
export type ToOptional<T> = Partial<Pick<T, UndefinedProperties<T>>> & Pick<T, Exclude<keyof T, UndefinedProperties<T>>>;
|
|
11
|
+
/** If every property in a record is optional, widen the type to `T | undefined`. */
|
|
12
|
+
export type AllowUndefinedIfOptional<T> = {
|
|
13
|
+
[K in keyof T]-?: object extends Pick<T, K> ? never : K;
|
|
14
|
+
}[keyof T] extends never ? T | undefined : T;
|
|
15
|
+
/** Widen literal and tuples */
|
|
16
|
+
export type Widen<T> = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends readonly (infer U)[] ? Widen<U>[] : T extends Set<infer U> ? Set<Widen<U>> : T;
|
|
17
|
+
//# sourceMappingURL=utilities-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilities-types.d.ts","sourceRoot":"","sources":["../../../src/types/utilities-types.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAExD,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvG,0CAA0C;AAC1C,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAClE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,oFAAoF;AACpF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACxD,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GACpB,CAAC,GAAG,SAAS,GACb,CAAC,CAAC;AAEN,+BAA+B;AAE/B,MAAM,MAAM,KAAK,CAAC,CAAC,IACjB,CAAC,SAAS,MAAM,GAAG,MAAM,GACzB,CAAC,SAAS,MAAM,GAAG,MAAM,GACzB,CAAC,SAAS,OAAO,GAAG,OAAO,GAC3B,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAC3C,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,CAAC,CAAC"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { Argument, Option, PreparedType } from "./types/definitions-types.ts";
|
|
2
|
+
import type { SubcommandMetadata } from "./types/metadata-types.ts";
|
|
3
|
+
import type { SchemaResult, SchemaType } from "./types/schema-types.ts";
|
|
4
|
+
import type { CoerceMethod } from "./types/types.ts";
|
|
5
|
+
/** @throws */
|
|
6
|
+
export declare function validateSync(schema: SchemaType, value?: unknown): SchemaResult;
|
|
7
|
+
export declare function defaultValueAndIsOptional(schema: SchemaType): {
|
|
8
|
+
defaultValue: unknown;
|
|
9
|
+
optional: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function PrepareType(schema: SchemaType, coerceHandler: CoerceMethod<unknown>): PreparedType;
|
|
12
|
+
export declare function prepareDefinitionTypes(definition: Record<string, Argument> | Record<string, Option> | undefined): void;
|
|
13
|
+
export declare function toKebabCase(input: string): string;
|
|
9
14
|
/**
|
|
10
15
|
* Converts a zero-based index into its human-readable ordinal form.
|
|
11
16
|
*
|
|
@@ -21,11 +26,20 @@ export declare function generateOrdinalSuffix(index: number): string;
|
|
|
21
26
|
export declare function ln(count: number): string;
|
|
22
27
|
/** Space */
|
|
23
28
|
export declare function indent(count: number): string;
|
|
24
|
-
/**
|
|
25
|
-
export declare function
|
|
29
|
+
/** Indents every line in the given text by the provided number of spaces. Empty lines are preserved. */
|
|
30
|
+
export declare function indentLines(text: string, spaces: number): string;
|
|
26
31
|
export declare function stringifyValue(value: unknown): string;
|
|
27
32
|
/** Insert text at the end of the first line */
|
|
28
33
|
export declare function insertAtEndOfFirstLine(string: string, insert: string): string;
|
|
29
34
|
/** Get the placeholder for a subcommand */
|
|
30
35
|
export declare function subcommandPlaceholder(metadata: SubcommandMetadata): string;
|
|
36
|
+
/** Parse a string into an argv (array of arguments) */
|
|
37
|
+
export declare function parseArgv(input: string): string[];
|
|
38
|
+
/**
|
|
39
|
+
* Escape HTML characters inside HTML tags in a Markdown string, but leave code blocks, inline code, and HTML comments
|
|
40
|
+
* unchanged.
|
|
41
|
+
*/
|
|
42
|
+
export declare function escapeHtmlTags(markdown: string): string;
|
|
43
|
+
export declare function stripAnsi(string: string): string;
|
|
44
|
+
export declare function findDuplicateStrings(values: readonly string[]): string[];
|
|
31
45
|
//# sourceMappingURL=utilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,cAAc;AACd,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAO9E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAQ1G;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAUlG;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,QAY/G;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2B3D;AAED,eAAe;AACf,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,UAE/B;AAED,YAAY;AACZ,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,UAGnC;AAED,wGAAwG;AACxG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAcrD;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAIpE;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAwB1E;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA4EjD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBvD;AAoBD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAcxE"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zod-args-parser",
|
|
3
|
-
"version": "2.0.0-
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "2.0.0-beta.1",
|
|
4
|
+
"description": "A TypeScript-first CLI argument parser with schema-based validation.",
|
|
5
5
|
"author": "Ahmed ALABSI <alabsi91@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -10,20 +10,21 @@
|
|
|
10
10
|
},
|
|
11
11
|
"type": "module",
|
|
12
12
|
"scripts": {
|
|
13
|
-
"dev": "tsx watch example/index.ts",
|
|
14
|
-
"build": "node scripts/build.
|
|
15
|
-
"test": "
|
|
13
|
+
"dev": "tsx --watch example/index.ts",
|
|
14
|
+
"build": "node scripts/build.ts",
|
|
15
|
+
"test": "node --test && echo Checking types... && tsgo --noEmit && echo Linting... && eslint --config eslint.config.js --fix",
|
|
16
16
|
"prepare": "npm run test && npm run build"
|
|
17
17
|
},
|
|
18
|
-
"types": "./lib/typescript/index.d.ts",
|
|
19
18
|
"exports": {
|
|
20
19
|
".": {
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
20
|
+
"types": "./lib/typescript/index.d.ts",
|
|
21
|
+
"browser": "./lib/esm/index.js",
|
|
22
|
+
"import": "./lib/mjs/index.mjs",
|
|
23
|
+
"require": "./lib/cjs/index.cjs"
|
|
25
24
|
}
|
|
26
25
|
},
|
|
26
|
+
"jsdelivr": "./lib/iife/index.js",
|
|
27
|
+
"unpkg": "./lib/iife/index.js",
|
|
27
28
|
"files": [
|
|
28
29
|
"lib",
|
|
29
30
|
"src"
|
|
@@ -33,32 +34,34 @@
|
|
|
33
34
|
"cli",
|
|
34
35
|
"arguments",
|
|
35
36
|
"parser",
|
|
37
|
+
"schema",
|
|
38
|
+
"validation",
|
|
36
39
|
"zod",
|
|
37
40
|
"typescript"
|
|
38
41
|
],
|
|
39
42
|
"devDependencies": {
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"@
|
|
43
|
-
"@
|
|
44
|
-
"@
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"eslint": "^9.38.0",
|
|
43
|
+
"@eslint/js": "^9.39.1",
|
|
44
|
+
"@eslint/markdown": "^7.5.1",
|
|
45
|
+
"@trivago/prettier-plugin-sort-imports": "^6.0.0",
|
|
46
|
+
"@types/node": "^24.10.0",
|
|
47
|
+
"@typescript/native-preview": "^7.0.0-dev.20251104.1",
|
|
48
|
+
"esbuild": "^0.27.0",
|
|
49
|
+
"eslint": "^9.39.1",
|
|
48
50
|
"eslint-config-prettier": "^10.1.8",
|
|
49
51
|
"eslint-plugin-prettier": "^5.5.4",
|
|
50
|
-
"eslint-plugin-unicorn": "^
|
|
52
|
+
"eslint-plugin-unicorn": "^62.0.0",
|
|
51
53
|
"glob": "^11.0.3",
|
|
52
|
-
"globals": "^16.
|
|
54
|
+
"globals": "^16.5.0",
|
|
53
55
|
"prettier": "^3.6.2",
|
|
54
|
-
"prettier-plugin-jsdoc": "^1.
|
|
55
|
-
"
|
|
56
|
+
"prettier-plugin-jsdoc": "^1.5.0",
|
|
57
|
+
"terser": "^5.44.1",
|
|
56
58
|
"typescript": "^5.9.3",
|
|
57
|
-
"typescript-eslint": "^8.46.
|
|
59
|
+
"typescript-eslint": "^8.46.4",
|
|
58
60
|
"zod": "^4.1.12"
|
|
59
61
|
},
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@standard-schema/spec": "^1.0.0",
|
|
64
|
+
"chalk": "^5.6.2",
|
|
65
|
+
"marked": "^17.0.0"
|
|
63
66
|
}
|
|
64
67
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { transformOptionToArgument } from "../
|
|
1
|
+
import { transformOptionToArgument } from "../parse/parser-utilities.ts";
|
|
2
2
|
|
|
3
|
-
import type { Cli
|
|
3
|
+
import type { Cli } from "../types/definitions-types.ts";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* - Generate bash autocomplete script for your CLI
|
|
@@ -10,15 +10,16 @@ import type { Cli, Subcommand } from "../types.js";
|
|
|
10
10
|
* - Add the following line: `source <generated script path>`
|
|
11
11
|
* - Save and reopen bash to take effect
|
|
12
12
|
*/
|
|
13
|
-
export function generateBashAutocompleteScript(
|
|
14
|
-
const
|
|
13
|
+
export function generateBashAutocompleteScript(cliDefinition: Cli): string {
|
|
14
|
+
const subcommands = cliDefinition.subcommands ?? [];
|
|
15
15
|
|
|
16
16
|
type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;
|
|
17
17
|
|
|
18
18
|
const mappedCommands: MappedCommands = {};
|
|
19
|
+
|
|
19
20
|
for (const subcommand of subcommands) {
|
|
20
21
|
mappedCommands[subcommand.name] = {
|
|
21
|
-
options: subcommand.options
|
|
22
|
+
options: subcommand.options ? Object.keys(subcommand.options).map(key => transformOptionToArgument(key)) : [],
|
|
22
23
|
aliases: subcommand.aliases ?? [],
|
|
23
24
|
};
|
|
24
25
|
}
|
|
@@ -30,15 +31,18 @@ export function generateBashAutocompleteScript(...parameters: [Cli, ...Subcomman
|
|
|
30
31
|
switchCase += " ;;\n";
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
if (
|
|
34
|
+
if (cliDefinition.options?.length) {
|
|
35
|
+
const optionsNames = cliDefinition.options
|
|
36
|
+
? Object.keys(cliDefinition.options).map(key => transformOptionToArgument(key))
|
|
37
|
+
: [];
|
|
34
38
|
switchCase += ` "-"*)\n`;
|
|
35
|
-
switchCase += ` opts="${
|
|
39
|
+
switchCase += ` opts="${optionsNames.join(" ")}"\n`;
|
|
36
40
|
switchCase += " ;;\n";
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
return `# Auto-generated by zod-args-parser
|
|
40
44
|
|
|
41
|
-
_${
|
|
45
|
+
_${cliDefinition.cliName}_autocomplete() {
|
|
42
46
|
local cur prev commands opts subcommand used_opts filtered_opts
|
|
43
47
|
|
|
44
48
|
cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
@@ -76,6 +80,6 @@ ${switchCase}
|
|
|
76
80
|
fi
|
|
77
81
|
}
|
|
78
82
|
|
|
79
|
-
complete -F _${
|
|
83
|
+
complete -F _${cliDefinition.cliName}_autocomplete ${cliDefinition.cliName}
|
|
80
84
|
`;
|
|
81
85
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { transformOptionToArgument } from "../
|
|
1
|
+
import { transformOptionToArgument } from "../parse/parser-utilities.ts";
|
|
2
2
|
|
|
3
|
-
import type { Cli
|
|
3
|
+
import type { Cli } from "../types/definitions-types.ts";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* - Generates a PowerShell autocomplete script for your CLI.
|
|
@@ -13,15 +13,17 @@ import type { Cli, Subcommand } from "../types.js";
|
|
|
13
13
|
* - Add the following line: `. "<generated script path>"`
|
|
14
14
|
* - Save and reopen powershell to take effect
|
|
15
15
|
*/
|
|
16
|
-
export function generatePowerShellAutocompleteScript(
|
|
17
|
-
const
|
|
16
|
+
export function generatePowerShellAutocompleteScript(cliDefinition: Cli): string {
|
|
17
|
+
const subcommands = cliDefinition.subcommands ?? [];
|
|
18
|
+
const meta = cliDefinition.meta ?? {};
|
|
18
19
|
|
|
19
20
|
type MappedCommands = Record<string, { options: string[]; aliases: string[] }>;
|
|
20
21
|
|
|
21
22
|
const mappedCommands: MappedCommands = {};
|
|
23
|
+
|
|
22
24
|
for (const subcommand of subcommands) {
|
|
23
25
|
mappedCommands[subcommand.name] = {
|
|
24
|
-
options: subcommand.options
|
|
26
|
+
options: subcommand.options ? Object.keys(subcommand.options).map(key => transformOptionToArgument(key)) : [],
|
|
25
27
|
aliases: subcommand.aliases ?? [],
|
|
26
28
|
};
|
|
27
29
|
}
|
|
@@ -29,7 +31,11 @@ export function generatePowerShellAutocompleteScript(...parameters: [Cli, ...Sub
|
|
|
29
31
|
const subcommandsString = Object.keys(mappedCommands)
|
|
30
32
|
.map(key => `'${key}'`)
|
|
31
33
|
.join(", ");
|
|
32
|
-
|
|
34
|
+
|
|
35
|
+
const optionsNames = cliDefinition.options
|
|
36
|
+
? Object.keys(cliDefinition.options).map(key => transformOptionToArgument(key))
|
|
37
|
+
: [];
|
|
38
|
+
const cliOptionsString = optionsNames.map(option => `'${option}'`).join(", ");
|
|
33
39
|
|
|
34
40
|
let switchCase = "switch ($subcommand) {\n";
|
|
35
41
|
for (const [key, { options, aliases }] of Object.entries(mappedCommands)) {
|
|
@@ -41,37 +47,39 @@ export function generatePowerShellAutocompleteScript(...parameters: [Cli, ...Sub
|
|
|
41
47
|
}
|
|
42
48
|
switchCase += ` default { @(${cliOptionsString}) }\n }`;
|
|
43
49
|
|
|
50
|
+
const description = meta.description ?? meta.descriptionMarkdown;
|
|
51
|
+
|
|
44
52
|
let functionInfo = "";
|
|
45
|
-
if (
|
|
46
|
-
functionInfo = `<#\n.DESCRIPTION\n${
|
|
53
|
+
if (description) {
|
|
54
|
+
functionInfo = `<#\n.DESCRIPTION\n${description}\n${meta.example ? `\n.EXAMPLE\n${meta.example}` : ""}\n#>`;
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
return `# Auto-generated by zod-args-parser
|
|
50
58
|
|
|
51
59
|
${functionInfo}
|
|
52
|
-
function ${
|
|
60
|
+
function ${cliDefinition.cliName} {
|
|
53
61
|
param(
|
|
54
62
|
[Parameter(Position = 0, Mandatory = $false)]
|
|
55
63
|
[string]$subcommand,
|
|
56
64
|
[Parameter(Position = 1, ValueFromRemainingArguments = $true)]
|
|
57
65
|
[string[]]$arguments
|
|
58
66
|
)
|
|
59
|
-
$scriptPath = (Get-Command '${
|
|
67
|
+
$scriptPath = (Get-Command '${cliDefinition.cliName}.ps1').Source
|
|
60
68
|
if ($scriptPath) {
|
|
61
69
|
$argumentList = @($subcommand) + ($arguments | Where-Object { $_ -notin '--', '--%' }) | Where-Object { $_ -ne '' }
|
|
62
70
|
& $scriptPath @argumentList
|
|
63
71
|
return
|
|
64
72
|
}
|
|
65
|
-
Write-Error "Could not find '${
|
|
73
|
+
Write-Error "Could not find '${cliDefinition.cliName}.ps1' script"
|
|
66
74
|
}
|
|
67
75
|
|
|
68
|
-
Register-ArgumentCompleter -CommandName '${
|
|
76
|
+
Register-ArgumentCompleter -CommandName '${cliDefinition.cliName}' -ParameterName 'subcommand' -ScriptBlock {
|
|
69
77
|
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
|
|
70
78
|
$subcommands = @(${subcommandsString}${subcommandsString && cliOptionsString ? ", " : ""}${cliOptionsString})
|
|
71
79
|
$subcommands | Where-Object { $_ -like "$wordToComplete*" }
|
|
72
80
|
}
|
|
73
81
|
|
|
74
|
-
Register-ArgumentCompleter -CommandName '${
|
|
82
|
+
Register-ArgumentCompleter -CommandName '${cliDefinition.cliName}' -ParameterName 'arguments' -ScriptBlock {
|
|
75
83
|
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
|
|
76
84
|
$subcommand = $commandAst.CommandElements[1].Value
|
|
77
85
|
$arguments = ${switchCase}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { transformOptionToArgument } from "../
|
|
1
|
+
import { transformOptionToArgument } from "../parse/parser-utilities.ts";
|
|
2
2
|
|
|
3
|
-
import type { Cli,
|
|
3
|
+
import type { Cli, Subcommand } from "../types/definitions-types.ts";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* - Generates a ZSH autocomplete script for your CLI.
|
|
@@ -10,34 +10,38 @@ import type { Cli, Option, Subcommand } from "../types.js";
|
|
|
10
10
|
* - Add the following line: `source <generated script path>`
|
|
11
11
|
* - Save and reopen zsh to take effect
|
|
12
12
|
*/
|
|
13
|
-
export function generateZshAutocompleteScript(
|
|
14
|
-
const
|
|
13
|
+
export function generateZshAutocompleteScript(cliDefinition: Cli): string {
|
|
14
|
+
const subcommands = cliDefinition.subcommands ?? [];
|
|
15
15
|
|
|
16
|
-
const genArguments = (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
const genArguments = (command: Subcommand) => {
|
|
17
|
+
const optionsNameDesc = command.options
|
|
18
|
+
? Object.entries(command.options).map(
|
|
19
|
+
([name, value]) => `'${transformOptionToArgument(name)}[${value.meta?.description ?? ""}]'`,
|
|
20
|
+
)
|
|
21
|
+
: [];
|
|
22
|
+
|
|
23
|
+
return optionsNameDesc.join(" \\\n ");
|
|
20
24
|
};
|
|
21
25
|
|
|
22
26
|
const genSubCommand = (subcommand: Subcommand) => {
|
|
23
27
|
const options = subcommand.options;
|
|
24
|
-
if (!options
|
|
25
|
-
return `${subcommand.name})
|
|
26
|
-
_arguments
|
|
27
|
-
${genArguments(
|
|
28
|
-
'*: :_files'
|
|
28
|
+
if (!options) return "";
|
|
29
|
+
return String.raw`${subcommand.name})
|
|
30
|
+
_arguments \
|
|
31
|
+
${genArguments(subcommand)} \
|
|
32
|
+
'*: :_files' \
|
|
29
33
|
&& ret=0
|
|
30
34
|
;;`;
|
|
31
35
|
};
|
|
32
36
|
|
|
33
|
-
return `# Auto-generated by zod-args-parser
|
|
37
|
+
return String.raw`# Auto-generated by zod-args-parser
|
|
34
38
|
|
|
35
|
-
_${
|
|
39
|
+
_${cliDefinition.cliName}_autocomplete() {
|
|
36
40
|
local ret=1
|
|
37
41
|
|
|
38
|
-
_arguments -C
|
|
39
|
-
'1: :_${
|
|
40
|
-
'*:: :->subcmds'
|
|
42
|
+
_arguments -C \
|
|
43
|
+
'1: :_${cliDefinition.cliName}_commands' \
|
|
44
|
+
'*:: :->subcmds' \
|
|
41
45
|
&& ret=0
|
|
42
46
|
|
|
43
47
|
case $state in
|
|
@@ -48,8 +52,8 @@ _${cli.cliName}_autocomplete() {
|
|
|
48
52
|
.filter(Boolean)
|
|
49
53
|
.join("\n ")}
|
|
50
54
|
*)
|
|
51
|
-
_arguments
|
|
52
|
-
'*: :_files'
|
|
55
|
+
_arguments \
|
|
56
|
+
'*: :_files' \
|
|
53
57
|
&& ret=0
|
|
54
58
|
;;
|
|
55
59
|
esac
|
|
@@ -59,14 +63,14 @@ _${cli.cliName}_autocomplete() {
|
|
|
59
63
|
return $ret
|
|
60
64
|
}
|
|
61
65
|
|
|
62
|
-
_${
|
|
66
|
+
_${cliDefinition.cliName}_commands() {
|
|
63
67
|
local -a commands=(
|
|
64
|
-
${subcommands.map(subcommand => `"${subcommand.name}:${subcommand.description ?? ""}"`).join("\n ")}
|
|
68
|
+
${subcommands.map(subcommand => `"${subcommand.name}:${subcommand.meta?.description ?? ""}"`).join("\n ")}
|
|
65
69
|
)
|
|
66
70
|
|
|
67
71
|
_describe -t subcommands 'subcommand' commands
|
|
68
72
|
}
|
|
69
73
|
|
|
70
|
-
compdef _${
|
|
74
|
+
compdef _${cliDefinition.cliName}_autocomplete ${cliDefinition.cliName}
|
|
71
75
|
`;
|
|
72
76
|
}
|