@villedemontreal/caporal 3.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +29 -0
- package/dist/src/__tests__/issue-163.spec.d.ts +2 -0
- package/dist/src/__tests__/issue-163.spec.d.ts.map +1 -0
- package/dist/src/__tests__/issue-163.spec.js +17 -0
- package/dist/src/__tests__/issue-163.spec.js.map +1 -0
- package/dist/src/argument/__tests__/argument.spec.d.ts +2 -0
- package/dist/src/argument/__tests__/argument.spec.d.ts.map +1 -0
- package/dist/src/argument/__tests__/argument.spec.js +85 -0
- package/dist/src/argument/__tests__/argument.spec.js.map +1 -0
- package/dist/src/argument/find.d.ts +8 -0
- package/dist/src/argument/find.d.ts.map +1 -0
- package/dist/src/argument/find.js +11 -0
- package/dist/src/argument/find.js.map +1 -0
- package/dist/src/argument/index.d.ts +13 -0
- package/dist/src/argument/index.d.ts.map +1 -0
- package/dist/src/argument/index.js +27 -0
- package/dist/src/argument/index.js.map +1 -0
- package/dist/src/argument/synopsis.d.ts +19 -0
- package/dist/src/argument/synopsis.d.ts.map +1 -0
- package/dist/src/argument/synopsis.js +39 -0
- package/dist/src/argument/synopsis.js.map +1 -0
- package/dist/src/argument/validate.d.ts +43 -0
- package/dist/src/argument/validate.d.ts.map +1 -0
- package/dist/src/argument/validate.js +127 -0
- package/dist/src/argument/validate.js.map +1 -0
- package/dist/src/autocomplete/__fixtures__/prog-autocomplete.d.ts +3 -0
- package/dist/src/autocomplete/__fixtures__/prog-autocomplete.d.ts.map +1 -0
- package/dist/src/autocomplete/__fixtures__/prog-autocomplete.js +24 -0
- package/dist/src/autocomplete/__fixtures__/prog-autocomplete.js.map +1 -0
- package/dist/src/autocomplete/__tests__/autocomplete.spec.d.ts +2 -0
- package/dist/src/autocomplete/__tests__/autocomplete.spec.d.ts.map +1 -0
- package/dist/src/autocomplete/__tests__/autocomplete.spec.js +119 -0
- package/dist/src/autocomplete/__tests__/autocomplete.spec.js.map +1 -0
- package/dist/src/autocomplete/index.d.ts +20 -0
- package/dist/src/autocomplete/index.d.ts.map +1 -0
- package/dist/src/autocomplete/index.js +172 -0
- package/dist/src/autocomplete/index.js.map +1 -0
- package/dist/src/autocomplete/types.d.ts +26 -0
- package/dist/src/autocomplete/types.d.ts.map +1 -0
- package/dist/src/autocomplete/types.js +3 -0
- package/dist/src/autocomplete/types.js.map +1 -0
- package/dist/src/command/__fixtures__/example-cmd.d.ts +8 -0
- package/dist/src/command/__fixtures__/example-cmd.d.ts.map +1 -0
- package/dist/src/command/__fixtures__/example-cmd.js +10 -0
- package/dist/src/command/__fixtures__/example-cmd.js.map +1 -0
- package/dist/src/command/__tests__/command.spec.d.ts +2 -0
- package/dist/src/command/__tests__/command.spec.d.ts.map +1 -0
- package/dist/src/command/__tests__/command.spec.js +510 -0
- package/dist/src/command/__tests__/command.spec.js.map +1 -0
- package/dist/src/command/__tests__/find.spec.d.ts +2 -0
- package/dist/src/command/__tests__/find.spec.d.ts.map +1 -0
- package/dist/src/command/__tests__/find.spec.js +31 -0
- package/dist/src/command/__tests__/find.spec.js.map +1 -0
- package/dist/src/command/__tests__/import.spec.d.ts +2 -0
- package/dist/src/command/__tests__/import.spec.d.ts.map +1 -0
- package/dist/src/command/__tests__/import.spec.js +17 -0
- package/dist/src/command/__tests__/import.spec.js.map +1 -0
- package/dist/src/command/__tests__/scan.spec.d.ts +2 -0
- package/dist/src/command/__tests__/scan.spec.d.ts.map +1 -0
- package/dist/src/command/__tests__/scan.spec.js +20 -0
- package/dist/src/command/__tests__/scan.spec.js.map +1 -0
- package/dist/src/command/find.d.ts +8 -0
- package/dist/src/command/find.d.ts.map +1 -0
- package/dist/src/command/find.js +47 -0
- package/dist/src/command/find.js.map +1 -0
- package/dist/src/command/import.d.ts +7 -0
- package/dist/src/command/import.d.ts.map +1 -0
- package/dist/src/command/import.js +47 -0
- package/dist/src/command/import.js.map +1 -0
- package/dist/src/command/index.d.ts +211 -0
- package/dist/src/command/index.d.ts.map +1 -0
- package/dist/src/command/index.js +374 -0
- package/dist/src/command/index.js.map +1 -0
- package/dist/src/command/scan.d.ts +4 -0
- package/dist/src/command/scan.d.ts.map +1 -0
- package/dist/src/command/scan.js +31 -0
- package/dist/src/command/scan.js.map +1 -0
- package/dist/src/command/validate-call.d.ts +8 -0
- package/dist/src/command/validate-call.d.ts.map +1 -0
- package/dist/src/command/validate-call.js +13 -0
- package/dist/src/command/validate-call.js.map +1 -0
- package/dist/src/config/index.d.ts +7 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +24 -0
- package/dist/src/config/index.js.map +1 -0
- package/dist/src/error/__tests__/fatal.spec.d.ts +2 -0
- package/dist/src/error/__tests__/fatal.spec.d.ts.map +1 -0
- package/dist/src/error/__tests__/fatal.spec.js +34 -0
- package/dist/src/error/__tests__/fatal.spec.js.map +1 -0
- package/dist/src/error/action.d.ts +9 -0
- package/dist/src/error/action.d.ts.map +1 -0
- package/dist/src/error/action.js +16 -0
- package/dist/src/error/action.js.map +1 -0
- package/dist/src/error/base.d.ts +11 -0
- package/dist/src/error/base.d.ts.map +1 -0
- package/dist/src/error/base.js +18 -0
- package/dist/src/error/base.js.map +1 -0
- package/dist/src/error/fatal.d.ts +10 -0
- package/dist/src/error/fatal.d.ts.map +1 -0
- package/dist/src/error/fatal.js +27 -0
- package/dist/src/error/fatal.js.map +1 -0
- package/dist/src/error/index.d.ts +18 -0
- package/dist/src/error/index.d.ts.map +1 -0
- package/dist/src/error/index.js +34 -0
- package/dist/src/error/index.js.map +1 -0
- package/dist/src/error/invalid-validator.d.ts +10 -0
- package/dist/src/error/invalid-validator.d.ts.map +1 -0
- package/dist/src/error/invalid-validator.js +15 -0
- package/dist/src/error/invalid-validator.js.map +1 -0
- package/dist/src/error/missing-argument.d.ts +11 -0
- package/dist/src/error/missing-argument.d.ts.map +1 -0
- package/dist/src/error/missing-argument.js +20 -0
- package/dist/src/error/missing-argument.js.map +1 -0
- package/dist/src/error/missing-flag.d.ts +11 -0
- package/dist/src/error/missing-flag.d.ts.map +1 -0
- package/dist/src/error/missing-flag.js +20 -0
- package/dist/src/error/missing-flag.js.map +1 -0
- package/dist/src/error/multi-validation.d.ts +10 -0
- package/dist/src/error/multi-validation.d.ts.map +1 -0
- package/dist/src/error/multi-validation.js +26 -0
- package/dist/src/error/multi-validation.js.map +1 -0
- package/dist/src/error/no-action.d.ts +10 -0
- package/dist/src/error/no-action.d.ts.map +1 -0
- package/dist/src/error/no-action.js +22 -0
- package/dist/src/error/no-action.js.map +1 -0
- package/dist/src/error/option-synopsis-syntax.d.ts +9 -0
- package/dist/src/error/option-synopsis-syntax.d.ts.map +1 -0
- package/dist/src/error/option-synopsis-syntax.js +15 -0
- package/dist/src/error/option-synopsis-syntax.js.map +1 -0
- package/dist/src/error/too-many-arguments.d.ts +11 -0
- package/dist/src/error/too-many-arguments.d.ts.map +1 -0
- package/dist/src/error/too-many-arguments.js +25 -0
- package/dist/src/error/too-many-arguments.js.map +1 -0
- package/dist/src/error/unknown-command.d.ts +13 -0
- package/dist/src/error/unknown-command.d.ts.map +1 -0
- package/dist/src/error/unknown-command.js +44 -0
- package/dist/src/error/unknown-command.js.map +1 -0
- package/dist/src/error/unknown-option.d.ts +13 -0
- package/dist/src/error/unknown-option.d.ts.map +1 -0
- package/dist/src/error/unknown-option.js +40 -0
- package/dist/src/error/unknown-option.js.map +1 -0
- package/dist/src/error/validation.d.ts +17 -0
- package/dist/src/error/validation.d.ts.map +1 -0
- package/dist/src/error/validation.js +49 -0
- package/dist/src/error/validation.js.map +1 -0
- package/dist/src/help/__tests__/help.spec.d.ts +2 -0
- package/dist/src/help/__tests__/help.spec.d.ts.map +1 -0
- package/dist/src/help/__tests__/help.spec.js +130 -0
- package/dist/src/help/__tests__/help.spec.js.map +1 -0
- package/dist/src/help/__tests__/utils.spec.d.ts +2 -0
- package/dist/src/help/__tests__/utils.spec.d.ts.map +1 -0
- package/dist/src/help/__tests__/utils.spec.js +16 -0
- package/dist/src/help/__tests__/utils.spec.js.map +1 -0
- package/dist/src/help/index.d.ts +47 -0
- package/dist/src/help/index.d.ts.map +1 -0
- package/dist/src/help/index.js +131 -0
- package/dist/src/help/index.js.map +1 -0
- package/dist/src/help/templates/command.d.ts +7 -0
- package/dist/src/help/templates/command.d.ts.map +1 -0
- package/dist/src/help/templates/command.js +23 -0
- package/dist/src/help/templates/command.js.map +1 -0
- package/dist/src/help/templates/custom.d.ts +7 -0
- package/dist/src/help/templates/custom.d.ts.map +1 -0
- package/dist/src/help/templates/custom.js +24 -0
- package/dist/src/help/templates/custom.js.map +1 -0
- package/dist/src/help/templates/header.d.ts +7 -0
- package/dist/src/help/templates/header.d.ts.map +1 -0
- package/dist/src/help/templates/header.js +16 -0
- package/dist/src/help/templates/header.js.map +1 -0
- package/dist/src/help/templates/index.d.ts +10 -0
- package/dist/src/help/templates/index.d.ts.map +1 -0
- package/dist/src/help/templates/index.js +26 -0
- package/dist/src/help/templates/index.js.map +1 -0
- package/dist/src/help/templates/program.d.ts +7 -0
- package/dist/src/help/templates/program.d.ts.map +1 -0
- package/dist/src/help/templates/program.js +18 -0
- package/dist/src/help/templates/program.js.map +1 -0
- package/dist/src/help/templates/usage.d.ts +7 -0
- package/dist/src/help/templates/usage.d.ts.map +1 -0
- package/dist/src/help/templates/usage.js +19 -0
- package/dist/src/help/templates/usage.js.map +1 -0
- package/dist/src/help/types.d.ts +53 -0
- package/dist/src/help/types.d.ts.map +1 -0
- package/dist/src/help/types.js +3 -0
- package/dist/src/help/types.js.map +1 -0
- package/dist/src/help/utils.d.ts +9 -0
- package/dist/src/help/utils.d.ts.map +1 -0
- package/dist/src/help/utils.js +92 -0
- package/dist/src/help/utils.js.map +1 -0
- package/dist/src/index.d.ts +90 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +111 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/logger/__tests__/logger.spec.d.ts +2 -0
- package/dist/src/logger/__tests__/logger.spec.d.ts.map +1 -0
- package/dist/src/logger/__tests__/logger.spec.js +56 -0
- package/dist/src/logger/__tests__/logger.spec.js.map +1 -0
- package/dist/src/logger/index.d.ts +6 -0
- package/dist/src/logger/index.d.ts.map +1 -0
- package/dist/src/logger/index.js +128 -0
- package/dist/src/logger/index.js.map +1 -0
- package/dist/src/option/__tests__/global.spec.d.ts +2 -0
- package/dist/src/option/__tests__/global.spec.d.ts.map +1 -0
- package/dist/src/option/__tests__/global.spec.js +121 -0
- package/dist/src/option/__tests__/global.spec.js.map +1 -0
- package/dist/src/option/__tests__/option.spec.d.ts +2 -0
- package/dist/src/option/__tests__/option.spec.d.ts.map +1 -0
- package/dist/src/option/__tests__/option.spec.js +111 -0
- package/dist/src/option/__tests__/option.spec.js.map +1 -0
- package/dist/src/option/find.d.ts +14 -0
- package/dist/src/option/find.d.ts.map +1 -0
- package/dist/src/option/find.js +17 -0
- package/dist/src/option/find.js.map +1 -0
- package/dist/src/option/index.d.ts +65 -0
- package/dist/src/option/index.d.ts.map +1 -0
- package/dist/src/option/index.js +230 -0
- package/dist/src/option/index.js.map +1 -0
- package/dist/src/option/mapping.d.ts +7 -0
- package/dist/src/option/mapping.d.ts.map +1 -0
- package/dist/src/option/mapping.js +21 -0
- package/dist/src/option/mapping.js.map +1 -0
- package/dist/src/option/utils.d.ts +35 -0
- package/dist/src/option/utils.d.ts.map +1 -0
- package/dist/src/option/utils.js +139 -0
- package/dist/src/option/utils.js.map +1 -0
- package/dist/src/option/validate.d.ts +15 -0
- package/dist/src/option/validate.d.ts.map +1 -0
- package/dist/src/option/validate.js +63 -0
- package/dist/src/option/validate.js.map +1 -0
- package/dist/src/parser/__tests__/parser.spec.d.ts +2 -0
- package/dist/src/parser/__tests__/parser.spec.d.ts.map +1 -0
- package/dist/src/parser/__tests__/parser.spec.js +343 -0
- package/dist/src/parser/__tests__/parser.spec.js.map +1 -0
- package/dist/src/parser/index.d.ts +17 -0
- package/dist/src/parser/index.d.ts.map +1 -0
- package/dist/src/parser/index.js +299 -0
- package/dist/src/parser/index.js.map +1 -0
- package/dist/src/program/__tests__/program.spec.d.ts +2 -0
- package/dist/src/program/__tests__/program.spec.d.ts.map +1 -0
- package/dist/src/program/__tests__/program.spec.js +261 -0
- package/dist/src/program/__tests__/program.spec.js.map +1 -0
- package/dist/src/program/index.d.ts +349 -0
- package/dist/src/program/index.d.ts.map +1 -0
- package/dist/src/program/index.js +584 -0
- package/dist/src/program/index.js.map +1 -0
- package/dist/src/types.d.ts +396 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +51 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/__tests__/fs.spec.d.ts +2 -0
- package/dist/src/utils/__tests__/fs.spec.d.ts.map +1 -0
- package/dist/src/utils/__tests__/fs.spec.js +14 -0
- package/dist/src/utils/__tests__/fs.spec.js.map +1 -0
- package/dist/src/utils/__tests__/levenshtein.spec.d.ts +2 -0
- package/dist/src/utils/__tests__/levenshtein.spec.d.ts.map +1 -0
- package/dist/src/utils/__tests__/levenshtein.spec.js +18 -0
- package/dist/src/utils/__tests__/levenshtein.spec.js.map +1 -0
- package/dist/src/utils/__tests__/suggest.spec.d.ts +2 -0
- package/dist/src/utils/__tests__/suggest.spec.d.ts.map +1 -0
- package/dist/src/utils/__tests__/suggest.spec.js +31 -0
- package/dist/src/utils/__tests__/suggest.spec.js.map +1 -0
- package/dist/src/utils/colorize.d.ts +2 -0
- package/dist/src/utils/colorize.d.ts.map +1 -0
- package/dist/src/utils/colorize.js +27 -0
- package/dist/src/utils/colorize.js.map +1 -0
- package/dist/src/utils/fs.d.ts +2 -0
- package/dist/src/utils/fs.d.ts.map +1 -0
- package/dist/src/utils/fs.js +19 -0
- package/dist/src/utils/fs.js.map +1 -0
- package/dist/src/utils/levenshtein.d.ts +6 -0
- package/dist/src/utils/levenshtein.d.ts.map +1 -0
- package/dist/src/utils/levenshtein.js +32 -0
- package/dist/src/utils/levenshtein.js.map +1 -0
- package/dist/src/utils/suggest.d.ts +15 -0
- package/dist/src/utils/suggest.d.ts.map +1 -0
- package/dist/src/utils/suggest.js +49 -0
- package/dist/src/utils/suggest.js.map +1 -0
- package/dist/src/utils/version.d.ts +2 -0
- package/dist/src/utils/version.d.ts.map +1 -0
- package/dist/src/utils/version.js +21 -0
- package/dist/src/utils/version.js.map +1 -0
- package/dist/src/utils/web/autocomplete.d.ts +12 -0
- package/dist/src/utils/web/autocomplete.d.ts.map +1 -0
- package/dist/src/utils/web/autocomplete.js +12 -0
- package/dist/src/utils/web/autocomplete.js.map +1 -0
- package/dist/src/utils/web/process.d.ts +15 -0
- package/dist/src/utils/web/process.d.ts.map +1 -0
- package/dist/src/utils/web/process.js +29 -0
- package/dist/src/utils/web/process.js.map +1 -0
- package/dist/src/validator/__tests__/array.spec.d.ts +2 -0
- package/dist/src/validator/__tests__/array.spec.d.ts.map +1 -0
- package/dist/src/validator/__tests__/array.spec.js +34 -0
- package/dist/src/validator/__tests__/array.spec.js.map +1 -0
- package/dist/src/validator/__tests__/caporal.spec.d.ts +2 -0
- package/dist/src/validator/__tests__/caporal.spec.d.ts.map +1 -0
- package/dist/src/validator/__tests__/caporal.spec.js +86 -0
- package/dist/src/validator/__tests__/caporal.spec.js.map +1 -0
- package/dist/src/validator/__tests__/function.spec.d.ts +2 -0
- package/dist/src/validator/__tests__/function.spec.d.ts.map +1 -0
- package/dist/src/validator/__tests__/function.spec.js +42 -0
- package/dist/src/validator/__tests__/function.spec.js.map +1 -0
- package/dist/src/validator/__tests__/regexp.spec.d.ts +2 -0
- package/dist/src/validator/__tests__/regexp.spec.d.ts.map +1 -0
- package/dist/src/validator/__tests__/regexp.spec.js +34 -0
- package/dist/src/validator/__tests__/regexp.spec.js.map +1 -0
- package/dist/src/validator/__tests__/utils.spec.d.ts +2 -0
- package/dist/src/validator/__tests__/utils.spec.d.ts.map +1 -0
- package/dist/src/validator/__tests__/utils.spec.js +66 -0
- package/dist/src/validator/__tests__/utils.spec.js.map +1 -0
- package/dist/src/validator/__tests__/validate.spec.d.ts +2 -0
- package/dist/src/validator/__tests__/validate.spec.d.ts.map +1 -0
- package/dist/src/validator/__tests__/validate.spec.js +25 -0
- package/dist/src/validator/__tests__/validate.spec.js.map +1 -0
- package/dist/src/validator/array.d.ts +14 -0
- package/dist/src/validator/array.d.ts.map +1 -0
- package/dist/src/validator/array.js +29 -0
- package/dist/src/validator/array.js.map +1 -0
- package/dist/src/validator/caporal.d.ts +25 -0
- package/dist/src/validator/caporal.d.ts.map +1 -0
- package/dist/src/validator/caporal.js +89 -0
- package/dist/src/validator/caporal.js.map +1 -0
- package/dist/src/validator/function.d.ts +7 -0
- package/dist/src/validator/function.d.ts.map +1 -0
- package/dist/src/validator/function.js +27 -0
- package/dist/src/validator/function.js.map +1 -0
- package/dist/src/validator/regexp.d.ts +14 -0
- package/dist/src/validator/regexp.d.ts.map +1 -0
- package/dist/src/validator/regexp.js +31 -0
- package/dist/src/validator/regexp.js.map +1 -0
- package/dist/src/validator/utils.d.ts +14 -0
- package/dist/src/validator/utils.d.ts.map +1 -0
- package/dist/src/validator/utils.js +81 -0
- package/dist/src/validator/utils.js.map +1 -0
- package/dist/src/validator/validate.d.ts +7 -0
- package/dist/src/validator/validate.d.ts.map +1 -0
- package/dist/src/validator/validate.js +29 -0
- package/dist/src/validator/validate.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +75 -0
- package/src/__tests__/issue-163.spec.ts +18 -0
- package/src/argument/__tests__/argument.spec.ts +84 -0
- package/src/argument/find.ts +11 -0
- package/src/argument/index.ts +35 -0
- package/src/argument/synopsis.ts +41 -0
- package/src/argument/validate.ts +176 -0
- package/src/autocomplete/__fixtures__/prog-autocomplete.ts +24 -0
- package/src/autocomplete/__tests__/autocomplete.spec.ts +129 -0
- package/src/autocomplete/index.ts +225 -0
- package/src/autocomplete/types.ts +29 -0
- package/src/command/__fixtures__/example-cmd.ts +14 -0
- package/src/command/__tests__/command.spec.ts +621 -0
- package/src/command/__tests__/find.spec.ts +32 -0
- package/src/command/__tests__/import.spec.ts +14 -0
- package/src/command/__tests__/scan.spec.ts +16 -0
- package/src/command/find.ts +57 -0
- package/src/command/import.ts +13 -0
- package/src/command/index.ts +458 -0
- package/src/command/scan.ts +30 -0
- package/src/command/validate-call.ts +19 -0
- package/src/config/index.ts +26 -0
- package/src/error/__tests__/fatal.spec.ts +38 -0
- package/src/error/action.ts +13 -0
- package/src/error/base.ts +20 -0
- package/src/error/fatal.ts +25 -0
- package/src/error/index.ts +17 -0
- package/src/error/invalid-validator.ts +12 -0
- package/src/error/missing-argument.ts +16 -0
- package/src/error/missing-flag.ts +16 -0
- package/src/error/multi-validation.ts +22 -0
- package/src/error/no-action.ts +19 -0
- package/src/error/option-synopsis-syntax.ts +12 -0
- package/src/error/too-many-arguments.ts +28 -0
- package/src/error/unknown-command.ts +41 -0
- package/src/error/unknown-option.ts +40 -0
- package/src/error/validation.ts +80 -0
- package/src/help/__tests__/__snapshots__/help.spec.ts.snap +334 -0
- package/src/help/__tests__/help.spec.ts +144 -0
- package/src/help/__tests__/utils.spec.ts +14 -0
- package/src/help/index.ts +107 -0
- package/src/help/templates/command.ts +27 -0
- package/src/help/templates/custom.ts +25 -0
- package/src/help/templates/header.ts +19 -0
- package/src/help/templates/index.ts +9 -0
- package/src/help/templates/program.ts +21 -0
- package/src/help/templates/usage.ts +24 -0
- package/src/help/types.ts +57 -0
- package/src/help/utils.ts +109 -0
- package/src/index.ts +93 -0
- package/src/logger/__tests__/logger.spec.ts +65 -0
- package/src/logger/index.ts +97 -0
- package/src/option/__tests__/global.spec.ts +141 -0
- package/src/option/__tests__/option.spec.ts +115 -0
- package/src/option/find.ts +17 -0
- package/src/option/index.ts +280 -0
- package/src/option/mapping.ts +17 -0
- package/src/option/utils.ts +141 -0
- package/src/option/validate.ts +80 -0
- package/src/parser/__tests__/parser.spec.ts +371 -0
- package/src/parser/index.ts +383 -0
- package/src/program/__tests__/program.spec.ts +316 -0
- package/src/program/index.ts +676 -0
- package/src/types.ts +432 -0
- package/src/utils/__tests__/fs.spec.ts +14 -0
- package/src/utils/__tests__/levenshtein.spec.ts +16 -0
- package/src/utils/__tests__/suggest.spec.ts +30 -0
- package/src/utils/colorize.ts +21 -0
- package/src/utils/fs.ts +13 -0
- package/src/utils/levenshtein.ts +28 -0
- package/src/utils/suggest.ts +52 -0
- package/src/utils/version.ts +14 -0
- package/src/utils/web/autocomplete.ts +19 -0
- package/src/utils/web/process.ts +24 -0
- package/src/validator/__tests__/array.spec.ts +41 -0
- package/src/validator/__tests__/caporal.spec.ts +132 -0
- package/src/validator/__tests__/function.spec.ts +52 -0
- package/src/validator/__tests__/regexp.spec.ts +38 -0
- package/src/validator/__tests__/utils.spec.ts +67 -0
- package/src/validator/__tests__/validate.spec.ts +24 -0
- package/src/validator/array.ts +31 -0
- package/src/validator/caporal.ts +104 -0
- package/src/validator/function.ts +31 -0
- package/src/validator/regexp.ts +34 -0
- package/src/validator/utils.ts +84 -0
- package/src/validator/validate.ts +38 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const validate_1 = require("../validate");
|
|
4
|
+
const argument_1 = require("../../argument");
|
|
5
|
+
const vitest_1 = require("vitest");
|
|
6
|
+
(0, vitest_1.describe)("validate()", () => {
|
|
7
|
+
const arg = (0, argument_1.createArgument)("<fake>", "Fake arg");
|
|
8
|
+
(0, vitest_1.it)("should handle function validators", () => {
|
|
9
|
+
const validator = function (value) {
|
|
10
|
+
if (value !== "hey" && value !== "ho") {
|
|
11
|
+
throw Error("my error");
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
};
|
|
15
|
+
return (0, vitest_1.expect)((0, validate_1.validate)("hey", validator, arg)).resolves.toEqual("hey");
|
|
16
|
+
});
|
|
17
|
+
(0, vitest_1.it)("should handle regexp validators", () => {
|
|
18
|
+
return (0, vitest_1.expect)((0, validate_1.validate)("TEST", /[A-Z]+/, arg)).toEqual("TEST");
|
|
19
|
+
});
|
|
20
|
+
(0, vitest_1.it)("should handle unknown validators", () => {
|
|
21
|
+
// @ts-expect-error for tests
|
|
22
|
+
return (0, vitest_1.expect)((0, validate_1.validate)("TEST", 1000, arg)).toEqual("TEST");
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=validate.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.spec.js","sourceRoot":"","sources":["../../../../src/validator/__tests__/validate.spec.ts"],"names":[],"mappings":";;AAAA,0CAAsC;AACtC,6CAA+C;AAE/C,mCAA6C;AAE7C,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,GAAG,GAAG,IAAA,yBAAc,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAChD,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,SAAS,GAAsB,UAAU,KAAK;YAClD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,KAAK,CAAC,UAAU,CAAC,CAAA;YACzB,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAA;QACD,OAAO,IAAA,eAAM,EAAC,IAAA,mBAAQ,EAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IACF,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,OAAO,IAAA,eAAM,EAAC,IAAA,mBAAQ,EAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IACF,IAAA,WAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,6BAA6B;QAC7B,OAAO,IAAA,eAAM,EAAC,IAAA,mBAAQ,EAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
import type { ParserTypes, Argument, Option } from "../types";
|
|
6
|
+
/**
|
|
7
|
+
* Validate using an array of valid values.
|
|
8
|
+
*
|
|
9
|
+
* @param validator
|
|
10
|
+
* @param value
|
|
11
|
+
* @ignore
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateWithArray(validator: ParserTypes[], value: ParserTypes | ParserTypes[], context: Argument | Option): ParserTypes | ParserTypes[];
|
|
14
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/validator/array.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAG7D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,WAAW,EAAE,EACxB,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,EAClC,OAAO,EAAE,QAAQ,GAAG,MAAM,GACzB,WAAW,GAAG,WAAW,EAAE,CAW7B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validateWithArray = validateWithArray;
|
|
8
|
+
const error_1 = require("../error");
|
|
9
|
+
/**
|
|
10
|
+
* Validate using an array of valid values.
|
|
11
|
+
*
|
|
12
|
+
* @param validator
|
|
13
|
+
* @param value
|
|
14
|
+
* @ignore
|
|
15
|
+
*/
|
|
16
|
+
function validateWithArray(validator, value, context) {
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
value.forEach((v) => validateWithArray(validator, v, context));
|
|
19
|
+
}
|
|
20
|
+
else if (validator.includes(value) === false) {
|
|
21
|
+
throw new error_1.ValidationError({
|
|
22
|
+
validator,
|
|
23
|
+
value,
|
|
24
|
+
context,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/validator/array.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAYH,8CAeC;AAxBD,oCAA0C;AAE1C;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,SAAwB,EACxB,KAAkC,EAClC,OAA0B;IAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAChE,CAAC;SAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,uBAAe,CAAC;YACxB,SAAS;YACT,KAAK;YACL,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
import type { ParserTypes, Argument, Option } from "../types";
|
|
6
|
+
import { CaporalValidator } from "../types";
|
|
7
|
+
export { CaporalValidator };
|
|
8
|
+
export declare function validateWithCaporal(validator: CaporalValidator, value: ParserTypes | ParserTypes[], context: Argument | Option, skipArrayValidation?: boolean): ParserTypes | ParserTypes[];
|
|
9
|
+
/**
|
|
10
|
+
* The string validator actually just cast the value to string
|
|
11
|
+
*
|
|
12
|
+
* @param value
|
|
13
|
+
* @ignore
|
|
14
|
+
*/
|
|
15
|
+
export declare function validateBoolFlag(value: ParserTypes, context: Argument | Option): boolean;
|
|
16
|
+
export declare function validateNumericFlag(validator: number, value: ParserTypes, context: Argument | Option): number;
|
|
17
|
+
export declare function validateArrayFlag(validator: number, value: ParserTypes | ParserTypes[], context: Argument | Option): ParserTypes | ParserTypes[];
|
|
18
|
+
/**
|
|
19
|
+
* The string validator actually just cast the value to string
|
|
20
|
+
*
|
|
21
|
+
* @param value
|
|
22
|
+
* @ignore
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateStringFlag(value: ParserTypes | ParserTypes[]): string;
|
|
25
|
+
//# sourceMappingURL=caporal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caporal.d.ts","sourceRoot":"","sources":["../../../src/validator/caporal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAa3C,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,EAClC,OAAO,EAAE,QAAQ,GAAG,MAAM,EAC1B,mBAAmB,UAAQ,GAC1B,WAAW,GAAG,WAAW,EAAE,CAmB7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,QAAQ,GAAG,MAAM,GACzB,OAAO,CAWT;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,QAAQ,GAAG,MAAM,GACzB,MAAM,CAUR;AAED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,EAClC,OAAO,EAAE,QAAQ,GAAG,MAAM,GACzB,WAAW,GAAG,WAAW,EAAE,CAI7B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,MAAM,CAE7E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CaporalValidator = void 0;
|
|
11
|
+
exports.validateWithCaporal = validateWithCaporal;
|
|
12
|
+
exports.validateBoolFlag = validateBoolFlag;
|
|
13
|
+
exports.validateNumericFlag = validateNumericFlag;
|
|
14
|
+
exports.validateArrayFlag = validateArrayFlag;
|
|
15
|
+
exports.validateStringFlag = validateStringFlag;
|
|
16
|
+
const types_1 = require("../types");
|
|
17
|
+
Object.defineProperty(exports, "CaporalValidator", { enumerable: true, get: function () { return types_1.CaporalValidator; } });
|
|
18
|
+
const error_1 = require("../error");
|
|
19
|
+
const utils_1 = require("../option/utils");
|
|
20
|
+
const flatMap_1 = __importDefault(require("lodash/flatMap"));
|
|
21
|
+
const utils_2 = require("./utils");
|
|
22
|
+
function validateWithCaporal(validator, value, context, skipArrayValidation = false) {
|
|
23
|
+
if (!skipArrayValidation && (0, utils_2.isArrayValidator)(validator)) {
|
|
24
|
+
return validateArrayFlag(validator, value, context);
|
|
25
|
+
}
|
|
26
|
+
else if (Array.isArray(value)) {
|
|
27
|
+
// should not happen!
|
|
28
|
+
throw new error_1.ValidationError({
|
|
29
|
+
error: "Expected a scalar value, got an array",
|
|
30
|
+
value,
|
|
31
|
+
validator,
|
|
32
|
+
context,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else if ((0, utils_2.isNumericValidator)(validator)) {
|
|
36
|
+
return validateNumericFlag(validator, value, context);
|
|
37
|
+
}
|
|
38
|
+
else if ((0, utils_2.isStringValidator)(validator)) {
|
|
39
|
+
return validateStringFlag(value);
|
|
40
|
+
}
|
|
41
|
+
else if ((0, utils_2.isBoolValidator)(validator)) {
|
|
42
|
+
return validateBoolFlag(value, context);
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The string validator actually just cast the value to string
|
|
48
|
+
*
|
|
49
|
+
* @param value
|
|
50
|
+
* @ignore
|
|
51
|
+
*/
|
|
52
|
+
function validateBoolFlag(value, context) {
|
|
53
|
+
if (typeof value === "boolean") {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
else if (/^(true|false|yes|no|0|1)$/i.test(String(value)) === false) {
|
|
57
|
+
throw new error_1.ValidationError({
|
|
58
|
+
value,
|
|
59
|
+
validator: types_1.CaporalValidator.BOOLEAN,
|
|
60
|
+
context,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return /^0|no|false$/.test(String(value)) === false;
|
|
64
|
+
}
|
|
65
|
+
function validateNumericFlag(validator, value, context) {
|
|
66
|
+
const str = value + "";
|
|
67
|
+
if (Array.isArray(value) || !(0, utils_1.isNumeric)(str)) {
|
|
68
|
+
throw new error_1.ValidationError({
|
|
69
|
+
value,
|
|
70
|
+
validator,
|
|
71
|
+
context,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return parseFloat(str);
|
|
75
|
+
}
|
|
76
|
+
function validateArrayFlag(validator, value, context) {
|
|
77
|
+
const values = typeof value === "string" ? value.split(",") : !Array.isArray(value) ? [value] : value;
|
|
78
|
+
return (0, flatMap_1.default)(values, (el) => validateWithCaporal(validator, el, context, true));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The string validator actually just cast the value to string
|
|
82
|
+
*
|
|
83
|
+
* @param value
|
|
84
|
+
* @ignore
|
|
85
|
+
*/
|
|
86
|
+
function validateStringFlag(value) {
|
|
87
|
+
return value + "";
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=caporal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caporal.js","sourceRoot":"","sources":["../../../src/validator/caporal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
import type { ParserTypes, FunctionValidator, Argument, Option } from "../types";
|
|
6
|
+
export declare function validateWithFunction(validator: FunctionValidator, value: ParserTypes | ParserTypes[], context: Argument | Option): Promise<ParserTypes | ParserTypes[]>;
|
|
7
|
+
//# sourceMappingURL=function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../src/validator/function.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGhF,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,EAClC,OAAO,EAAE,QAAQ,GAAG,MAAM,GACzB,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,CAkBtC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validateWithFunction = validateWithFunction;
|
|
8
|
+
const error_1 = require("../error");
|
|
9
|
+
async function validateWithFunction(validator, value, context) {
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
return Promise.all(value.map((v) => {
|
|
12
|
+
return validateWithFunction(validator, v, context);
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
return await validator(value);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw new error_1.ValidationError({
|
|
20
|
+
validator,
|
|
21
|
+
value,
|
|
22
|
+
error,
|
|
23
|
+
context,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../src/validator/function.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH,oDAsBC;AAxBD,oCAA0C;AAEnC,KAAK,UAAU,oBAAoB,CACxC,SAA4B,EAC5B,KAAkC,EAClC,OAA0B;IAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,OAAO,oBAAoB,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,CAAyB,CAAA;QAC5E,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,uBAAe,CAAC;YACxB,SAAS;YACT,KAAK;YACL,KAAK;YACL,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
import type { ParserTypes, Argument, Option } from "../types";
|
|
6
|
+
/**
|
|
7
|
+
* Validate using a RegExp
|
|
8
|
+
*
|
|
9
|
+
* @param validator
|
|
10
|
+
* @param value
|
|
11
|
+
* @ignore
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateWithRegExp(validator: RegExp, value: ParserTypes | ParserTypes[], context: Argument | Option): ParserTypes | ParserTypes[];
|
|
14
|
+
//# sourceMappingURL=regexp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regexp.d.ts","sourceRoot":"","sources":["../../../src/validator/regexp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAG7D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,EAClC,OAAO,EAAE,QAAQ,GAAG,MAAM,GACzB,WAAW,GAAG,WAAW,EAAE,CAc7B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validateWithRegExp = validateWithRegExp;
|
|
8
|
+
const error_1 = require("../error");
|
|
9
|
+
/**
|
|
10
|
+
* Validate using a RegExp
|
|
11
|
+
*
|
|
12
|
+
* @param validator
|
|
13
|
+
* @param value
|
|
14
|
+
* @ignore
|
|
15
|
+
*/
|
|
16
|
+
function validateWithRegExp(validator, value, context) {
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
return value.map((v) => {
|
|
19
|
+
return validateWithRegExp(validator, v, context);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (!validator.test(value + "")) {
|
|
23
|
+
throw new error_1.ValidationError({
|
|
24
|
+
validator: validator,
|
|
25
|
+
value,
|
|
26
|
+
context,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=regexp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regexp.js","sourceRoot":"","sources":["../../../src/validator/regexp.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAYH,gDAkBC;AA3BD,oCAA0C;AAE1C;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,SAAiB,EACjB,KAAkC,EAClC,OAA0B;IAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,OAAO,kBAAkB,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,CAAgB,CAAA;QACjE,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,uBAAe,CAAC;YACxB,SAAS,EAAE,SAAS;YACpB,KAAK;YACL,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
import type { Validator } from "../types";
|
|
6
|
+
import { Argument, Option } from "../types";
|
|
7
|
+
export declare function isCaporalValidator(validator: Validator | undefined): validator is number;
|
|
8
|
+
export declare function isNumericValidator(validator: Validator | undefined): boolean;
|
|
9
|
+
export declare function isStringValidator(validator: Validator | undefined): boolean;
|
|
10
|
+
export declare function isBoolValidator(validator: Validator | undefined): boolean;
|
|
11
|
+
export declare function isArrayValidator(validator: Validator | undefined): boolean;
|
|
12
|
+
export declare function checkValidator(validator: Validator | undefined): void;
|
|
13
|
+
export declare function getTypeHint(obj: Argument | Option): string | undefined;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/validator/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAoB,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAI7D,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,SAAS,IAAI,MAAM,CAOrB;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAE1E;AAwBD,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAMrE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBtE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.isCaporalValidator = isCaporalValidator;
|
|
11
|
+
exports.isNumericValidator = isNumericValidator;
|
|
12
|
+
exports.isStringValidator = isStringValidator;
|
|
13
|
+
exports.isBoolValidator = isBoolValidator;
|
|
14
|
+
exports.isArrayValidator = isArrayValidator;
|
|
15
|
+
exports.checkValidator = checkValidator;
|
|
16
|
+
exports.getTypeHint = getTypeHint;
|
|
17
|
+
const types_1 = require("../types");
|
|
18
|
+
const isNumber_1 = __importDefault(require("lodash/isNumber"));
|
|
19
|
+
const error_1 = require("../error");
|
|
20
|
+
function isCaporalValidator(validator) {
|
|
21
|
+
if (typeof validator !== "number") {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const mask = getCaporalValidatorsMask();
|
|
25
|
+
const exist = (mask & validator) === validator;
|
|
26
|
+
return exist;
|
|
27
|
+
}
|
|
28
|
+
function isNumericValidator(validator) {
|
|
29
|
+
return isCaporalValidator(validator) && Boolean(validator & types_1.CaporalValidator.NUMBER);
|
|
30
|
+
}
|
|
31
|
+
function isStringValidator(validator) {
|
|
32
|
+
return isCaporalValidator(validator) && Boolean(validator & types_1.CaporalValidator.STRING);
|
|
33
|
+
}
|
|
34
|
+
function isBoolValidator(validator) {
|
|
35
|
+
return isCaporalValidator(validator) && Boolean(validator & types_1.CaporalValidator.BOOLEAN);
|
|
36
|
+
}
|
|
37
|
+
function isArrayValidator(validator) {
|
|
38
|
+
return isCaporalValidator(validator) && Boolean(validator & types_1.CaporalValidator.ARRAY);
|
|
39
|
+
}
|
|
40
|
+
function getCaporalValidatorsMask() {
|
|
41
|
+
return Object.values(types_1.CaporalValidator)
|
|
42
|
+
.filter(isNumber_1.default)
|
|
43
|
+
.reduce((a, b) => a | b, 0);
|
|
44
|
+
}
|
|
45
|
+
function checkCaporalValidator(validator) {
|
|
46
|
+
if (!isCaporalValidator(validator)) {
|
|
47
|
+
throw new error_1.InvalidValidatorError(validator);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function checkUserDefinedValidator(validator) {
|
|
51
|
+
if (typeof validator !== "function" &&
|
|
52
|
+
!(validator instanceof RegExp) &&
|
|
53
|
+
!Array.isArray(validator)) {
|
|
54
|
+
throw new error_1.InvalidValidatorError(validator);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function checkValidator(validator) {
|
|
58
|
+
if (validator !== undefined) {
|
|
59
|
+
typeof validator === "number"
|
|
60
|
+
? checkCaporalValidator(validator)
|
|
61
|
+
: checkUserDefinedValidator(validator);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function getTypeHint(obj) {
|
|
65
|
+
let hint;
|
|
66
|
+
if (isBoolValidator(obj.validator) ||
|
|
67
|
+
("boolean" in obj && obj.boolean && obj.default !== false)) {
|
|
68
|
+
hint = "boolean";
|
|
69
|
+
}
|
|
70
|
+
else if (isNumericValidator(obj.validator)) {
|
|
71
|
+
hint = "number";
|
|
72
|
+
}
|
|
73
|
+
else if (Array.isArray(obj.validator)) {
|
|
74
|
+
const stringified = JSON.stringify(obj.validator);
|
|
75
|
+
if (stringified.length < 300) {
|
|
76
|
+
hint = "one of " + stringified.substr(1, stringified.length - 2);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return hint;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/validator/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
import type { Validator, Promisable, ParsedOption, ParsedArgument, Argument, Option } from "../types";
|
|
6
|
+
export declare function validate(value: ParsedOption | ParsedArgument, validator: Validator, context: Argument | Option): Promisable<ParsedOption | ParsedArgument>;
|
|
7
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/validator/validate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,MAAM,EACP,MAAM,UAAU,CAAA;AAQjB,wBAAgB,QAAQ,CACtB,KAAK,EAAE,YAAY,GAAG,cAAc,EACpC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,QAAQ,GAAG,MAAM,GACzB,UAAU,CAAC,YAAY,GAAG,cAAc,CAAC,CAa3C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.validate = validate;
|
|
8
|
+
const regexp_1 = require("./regexp");
|
|
9
|
+
const array_1 = require("./array");
|
|
10
|
+
const function_1 = require("./function");
|
|
11
|
+
const caporal_1 = require("./caporal");
|
|
12
|
+
const utils_1 = require("./utils");
|
|
13
|
+
function validate(value, validator, context) {
|
|
14
|
+
if (typeof validator === "function") {
|
|
15
|
+
return (0, function_1.validateWithFunction)(validator, value, context);
|
|
16
|
+
}
|
|
17
|
+
else if (validator instanceof RegExp) {
|
|
18
|
+
return (0, regexp_1.validateWithRegExp)(validator, value, context);
|
|
19
|
+
}
|
|
20
|
+
else if (Array.isArray(validator)) {
|
|
21
|
+
return (0, array_1.validateWithArray)(validator, value, context);
|
|
22
|
+
}
|
|
23
|
+
// Caporal flag validator
|
|
24
|
+
else if ((0, utils_1.isCaporalValidator)(validator)) {
|
|
25
|
+
return (0, caporal_1.validateWithCaporal)(validator, value, context);
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/validator/validate.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAiBH,4BAiBC;AAvBD,qCAA6C;AAC7C,mCAA2C;AAC3C,yCAAiD;AACjD,uCAA+C;AAC/C,mCAA4C;AAE5C,SAAgB,QAAQ,CACtB,KAAoC,EACpC,SAAoB,EACpB,OAA0B;IAE1B,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,IAAA,+BAAoB,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,SAAS,YAAY,MAAM,EAAE,CAAC;QACvC,OAAO,IAAA,2BAAkB,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,IAAA,yBAAiB,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IACD,yBAAyB;SACpB,IAAI,IAAA,0BAAkB,EAAC,SAAS,CAAC,EAAE,CAAC;QACvC,OAAO,IAAA,6BAAmB,EAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|