@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,349 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
* @module caporal/program
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from "events";
|
|
6
|
+
import { Command } from "../command";
|
|
7
|
+
import { CustomizedHelpOpts } from "../help/types";
|
|
8
|
+
import { Action, Logger, ParserTypes, ProgramConfig, CreateArgumentOpts, CreateOptionProgramOpts, CommandConfig } from "../types";
|
|
9
|
+
import { CaporalValidator } from "../types";
|
|
10
|
+
/**
|
|
11
|
+
* Program class
|
|
12
|
+
*
|
|
13
|
+
* @noInheritDoc
|
|
14
|
+
*/
|
|
15
|
+
export declare class Program extends EventEmitter {
|
|
16
|
+
private commands;
|
|
17
|
+
private _config;
|
|
18
|
+
private _version?;
|
|
19
|
+
private _name?;
|
|
20
|
+
private _description?;
|
|
21
|
+
private _programmaticMode;
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
defaultCommand?: Command;
|
|
26
|
+
private _progCommand?;
|
|
27
|
+
private _bin;
|
|
28
|
+
private _discoveryPath?;
|
|
29
|
+
private _discoveredCommands?;
|
|
30
|
+
/**
|
|
31
|
+
* Number validator. Check that the value looks like a numeric one
|
|
32
|
+
* and cast the provided value to a javascript `Number`.
|
|
33
|
+
*/
|
|
34
|
+
readonly NUMBER = CaporalValidator.NUMBER;
|
|
35
|
+
/**
|
|
36
|
+
* String validator. Mainly used to make sure the value is a string,
|
|
37
|
+
* and prevent Caporal auto-casting of numerical values and boolean
|
|
38
|
+
* strings like `true` or `false`.
|
|
39
|
+
*/
|
|
40
|
+
readonly STRING = CaporalValidator.STRING;
|
|
41
|
+
/**
|
|
42
|
+
* Array validator. Convert any provided value to an array. If a string is provided,
|
|
43
|
+
* this validator will try to split it by commas.
|
|
44
|
+
*/
|
|
45
|
+
readonly ARRAY = CaporalValidator.ARRAY;
|
|
46
|
+
/**
|
|
47
|
+
* Boolean validator. Check that the value looks like a boolean.
|
|
48
|
+
* It accepts values like `true`, `false`, `yes`, `no`, `0`, and `1`
|
|
49
|
+
* and will auto-cast those values to `true` or `false`.
|
|
50
|
+
*/
|
|
51
|
+
readonly BOOLEAN = CaporalValidator.BOOLEAN;
|
|
52
|
+
/**
|
|
53
|
+
* Program constructor.
|
|
54
|
+
* - Detects the "bin" name from process argv
|
|
55
|
+
* - Detects the version from package.json
|
|
56
|
+
* - Set up the help command
|
|
57
|
+
* @ignore
|
|
58
|
+
*/
|
|
59
|
+
constructor();
|
|
60
|
+
/**
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
private setupErrorHandlers;
|
|
64
|
+
/**
|
|
65
|
+
* The program-command is the command attached directly to the program,
|
|
66
|
+
* meaning there is no command-keyword used to trigger it.
|
|
67
|
+
* Mainly used for programs executing only one possible action.
|
|
68
|
+
*
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
get progCommand(): Command;
|
|
72
|
+
/**
|
|
73
|
+
* Setup the help command
|
|
74
|
+
*/
|
|
75
|
+
private setupHelpCommand;
|
|
76
|
+
/**
|
|
77
|
+
* Customize program help. Can be called multiple times to add more paragraphs and/or sections.
|
|
78
|
+
*
|
|
79
|
+
* @param text Help contents
|
|
80
|
+
* @param options Display options
|
|
81
|
+
*/
|
|
82
|
+
help(text: string, options?: Partial<CustomizedHelpOpts>): Program;
|
|
83
|
+
/**
|
|
84
|
+
* Toggle strict mode.
|
|
85
|
+
* Shortcut to calling: `.configure({ strictArgsCount: strict, strictOptions: strict })`.
|
|
86
|
+
* By default, the program is strict, so if you want to disable strict checking,
|
|
87
|
+
* just call `.strict(false)`. This setting can be overridden at the command level.
|
|
88
|
+
*
|
|
89
|
+
* @param strict boolean enabled flag
|
|
90
|
+
*/
|
|
91
|
+
strict(strict?: boolean): Program;
|
|
92
|
+
/**
|
|
93
|
+
* Configure some behavioral properties.
|
|
94
|
+
*
|
|
95
|
+
* @param props properties to set/update
|
|
96
|
+
*/
|
|
97
|
+
configure(props: Partial<ProgramConfig>): Program;
|
|
98
|
+
/**
|
|
99
|
+
* Get a configuration property value. {@link ProgramConfig Possible keys}.
|
|
100
|
+
*
|
|
101
|
+
* @param key Property
|
|
102
|
+
* @internal
|
|
103
|
+
*/
|
|
104
|
+
getConfigProperty<K extends keyof ProgramConfig>(key: K): ProgramConfig[K];
|
|
105
|
+
/**
|
|
106
|
+
* Return a reformatted synopsis string
|
|
107
|
+
*
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
getSynopsis(): Promise<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Return the discovery path, if set
|
|
113
|
+
*
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
get discoveryPath(): string | undefined;
|
|
117
|
+
/**
|
|
118
|
+
* Return the program version
|
|
119
|
+
*
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
getVersion(): string | undefined;
|
|
123
|
+
/**
|
|
124
|
+
* Set the version fo your program.
|
|
125
|
+
* You won't likely use this method as Caporal tries to guess it from your package.json
|
|
126
|
+
*/
|
|
127
|
+
version(ver: string): Program;
|
|
128
|
+
/**
|
|
129
|
+
* Set the program name. If not set, the filename minus the extension will be used.
|
|
130
|
+
*/
|
|
131
|
+
name(name: string): Program;
|
|
132
|
+
/**
|
|
133
|
+
* Return the program name.
|
|
134
|
+
*
|
|
135
|
+
* @internal
|
|
136
|
+
*/
|
|
137
|
+
getName(): string | undefined;
|
|
138
|
+
/**
|
|
139
|
+
* Return the program description.
|
|
140
|
+
*
|
|
141
|
+
* @internal
|
|
142
|
+
*/
|
|
143
|
+
getDescription(): string | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* Set the program description displayed in help.
|
|
146
|
+
*/
|
|
147
|
+
description(desc: string): Program;
|
|
148
|
+
/**
|
|
149
|
+
* Get the bin name (the name of your executable).
|
|
150
|
+
*
|
|
151
|
+
* @internal
|
|
152
|
+
*/
|
|
153
|
+
getBin(): string;
|
|
154
|
+
/**
|
|
155
|
+
* Sets the executable name. By default, it's auto-detected from the filename of your program.
|
|
156
|
+
*
|
|
157
|
+
* @param name Executable name
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* program.bin('myprog')
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
bin(name: string): Program;
|
|
164
|
+
/**
|
|
165
|
+
* Set a custom logger for your program.
|
|
166
|
+
* Your logger should implement the {@link Logger} interface.
|
|
167
|
+
*/
|
|
168
|
+
logger(logger: Logger): Program;
|
|
169
|
+
/**
|
|
170
|
+
* Get the configured logger instance
|
|
171
|
+
*/
|
|
172
|
+
getLogger(): Logger;
|
|
173
|
+
/**
|
|
174
|
+
* Disable a global option. Will warn if the global option
|
|
175
|
+
* does not exist of has already been disabled.
|
|
176
|
+
*
|
|
177
|
+
* @param name Name, short, or long notation of the option to disable.
|
|
178
|
+
*/
|
|
179
|
+
disableGlobalOption(name: string): Program;
|
|
180
|
+
/**
|
|
181
|
+
* Returns the list of all commands registered
|
|
182
|
+
* - By default, Caporal creates one: the "help" command
|
|
183
|
+
* - When calling argument() or action() on the program instance,
|
|
184
|
+
* Caporal also create what is called the "program command", which
|
|
185
|
+
* is a command directly attach to the program, usually used
|
|
186
|
+
* in mono-command programs.
|
|
187
|
+
* @internal
|
|
188
|
+
*/
|
|
189
|
+
getCommands(): Command[];
|
|
190
|
+
/**
|
|
191
|
+
* Add a command to the program.
|
|
192
|
+
*
|
|
193
|
+
* @param name Command name
|
|
194
|
+
* @param description Command description
|
|
195
|
+
* @example
|
|
196
|
+
* ```ts
|
|
197
|
+
* program.command('order', 'Order some food')
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
command(name: string, description: string, config?: Partial<CommandConfig>): Command;
|
|
201
|
+
/**
|
|
202
|
+
* Check if the program has user-defined commands.
|
|
203
|
+
*
|
|
204
|
+
* @internal
|
|
205
|
+
* @private
|
|
206
|
+
*/
|
|
207
|
+
hasCommands(): Promise<boolean>;
|
|
208
|
+
/**
|
|
209
|
+
* @internal
|
|
210
|
+
*/
|
|
211
|
+
getAllCommands(): Promise<Command[]>;
|
|
212
|
+
/**
|
|
213
|
+
* Return the log level override, if any is provided using
|
|
214
|
+
* the right environment variable.
|
|
215
|
+
*
|
|
216
|
+
* @internal
|
|
217
|
+
* @private
|
|
218
|
+
*/
|
|
219
|
+
getLogLevelOverride(): string | undefined;
|
|
220
|
+
/**
|
|
221
|
+
* Enable or disable auto casting of arguments & options at the program level.
|
|
222
|
+
*
|
|
223
|
+
* @param enabled
|
|
224
|
+
*/
|
|
225
|
+
cast(enabled: boolean): Program;
|
|
226
|
+
/**
|
|
227
|
+
* Sets a *unique* action for the *entire* program.
|
|
228
|
+
*
|
|
229
|
+
* @param {Function} action - Action to run
|
|
230
|
+
*/
|
|
231
|
+
action(action: Action): Program;
|
|
232
|
+
/**
|
|
233
|
+
* Add an argument to the *unique* command of the program.
|
|
234
|
+
*/
|
|
235
|
+
argument(synopsis: string, description: string, options?: CreateArgumentOpts): Command;
|
|
236
|
+
/**
|
|
237
|
+
* Add an option to the *unique* command of the program,
|
|
238
|
+
* or add a global option to the program when `options.global`
|
|
239
|
+
* is set to `true`.
|
|
240
|
+
*
|
|
241
|
+
* @param synopsis Option synopsis like '-f, --force', or '-f, --file \<file\>', or '--with-openssl [path]'
|
|
242
|
+
* @param description Option description
|
|
243
|
+
* @param options Additional parameters
|
|
244
|
+
*/
|
|
245
|
+
option(synopsis: string, description: string, options?: CreateOptionProgramOpts): Program;
|
|
246
|
+
/**
|
|
247
|
+
* Discover commands from a specified path.
|
|
248
|
+
*
|
|
249
|
+
* Commands must be organized into files (one command per file) in a file tree like:
|
|
250
|
+
*
|
|
251
|
+
* ```sh
|
|
252
|
+
* └── commands
|
|
253
|
+
* ├── config
|
|
254
|
+
* │ ├── set.ts
|
|
255
|
+
* │ └── unset.ts
|
|
256
|
+
* ├── create
|
|
257
|
+
* │ ├── job.ts
|
|
258
|
+
* │ └── service.ts
|
|
259
|
+
* ├── create.ts
|
|
260
|
+
* ├── describe.ts
|
|
261
|
+
* └── get.ts
|
|
262
|
+
* ```
|
|
263
|
+
*
|
|
264
|
+
* The code above shows a short example of `kubectl` commands and subcommands.
|
|
265
|
+
* In this case, Caporal will generate the following commands:
|
|
266
|
+
*
|
|
267
|
+
* - kubectl get [args...] [options...]
|
|
268
|
+
* - kubectl config set [args...] [options...]
|
|
269
|
+
* - kubectl config unset [args...] [options...]
|
|
270
|
+
* - kubectl create [args...] [options...]
|
|
271
|
+
* - kubectl create job [args...] [options...]
|
|
272
|
+
* - kubectl create service [args...] [options...]
|
|
273
|
+
* - kubectl describe [args...] [options...]
|
|
274
|
+
* - kubectl get [args...] [options...]
|
|
275
|
+
*
|
|
276
|
+
* Notice how the `config` command has a mandatory subcommand associated,
|
|
277
|
+
* hence cannot be called without a subcommand, contrary to the `create` command.
|
|
278
|
+
* This is why there is no `config.ts` in the tree.
|
|
279
|
+
*
|
|
280
|
+
* @param path
|
|
281
|
+
*/
|
|
282
|
+
discover(dirPath: string): Program;
|
|
283
|
+
/**
|
|
284
|
+
* Do a full scan of the discovery path to get all existing commands
|
|
285
|
+
* This should only be used to generate the full list of command,
|
|
286
|
+
* as for help rendering
|
|
287
|
+
*
|
|
288
|
+
* @private
|
|
289
|
+
*/
|
|
290
|
+
private scanCommands;
|
|
291
|
+
/**
|
|
292
|
+
* Reset all commands
|
|
293
|
+
*
|
|
294
|
+
* @internal
|
|
295
|
+
*/
|
|
296
|
+
reset(): Program;
|
|
297
|
+
/**
|
|
298
|
+
* Run the program by parsing command line arguments.
|
|
299
|
+
* Caporal will automatically detect command line arguments from `process.argv` values,
|
|
300
|
+
* but it can be overridden by providing the `argv` parameter. It returns a Promise
|
|
301
|
+
* of the value returned by the *Action* triggered.
|
|
302
|
+
*
|
|
303
|
+
* ::: warning Be careful
|
|
304
|
+
* This method returns a `Promise`. You'll usually ignore the returned promise and call run() like this:
|
|
305
|
+
*
|
|
306
|
+
* ```ts
|
|
307
|
+
* [...]
|
|
308
|
+
* program.action(...)
|
|
309
|
+
* program.run()
|
|
310
|
+
* ```
|
|
311
|
+
*
|
|
312
|
+
* If you do add some `.catch()` handler to it, Caporal won't display any potential errors
|
|
313
|
+
* that the promise could reject, and will let you the responsibility to do it.
|
|
314
|
+
* :::
|
|
315
|
+
*
|
|
316
|
+
* @param argv Command line arguments to parse, default to `process.argv.slice(2)`.
|
|
317
|
+
*/
|
|
318
|
+
run(argv?: string[]): Promise<unknown>;
|
|
319
|
+
/**
|
|
320
|
+
* Try to find the executed command from argv
|
|
321
|
+
* If command cannot be found from argv, return the default command if any,
|
|
322
|
+
* then the program-command if any, or finally `undefined`.
|
|
323
|
+
* If argv is empty, and there is no defaultCommand or progCommand
|
|
324
|
+
* use the help command
|
|
325
|
+
*
|
|
326
|
+
* @param argv
|
|
327
|
+
*/
|
|
328
|
+
private findCommand;
|
|
329
|
+
/**
|
|
330
|
+
* Run a command, providing parsed data
|
|
331
|
+
*
|
|
332
|
+
* @param result
|
|
333
|
+
* @param cmd
|
|
334
|
+
* @internal
|
|
335
|
+
*/
|
|
336
|
+
private _run;
|
|
337
|
+
/**
|
|
338
|
+
* Programmatic usage. Execute input command with given arguments & options
|
|
339
|
+
*
|
|
340
|
+
* Not ideal regarding type casting etc.
|
|
341
|
+
*
|
|
342
|
+
* @param args argv array
|
|
343
|
+
* @param options options object
|
|
344
|
+
* @param ddash double dash array
|
|
345
|
+
* @public
|
|
346
|
+
*/
|
|
347
|
+
exec(args: string[], options?: Record<string, ParserTypes>, ddash?: string[]): Promise<unknown>;
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/program/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAMrC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAMpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAUlD,OAAO,EACL,MAAM,EACN,MAAM,EAGN,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAM3C;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IACvC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,KAAK,CAAC,CAAQ;IACtB,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,iBAAiB,CAAQ;IACjC;;OAEG;IACI,cAAc,CAAC,EAAE,OAAO,CAAA;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,cAAc,CAAC,CAAQ;IAC/B,OAAO,CAAC,mBAAmB,CAAC,CAAW;IAEvC;;;OAGG;IACH,QAAQ,CAAC,MAAM,2BAA0B;IACzC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,2BAA0B;IACzC;;;OAGG;IACH,QAAQ,CAAC,KAAK,0BAAyB;IACvC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,4BAA2B;IAE3C;;;;;;OAMG;;IAeH;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,OAAO,CAKzB;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAAG,OAAO;IAKtE;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,UAAO,GAAG,OAAO;IAO9B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO;IAKjD;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAI1E;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IASpC;;;;OAIG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED;;;;OAIG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK7B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK3B;;;;OAIG;IACH,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B;;;;OAIG;IACH,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKlC;;;;OAIG;IACH,MAAM,IAAI,MAAM;IAIhB;;;;;;;;OAQG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK1B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAU1C;;;;;;;;OAQG;IACH,WAAW,IAAI,OAAO,EAAE;IAIxB;;;;;;;;;OASG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,OAAO;IAMV;;;;;OAKG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK1C;;;;;;OAMG;IACI,mBAAmB,IAAI,MAAM,GAAG,SAAS;IAIhD;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAI/B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/B;;OAEG;IACH,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO;IAIV;;;;;;;;OAQG;IACH,MAAM,CACJ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,GACpC,OAAO;IAUV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAgBlC;;;;;;OAMG;YACW,YAAY;IAY1B;;;;OAIG;IACI,KAAK,IAAI,OAAO;IAOvB;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B5C;;;;;;;;OAQG;YACW,WAAW;IAmBzB;;;;;;OAMG;YACW,IAAI;IA2BlB;;;;;;;;;OASG;IACG,IAAI,CACR,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAM,EACzC,KAAK,GAAE,MAAM,EAAO,GACnB,OAAO,CAAC,OAAO,CAAC;CAgBpB"}
|