zod-args-parser 1.2.8 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 -22
- package/lib/typescript/parser/validate/validate-type.d.ts.map +0 -1
- package/lib/typescript/parser/validate/validate.d.ts +0 -11
- 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 -230
- package/src/parser/safe-parse.ts +0 -103
- package/src/parser/unsafe-parse.ts +0 -98
- package/src/parser/validate/validate-type.ts +0 -21
- package/src/parser/validate/validate.ts +0 -66
- package/src/types.ts +0 -365
- package/src/zod-utilities.ts +0 -214
|
@@ -1,60 +1,93 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import c from "chalk";
|
|
2
|
+
|
|
3
|
+
import type { HelpMessageStyleImpl } from "../types/help-message-types.ts";
|
|
4
|
+
|
|
5
|
+
export class HelpMessageStyle implements HelpMessageStyleImpl {
|
|
6
|
+
static noColor = (...text: unknown[]) => text.join(" ");
|
|
7
|
+
|
|
8
|
+
title = HelpMessageStyle.noColor;
|
|
9
|
+
description = HelpMessageStyle.noColor;
|
|
10
|
+
default = HelpMessageStyle.noColor;
|
|
11
|
+
optional = HelpMessageStyle.noColor;
|
|
12
|
+
exampleTitle = HelpMessageStyle.noColor;
|
|
13
|
+
example = HelpMessageStyle.noColor;
|
|
14
|
+
command = HelpMessageStyle.noColor;
|
|
15
|
+
option = HelpMessageStyle.noColor;
|
|
16
|
+
argument = HelpMessageStyle.noColor;
|
|
17
|
+
placeholder = HelpMessageStyle.noColor;
|
|
18
|
+
punctuation = HelpMessageStyle.noColor;
|
|
19
|
+
|
|
20
|
+
constructor(style: Partial<HelpMessageStyleImpl>, baseStyle?: HelpMessageStyleImpl) {
|
|
21
|
+
if (baseStyle) {
|
|
22
|
+
Object.assign(this, baseStyle);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
Object.assign(this, style);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
3
28
|
|
|
4
29
|
export const helpMessageStyles = Object.freeze({
|
|
5
|
-
default: {
|
|
6
|
-
title:
|
|
7
|
-
description:
|
|
8
|
-
default:
|
|
9
|
-
optional:
|
|
10
|
-
exampleTitle:
|
|
11
|
-
example:
|
|
12
|
-
command:
|
|
13
|
-
option:
|
|
14
|
-
argument:
|
|
15
|
-
placeholder:
|
|
16
|
-
punctuation:
|
|
17
|
-
},
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
30
|
+
default: new HelpMessageStyle({
|
|
31
|
+
title: c.bold.blue,
|
|
32
|
+
description: c.white,
|
|
33
|
+
default: c.dim.italic,
|
|
34
|
+
optional: c.dim.italic,
|
|
35
|
+
exampleTitle: c.yellow,
|
|
36
|
+
example: c.dim,
|
|
37
|
+
command: c.yellow,
|
|
38
|
+
option: c.cyan,
|
|
39
|
+
argument: c.green,
|
|
40
|
+
placeholder: c.hex("#FF9800"),
|
|
41
|
+
punctuation: c.white.dim,
|
|
42
|
+
}),
|
|
43
|
+
|
|
44
|
+
dracula: new HelpMessageStyle({
|
|
45
|
+
title: c.bold.hex("#BD93F9"),
|
|
46
|
+
description: c.hex("#F8F8F2"),
|
|
47
|
+
default: c.italic.hex("#6272A4"),
|
|
48
|
+
optional: c.italic.hex("#6272A4"),
|
|
49
|
+
exampleTitle: c.hex("#FFB86C"),
|
|
50
|
+
example: c.hex("#6272A4"),
|
|
51
|
+
command: c.hex("#50FA7B"),
|
|
52
|
+
option: c.hex("#8BE9FD"),
|
|
53
|
+
argument: c.hex("#FF79C6"),
|
|
54
|
+
placeholder: c.hex("#F1FA8C"),
|
|
55
|
+
punctuation: c.hex("#6272A4"),
|
|
56
|
+
}),
|
|
57
|
+
|
|
58
|
+
solarizedDark: new HelpMessageStyle({
|
|
59
|
+
title: c.bold.hex("#268BD2"),
|
|
60
|
+
description: c.hex("#93A1A1"),
|
|
61
|
+
default: c.italic.hex("#586E75"),
|
|
62
|
+
optional: c.italic.hex("#586E75"),
|
|
63
|
+
exampleTitle: c.hex("#B58900"),
|
|
64
|
+
example: c.hex("#586E75"),
|
|
65
|
+
command: c.hex("#2AA198"),
|
|
66
|
+
option: c.hex("#268BD2"),
|
|
67
|
+
argument: c.hex("#859900"),
|
|
68
|
+
placeholder: c.hex("#CB4B16"),
|
|
69
|
+
punctuation: c.hex("#657B83"),
|
|
70
|
+
}),
|
|
71
|
+
|
|
72
|
+
nord: new HelpMessageStyle({
|
|
73
|
+
title: c.bold.hex("#81A1C1"),
|
|
74
|
+
description: c.hex("#D8DEE9"),
|
|
75
|
+
default: c.italic.hex("#4C566A"),
|
|
76
|
+
optional: c.italic.hex("#4C566A"),
|
|
77
|
+
exampleTitle: c.hex("#EBCB8B"),
|
|
78
|
+
example: c.hex("#4C566A"),
|
|
79
|
+
command: c.hex("#A3BE8C"),
|
|
80
|
+
option: c.hex("#88C0D0"),
|
|
81
|
+
argument: c.hex("#BF616A"),
|
|
82
|
+
placeholder: c.hex("#D08770"),
|
|
83
|
+
punctuation: c.hex("#4C566A"),
|
|
84
|
+
}),
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* - Wrap the output in a <pre> element to preserve whitespace.
|
|
88
|
+
* - If using `descriptionMarkdown`, set `markdownRenderer` to `html` instead of `terminal`.
|
|
89
|
+
*/
|
|
90
|
+
html: new HelpMessageStyle({
|
|
58
91
|
title: (...string) => `<span style="color: #89dceb; font-weight: bold;">${escapeHTML(string.join(" "))}</span>`,
|
|
59
92
|
description: (...string) => `<span style="color: #cdd6e8;">${escapeHTML(string.join(" "))}</span>`,
|
|
60
93
|
default: (...string) => `<span style="color: #6c7086; font-style: italic;">${escapeHTML(string.join(" "))}</span>`,
|
|
@@ -66,54 +99,66 @@ export const helpMessageStyles = Object.freeze({
|
|
|
66
99
|
argument: (...string) => `<span style="color: #00ff00;">${escapeHTML(string.join(" "))}</span>`,
|
|
67
100
|
placeholder: (...string) => `<span style="color: #db9518;">${escapeHTML(string.join(" "))}</span>`,
|
|
68
101
|
punctuation: (...string) => `<span style="color: #6c7086;">${escapeHTML(string.join(" "))}</span>`,
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
102
|
+
}),
|
|
103
|
+
|
|
104
|
+
gruvboxDark: new HelpMessageStyle({
|
|
105
|
+
title: c.bold.hex("#FABD2F"),
|
|
106
|
+
description: c.hex("#EBDBB2"),
|
|
107
|
+
default: c.italic.hex("#928374"),
|
|
108
|
+
optional: c.italic.hex("#928374"),
|
|
109
|
+
exampleTitle: c.hex("#FE8019"),
|
|
110
|
+
example: c.hex("#928374"),
|
|
111
|
+
command: c.hex("#B8BB26"),
|
|
112
|
+
option: c.hex("#83A598"),
|
|
113
|
+
argument: c.hex("#D3869B"),
|
|
114
|
+
placeholder: c.hex("#FB4934"),
|
|
115
|
+
punctuation: c.hex("#928374"),
|
|
116
|
+
}),
|
|
117
|
+
|
|
118
|
+
monokai: new HelpMessageStyle({
|
|
119
|
+
title: c.bold.hex("#AE81FF"),
|
|
120
|
+
description: c.hex("#F8F8F2"),
|
|
121
|
+
default: c.italic.hex("#75715E"),
|
|
122
|
+
optional: c.italic.hex("#75715E"),
|
|
123
|
+
exampleTitle: c.hex("#FD971F"),
|
|
124
|
+
example: c.hex("#75715E"),
|
|
125
|
+
command: c.hex("#A6E22E"),
|
|
126
|
+
option: c.hex("#66D9EF"),
|
|
127
|
+
argument: c.hex("#F92672"),
|
|
128
|
+
placeholder: c.hex("#E6DB74"),
|
|
129
|
+
punctuation: c.hex("#75715E"),
|
|
130
|
+
}),
|
|
131
|
+
|
|
132
|
+
oneDark: new HelpMessageStyle({
|
|
133
|
+
title: c.bold.hex("#61AFEF"),
|
|
134
|
+
description: c.hex("#ABB2BF"),
|
|
135
|
+
default: c.italic.hex("#5C6370"),
|
|
136
|
+
optional: c.italic.hex("#5C6370"),
|
|
137
|
+
exampleTitle: c.hex("#E5C07B"),
|
|
138
|
+
example: c.hex("#5C6370"),
|
|
139
|
+
command: c.hex("#98C379"),
|
|
140
|
+
option: c.hex("#56B6C2"),
|
|
141
|
+
argument: c.hex("#E06C75"),
|
|
142
|
+
placeholder: c.hex("#C678DD"),
|
|
143
|
+
punctuation: c.hex("#5C6370"),
|
|
144
|
+
}),
|
|
145
|
+
|
|
146
|
+
catppuccin: new HelpMessageStyle({
|
|
147
|
+
title: c.bold.hex("#89B4FA"),
|
|
148
|
+
description: c.hex("#CDD6F4"),
|
|
149
|
+
default: c.italic.hex("#6C7086"),
|
|
150
|
+
optional: c.italic.hex("#6C7086"),
|
|
151
|
+
exampleTitle: c.hex("#F9E2AF"),
|
|
152
|
+
example: c.hex("#6C7086"),
|
|
153
|
+
command: c.hex("#A6E3A1"),
|
|
154
|
+
option: c.hex("#94E2D5"),
|
|
155
|
+
argument: c.hex("#F38BA8"),
|
|
156
|
+
placeholder: c.hex("#FAB387"),
|
|
157
|
+
punctuation: c.hex("#585B70"),
|
|
158
|
+
}),
|
|
159
|
+
|
|
160
|
+
noColors: new HelpMessageStyle({}),
|
|
161
|
+
});
|
|
117
162
|
|
|
118
163
|
function escapeHTML(string: string) {
|
|
119
164
|
return string.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import c from "chalk";
|
|
2
|
+
import { Marked, type RendererObject, type Tokens, marked } from "marked";
|
|
3
|
+
|
|
4
|
+
import type { ColorFunctionType } from "../types/help-message-types.ts";
|
|
5
|
+
|
|
6
|
+
const markdownStyle: Record<string, ColorFunctionType> = {
|
|
7
|
+
bold: c.bold,
|
|
8
|
+
italic: c.italic,
|
|
9
|
+
boldItalic: c.bold.italic,
|
|
10
|
+
code: (...string) => c.bgHex("#333333").whiteBright(` ${string.join(" ")} `),
|
|
11
|
+
strikethrough: c.strikethrough,
|
|
12
|
+
link: c.underline,
|
|
13
|
+
listBullet: c.whiteBright,
|
|
14
|
+
hr: c.dim,
|
|
15
|
+
blockquote: (...string) => c.dim.bold("┃ ") + c.dim(string.join("").replace(/\s\s\n/g, " \n" + c.bold("┃ "))),
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
function styleCode(text: string) {
|
|
19
|
+
const lines = text.split("\n");
|
|
20
|
+
const width = Math.max(...lines.map(l => l.length));
|
|
21
|
+
const top = "┌" + "─".repeat(width + 2) + "┐";
|
|
22
|
+
const bottom = "└" + "─".repeat(width + 2) + "┘";
|
|
23
|
+
|
|
24
|
+
const body = lines.map(l => c.dim("│ ") + c.dim(l).padEnd(width) + c.dim(" │")).join("\n");
|
|
25
|
+
|
|
26
|
+
return [c.dim(top), body, c.dim(bottom)].join("\n");
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const bullets = ["•", "◦", "▪"];
|
|
30
|
+
|
|
31
|
+
const terminalRenderer: RendererObject<string, string> = {
|
|
32
|
+
list(token) {
|
|
33
|
+
// figure out depth
|
|
34
|
+
let depth = 0;
|
|
35
|
+
let current = token as Tokens.List & { parent: Tokens.List };
|
|
36
|
+
while (current.parent) {
|
|
37
|
+
depth++;
|
|
38
|
+
current = current.parent as Tokens.List & { parent: Tokens.List };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// for ordered lists
|
|
42
|
+
const start = token.ordered && token.start ? token.start : undefined;
|
|
43
|
+
|
|
44
|
+
const items = token.items.map(item => this.listitem(Object.assign(item, { depth, parent: token, start })));
|
|
45
|
+
return "\n" + items.join("\n");
|
|
46
|
+
},
|
|
47
|
+
listitem(item) {
|
|
48
|
+
let string = "";
|
|
49
|
+
|
|
50
|
+
const itemCast = item as Tokens.ListItem & { parent: Tokens.List; depth: number; start?: number };
|
|
51
|
+
|
|
52
|
+
for (const token of item.tokens) {
|
|
53
|
+
if (token.type === "list") {
|
|
54
|
+
string += this.parser.parse([Object.assign(token, { parent: itemCast.parent })]);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if ("tokens" in token && Array.isArray(token.tokens)) {
|
|
58
|
+
string += this.parser.parseInline(token.tokens);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
let prefix = " ".repeat(itemCast.depth * 2);
|
|
63
|
+
|
|
64
|
+
// Task
|
|
65
|
+
if (itemCast.task) {
|
|
66
|
+
prefix += itemCast.checked ? "☑ " : "☐ ";
|
|
67
|
+
return markdownStyle.listBullet(prefix) + string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Ordered
|
|
71
|
+
if (itemCast.start !== undefined) {
|
|
72
|
+
const findItemIndex = itemCast.parent.items.indexOf(itemCast);
|
|
73
|
+
prefix += itemCast.start + findItemIndex + ". ";
|
|
74
|
+
return markdownStyle.listBullet(prefix) + string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Unordered
|
|
78
|
+
prefix += bullets[itemCast.depth % bullets.length] + " ";
|
|
79
|
+
return markdownStyle.listBullet(prefix) + string;
|
|
80
|
+
},
|
|
81
|
+
link(token) {
|
|
82
|
+
return markdownStyle.link(token.text + " " + "<" + token.href + ">");
|
|
83
|
+
},
|
|
84
|
+
checkbox({ checked }) {
|
|
85
|
+
return checked.toString();
|
|
86
|
+
},
|
|
87
|
+
code(token) {
|
|
88
|
+
return styleCode(token.text);
|
|
89
|
+
},
|
|
90
|
+
codespan({ text }) {
|
|
91
|
+
return markdownStyle.code(text);
|
|
92
|
+
},
|
|
93
|
+
def({ raw }) {
|
|
94
|
+
return raw;
|
|
95
|
+
},
|
|
96
|
+
del({ text }) {
|
|
97
|
+
return markdownStyle.strikethrough(text);
|
|
98
|
+
},
|
|
99
|
+
paragraph({ tokens }) {
|
|
100
|
+
return this.parser.parseInline(tokens);
|
|
101
|
+
},
|
|
102
|
+
blockquote({ text }) {
|
|
103
|
+
return markdownStyle.blockquote(text);
|
|
104
|
+
},
|
|
105
|
+
strong({ tokens }) {
|
|
106
|
+
return markdownStyle.bold(this.parser.parseInline(tokens));
|
|
107
|
+
},
|
|
108
|
+
em({ tokens }) {
|
|
109
|
+
return markdownStyle.italic(this.parser.parseInline(tokens));
|
|
110
|
+
},
|
|
111
|
+
heading({ text }) {
|
|
112
|
+
return markdownStyle.bold(text) + "\n";
|
|
113
|
+
},
|
|
114
|
+
text(token) {
|
|
115
|
+
return token.raw;
|
|
116
|
+
},
|
|
117
|
+
space(token) {
|
|
118
|
+
return token.raw.replace(/\n+/g, "\n");
|
|
119
|
+
},
|
|
120
|
+
hr() {
|
|
121
|
+
return markdownStyle.hr("─".repeat(80));
|
|
122
|
+
},
|
|
123
|
+
br() {
|
|
124
|
+
return "\n";
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
const terminalMarked = new Marked();
|
|
129
|
+
terminalMarked.use({ renderer: terminalRenderer });
|
|
130
|
+
|
|
131
|
+
export function terminalMarkdown(
|
|
132
|
+
text: string,
|
|
133
|
+
renderer: "terminal" | "html" = "terminal",
|
|
134
|
+
ansiTextColor: ColorFunctionType = (...string) => string.join(" "),
|
|
135
|
+
): string {
|
|
136
|
+
if (!text) {
|
|
137
|
+
return "";
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (renderer === "terminal") {
|
|
141
|
+
return ansiTextColor(terminalMarked.parse(text) as string);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const htmlString = marked.parse(text) as string;
|
|
145
|
+
|
|
146
|
+
return `<span class="_markdown">${htmlString.trim()}</span>`;
|
|
147
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,97 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} from "./
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
export
|
|
29
|
-
const setAction = (action: (data: any) => any) => {
|
|
30
|
-
if (typeof input === "string") return;
|
|
31
|
-
input.action = action;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const setPreValidationHook = (hook: (context: any) => any) => {
|
|
35
|
-
if (typeof input === "string") return;
|
|
36
|
-
input.preValidation = hook;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
return Object.assign(input, { setAction, setPreValidationHook }) as Prettify<typeof input & ActionsFunctions<T>>;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export function createSubcommand<const T extends Subcommand>(input: CheckCliSubcommandInput<T>) {
|
|
43
|
-
const setAction = (action: (data: any) => any) => {
|
|
44
|
-
if (typeof input === "string") return;
|
|
45
|
-
input.action = action as T["action"];
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const setPreValidationHook = (hook: (context: any) => any) => {
|
|
49
|
-
if (typeof input === "string") return;
|
|
50
|
-
input.preValidation = hook;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
return Object.assign(input, { setAction, setPreValidationHook }) as Prettify<typeof input & ActionsFunctions<T>>;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/** - Insures that there are no duplicated options */
|
|
57
|
-
type CheckOptionsInput<T extends Option[]> =
|
|
58
|
-
CheckDuplicatedOptions<{ options: T }> extends infer Error extends string ? Error : T;
|
|
59
|
-
|
|
60
|
-
export function createOptions<const T extends [Option, ...Option[]]>(options: CheckOptionsInput<T>) {
|
|
61
|
-
return options;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/** - Insures that only the last argument is optional */
|
|
65
|
-
type CheckArgumentsInput<T extends Argument[]> =
|
|
66
|
-
CheckArgumentsOptional<{ arguments: T }> extends infer Error extends string ? Error : T;
|
|
67
|
-
|
|
68
|
-
export function createArguments<const T extends [Argument, ...Argument[]]>(arguments_: CheckArgumentsInput<T>) {
|
|
69
|
-
return arguments_;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export {
|
|
73
|
-
formatCliHelpMessage as formatCliHelpMsg,
|
|
74
|
-
formatSubcommandHelpMessage as formatSubcommandHelpMsg,
|
|
75
|
-
printCliHelp,
|
|
76
|
-
printSubcommandHelp,
|
|
77
|
-
} from "./help-message/format-cli.js";
|
|
78
|
-
export { helpMessageStyles } from "./help-message/styles.js";
|
|
79
|
-
|
|
80
|
-
export { safeParse, safeParseAsync } from "./parser/safe-parse.js";
|
|
81
|
-
export { unsafeParse as parse, unsafeParseAsync as parseAsync } from "./parser/unsafe-parse.js";
|
|
82
|
-
|
|
83
|
-
export { isOptionalSchema, schemaDefaultValue, stringToArray, stringToSet } from "./zod-utilities.js";
|
|
84
|
-
|
|
85
|
-
export { generateBashAutocompleteScript } from "./autocomplete-scripts/bash-autocomplete-script.js";
|
|
86
|
-
export { generatePowerShellAutocompleteScript } from "./autocomplete-scripts/powershell-autocomplete-script.js";
|
|
87
|
-
export { generateZshAutocompleteScript } from "./autocomplete-scripts/zsh-autocomplete-script.js";
|
|
88
|
-
|
|
89
|
-
export { getArgumentsMetadata } from "./metadata/get-arguments-metadata.js";
|
|
90
|
-
export { getCliMetadata } from "./metadata/get-cli-metadata.js";
|
|
91
|
-
export { getOptionsMetadata } from "./metadata/get-options-metadata.js";
|
|
92
|
-
export { getSubcommandsMetadata } from "./metadata/get-subcommands-metadata.js";
|
|
93
|
-
|
|
94
|
-
export { generateMarkdown } from "./markdown/generate-markdown.js";
|
|
95
|
-
|
|
96
|
-
export type * from "./metadata/metadata-types.js";
|
|
97
|
-
export type * from "./types.js";
|
|
1
|
+
export { generateCliHelpMessage } from "./help-message/generate-for-cli.ts";
|
|
2
|
+
export { generateSubcommandHelpMessage } from "./help-message/generate-for-subcommand.ts";
|
|
3
|
+
export { printCliHelp, printSubcommandHelp } from "./help-message/print-help.ts";
|
|
4
|
+
export { HelpMessageStyle, helpMessageStyles } from "./help-message/styles.ts";
|
|
5
|
+
|
|
6
|
+
export { generateBashAutocompleteScript } from "./autocomplete-scripts/bash-autocomplete-script.ts";
|
|
7
|
+
export { generatePowerShellAutocompleteScript } from "./autocomplete-scripts/powershell-autocomplete-script.ts";
|
|
8
|
+
export { generateZshAutocompleteScript } from "./autocomplete-scripts/zsh-autocomplete-script.ts";
|
|
9
|
+
export { generateMarkdown } from "./markdown/generate-markdown.ts";
|
|
10
|
+
|
|
11
|
+
export { getArgumentsMetadata } from "./metadata/arguments-metadata.ts";
|
|
12
|
+
export { getCliMetadata } from "./metadata/cli-metadata.ts";
|
|
13
|
+
export { getOptionsMetadata } from "./metadata/options-metadata.ts";
|
|
14
|
+
export { getSubcommandsMetadata } from "./metadata/subcommands-metadata.ts";
|
|
15
|
+
|
|
16
|
+
export { defineArguments } from "./definitions/define-arguments.ts";
|
|
17
|
+
export { defineCLI } from "./definitions/define-cli.ts";
|
|
18
|
+
export { defineOptions } from "./definitions/define-options.ts";
|
|
19
|
+
export { defineSubcommand } from "./definitions/define-subcommand.ts";
|
|
20
|
+
|
|
21
|
+
export { coerce } from "./coerce/coerce-methods.ts";
|
|
22
|
+
|
|
23
|
+
export type * from "./types/context-types.ts";
|
|
24
|
+
export type * from "./types/definitions-types.ts";
|
|
25
|
+
export type * from "./types/help-message-types.ts";
|
|
26
|
+
export type * from "./types/io-types.ts";
|
|
27
|
+
export type * from "./types/metadata-types.ts";
|
|
28
|
+
export type * from "./types/types.ts";
|