'use strict';Object.defineProperty(exports, "__esModule", { value: true });exports.default =












































validateCLIOptions;var _chalk;function _load_chalk() {return _chalk = _interopRequireDefault(require('chalk'));}var _jestValidate;function _load_jestValidate() {return _jestValidate = require('jest-validate');}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const BULLET = (_chalk || _load_chalk()).default.bold('\u25cf'); /**
                                                                                                                                                                                                                                                                                                                                                                                 * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
                                                                                                                                                                                                                                                                                                                                                                                 *
                                                                                                                                                                                                                                                                                                                                                                                 * This source code is licensed under the MIT license found in the
                                                                                                                                                                                                                                                                                                                                                                                 * LICENSE file in the root directory of this source tree.
                                                                                                                                                                                                                                                                                                                                                                                 *
                                                                                                                                                                                                                                                                                                                                                                                 * 
                                                                                                                                                                                                                                                                                                                                                                                 */const createCLIValidationError = (unrecognizedOptions, allowedOptions) => {let title = `${BULLET} Unrecognized CLI Parameter`;let message;const comment = `  ${(_chalk || _load_chalk()).default.bold('CLI Options Documentation')}:\n` + `  http://facebook.github.io/jest/docs/cli.html\n`;if (unrecognizedOptions.length === 1) {const unrecognized = unrecognizedOptions[0];const didYouMeanMessage = (0, (_jestValidate || _load_jestValidate()).createDidYouMeanMessage)(unrecognized, Array.from(allowedOptions));message = `  Unrecognized option ${(_chalk || _load_chalk()).default.bold((0, (_jestValidate || _load_jestValidate()).format)(unrecognized))}.` + (didYouMeanMessage ? ` ${didYouMeanMessage}` : '');} else {title += 's';message = `  Following options were not recognized:\n` + `  ${(_chalk || _load_chalk()).default.bold((0, (_jestValidate || _load_jestValidate()).format)(unrecognizedOptions))}`;}return new (_jestValidate || _load_jestValidate()).ValidationError(title, message, comment);};function validateCLIOptions(argv, options) {const yargsSpecialOptions = ['$0', '_', 'help', 'h'];const allowedOptions = Object.keys(options).reduce((acc, option) => acc.add(option).add(options[option].alias || option), new Set(yargsSpecialOptions));const unrecognizedOptions = Object.keys(argv).filter(arg => !allowedOptions.has(arg));


  if (unrecognizedOptions.length) {
    throw createCLIValidationError(unrecognizedOptions, allowedOptions);
  }

  return true;
}