HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/bomacon.komma.pro/node_modules/cypress/lib/errors.js
'use strict';

var _templateObject = _taggedTemplateLiteral(['\n  Does your workplace require a proxy to be used to access the Internet? If so, you must configure the HTTP_PROXY environment variable before downloading Cypress. Read more: https://on.cypress.io/proxy-configuration\n\n  Otherwise, please check network connectivity and try again:'], ['\n  Does your workplace require a proxy to be used to access the Internet? If so, you must configure the HTTP_PROXY environment variable before downloading Cypress. Read more: https://on.cypress.io/proxy-configuration\n\n  Otherwise, please check network connectivity and try again:']),
    _templateObject2 = _taggedTemplateLiteral(['\n    Search for an existing issue or open a GitHub issue at\n\n      ', '\n  '], ['\n    Search for an existing issue or open a GitHub issue at\n\n      ', '\n  ']),
    _templateObject3 = _taggedTemplateLiteral(['\n    \nPlease reinstall Cypress by running: ', '\n  '], ['\n    \\nPlease reinstall Cypress by running: ', '\n  ']),
    _templateObject4 = _taggedTemplateLiteral(['\n\n    Reasons this may happen:\n\n    - node was installed as \'root\' or with \'sudo\'\n    - the cypress npm package as \'root\' or with \'sudo\'\n\n    Please check that you have the appropriate user permissions.\n  '], ['\\n\n    Reasons this may happen:\n\n    - node was installed as \'root\' or with \'sudo\'\n    - the cypress npm package as \'root\' or with \'sudo\'\n\n    Please check that you have the appropriate user permissions.\n  ']),
    _templateObject5 = _taggedTemplateLiteral(['\n\n    We expected the binary to be installed here: ', '\n\n    Reasons it may be missing:\n\n    - You\'re caching \'node_modules\' but are not caching this path: ', '\n    - You ran \'npm install\' at an earlier build step but did not persist: ', '\n\n    Properly caching the binary will fix this error and avoid downloading and unzipping Cypress.\n\n    Alternatively, you can run \'cypress install\' to download the binary again.\n\n    ', '\n  '], ['\\n\n    We expected the binary to be installed here: ', '\n\n    Reasons it may be missing:\n\n    - You\'re caching \'node_modules\' but are not caching this path: ', '\n    - You ran \'npm install\' at an earlier build step but did not persist: ', '\n\n    Properly caching the binary will fix this error and avoid downloading and unzipping Cypress.\n\n    Alternatively, you can run \'cypress install\' to download the binary again.\n\n    ', '\n  ']),
    _templateObject6 = _taggedTemplateLiteral(['\n    There was a problem spawning Xvfb.\n\n    This is likely a problem with your system, permissions, or installation of Xvfb.\n    '], ['\n    There was a problem spawning Xvfb.\n\n    This is likely a problem with your system, permissions, or installation of Xvfb.\n    ']),
    _templateObject7 = _taggedTemplateLiteral(['\n    Install Xvfb and run Cypress again.\n\n    Read our documentation on dependencies for more information:\n\n      ', '\n\n    If you are using Docker, we provide containers with all required dependencies installed.\n    '], ['\n    Install Xvfb and run Cypress again.\n\n    Read our documentation on dependencies for more information:\n\n      ', '\n\n    If you are using Docker, we provide containers with all required dependencies installed.\n    ']),
    _templateObject8 = _taggedTemplateLiteral(['\n    This command failed with the following output:\n\n    ', '\n\n    '], ['\n    This command failed with the following output:\n\n    ', '\n\n    ']),
    _templateObject9 = _taggedTemplateLiteral(['\n      Cypress failed to start after spawning a new Xvfb server.\n\n      The error logs we received were:\n\n      ', '\n\n      ', '\n\n      ', '\n\n      This is usually caused by a missing library or dependency.\n\n      The error above should indicate which dependency is missing.\n\n        ', '\n\n      If you are using Docker, we provide containers with all required dependencies installed.\n    '], ['\n      Cypress failed to start after spawning a new Xvfb server.\n\n      The error logs we received were:\n\n      ', '\n\n      ', '\n\n      ', '\n\n      This is usually caused by a missing library or dependency.\n\n      The error above should indicate which dependency is missing.\n\n        ', '\n\n      If you are using Docker, we provide containers with all required dependencies installed.\n    ']),
    _templateObject10 = _taggedTemplateLiteral(['\n    This is usually caused by a missing library or dependency.\n\n    The error below should indicate which dependency is missing.\n\n      ', '\n\n    If you are using Docker, we provide containers with all required dependencies installed.\n  '], ['\n    This is usually caused by a missing library or dependency.\n\n    The error below should indicate which dependency is missing.\n\n      ', '\n\n    If you are using Docker, we provide containers with all required dependencies installed.\n  ']),
    _templateObject11 = _taggedTemplateLiteral(['\n    See discussion and possible solutions at\n    ', '\n  '], ['\n    See discussion and possible solutions at\n    ', '\n  ']),
    _templateObject12 = _taggedTemplateLiteral(['\n    Please search Cypress documentation for possible solutions:\n\n      ', '\n\n    Check if there is a GitHub issue describing this crash:\n\n      ', '\n\n    Consider opening a new issue.\n  '], ['\n    Please search Cypress documentation for possible solutions:\n\n      ', '\n\n    Check if there is a GitHub issue describing this crash:\n\n      ', '\n\n    Consider opening a new issue.\n  ']),
    _templateObject13 = _taggedTemplateLiteral(['\n    The environment variable CYPRESS_BINARY_VERSION has been renamed to CYPRESS_INSTALL_BINARY as of version ', '\n    '], ['\n    The environment variable CYPRESS_BINARY_VERSION has been renamed to CYPRESS_INSTALL_BINARY as of version ', '\n    ']),
    _templateObject14 = _taggedTemplateLiteral(['\n    You should set CYPRESS_INSTALL_BINARY instead.\n    '], ['\n    You should set CYPRESS_INSTALL_BINARY instead.\n    ']),
    _templateObject15 = _taggedTemplateLiteral(['\n    The environment variable CYPRESS_SKIP_BINARY_INSTALL has been removed as of version ', '\n    '], ['\n    The environment variable CYPRESS_SKIP_BINARY_INSTALL has been removed as of version ', '\n    ']),
    _templateObject16 = _taggedTemplateLiteral(['\n      To skip the binary install, set CYPRESS_INSTALL_BINARY=0\n    '], ['\n      To skip the binary install, set CYPRESS_INSTALL_BINARY=0\n    ']),
    _templateObject17 = _taggedTemplateLiteral(['\n    Platform: ', ' (', ')\n    Cypress Version: ', '\n  '], ['\n    Platform: ', ' (', ')\n    Cypress Version: ', '\n  ']);

function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }

var os = require('os');
var chalk = require('chalk');

var _require = require('common-tags'),
    stripIndent = _require.stripIndent,
    stripIndents = _require.stripIndents;

var _require2 = require('ramda'),
    merge = _require2.merge;

var la = require('lazy-ass');
var is = require('check-more-types');

var util = require('./util');
var state = require('./tasks/state');

var docsUrl = 'https://on.cypress.io';
var requiredDependenciesUrl = docsUrl + '/required-dependencies';

// TODO it would be nice if all error objects could be enforced via types
// to only have description + solution properties

var hr = '----------';

// common errors Cypress application can encounter
var failedDownload = {
  description: 'The Cypress App could not be downloaded.',
  solution: stripIndent(_templateObject)
};

var failedUnzip = {
  description: 'The Cypress App could not be unzipped.',
  solution: stripIndent(_templateObject2, chalk.blue(util.issuesUrl))
};

var missingApp = function missingApp(binaryDir) {
  return {
    description: 'No version of Cypress is installed in: ' + chalk.cyan(binaryDir),
    solution: stripIndent(_templateObject3, chalk.cyan('cypress install'))
  };
};

var binaryNotExecutable = function binaryNotExecutable(executable) {
  return {
    description: 'Cypress cannot run because this binary file does not have executable permissions here:\n\n' + executable,
    solution: stripIndent(_templateObject4)
  };
};

var notInstalledCI = function notInstalledCI(executable) {
  return {
    description: 'The cypress npm package is installed, but the Cypress binary is missing.',
    solution: stripIndent(_templateObject5, chalk.cyan(executable), util.getCacheDir(), util.getCacheDir(), chalk.blue('https://on.cypress.io/not-installed-ci-error'))
  };
};

var nonZeroExitCodeXvfb = {
  description: 'Xvfb exited with a non zero exit code.',
  solution: stripIndent(_templateObject6)
};

var missingXvfb = {
  description: 'Your system is missing the dependency: Xvfb',
  solution: stripIndent(_templateObject7, chalk.blue(requiredDependenciesUrl))
};

var smokeTestFailure = function smokeTestFailure(smokeTestCommand, timedOut) {
  return {
    description: 'Cypress verification ' + (timedOut ? 'timed out' : 'failed') + '.',
    solution: stripIndent(_templateObject8, smokeTestCommand)
  };
};

var invalidSmokeTestDisplayError = {
  code: 'INVALID_SMOKE_TEST_DISPLAY_ERROR',
  description: 'Cypress verification failed.',
  solution: function solution(msg) {
    return stripIndent(_templateObject9, hr, msg, hr, chalk.blue(requiredDependenciesUrl));
  }
};

var missingDependency = {
  description: 'Cypress failed to start.',
  // this message is too Linux specific
  solution: stripIndent(_templateObject10, chalk.blue(requiredDependenciesUrl))
};

var invalidCacheDirectory = {
  description: 'Cypress cannot write to the cache directory due to file permissions',
  solution: stripIndent(_templateObject11, chalk.blue(util.getGitHubIssueUrl(1281)))
};

var versionMismatch = {
  description: 'Installed version does not match package version.',
  solution: 'Install Cypress and verify app again'
};

var unexpected = {
  description: 'An unexpected error occurred while verifying the Cypress executable.',
  solution: stripIndent(_templateObject12, chalk.blue(docsUrl), chalk.blue(util.issuesUrl))
};

var invalidCypressEnv = {
  description: chalk.red('The environment variable with the reserved name "CYPRESS_ENV" is set.'),
  solution: chalk.red('Unset the "CYPRESS_ENV" environment variable and run Cypress again.'),
  exitCode: 11
};

var removed = {
  CYPRESS_BINARY_VERSION: {
    description: stripIndent(_templateObject13, chalk.green('3.0.0')),
    solution: stripIndent(_templateObject14)
  },
  CYPRESS_SKIP_BINARY_INSTALL: {
    description: stripIndent(_templateObject15, chalk.green('3.0.0')),
    solution: stripIndent(_templateObject16)
  }
};

var CYPRESS_RUN_BINARY = {
  notValid: function notValid(value) {
    var properFormat = '**/' + state.getPlatformExecutable();

    return {
      description: 'Could not run binary set by environment variable: CYPRESS_RUN_BINARY=' + value,
      solution: 'Ensure the environment variable is a path to the Cypress binary, matching ' + properFormat
    };
  }
};

function getPlatformInfo() {
  return util.getOsVersionAsync().then(function (version) {
    return stripIndent(_templateObject17, os.platform(), version, util.pkgVersion());
  });
}

function addPlatformInformation(info) {
  return getPlatformInfo().then(function (platform) {
    return merge(info, { platform: platform });
  });
}

/**
 * Forms nice error message with error and platform information,
 * and if possible a way to solve it. Resolves with a string.
 */
function formErrorText(info, msg, prevMessage) {
  return addPlatformInformation(info).then(function (obj) {
    var formatted = [];

    function add(msg) {
      formatted.push(stripIndents(msg));
    }

    la(is.unemptyString(obj.description), 'expected error description to be text', obj.description);

    // assuming that if there the solution is a function it will handle
    // error message and (optional previous error message)
    if (is.fn(obj.solution)) {
      var text = obj.solution(msg, prevMessage);

      la(is.unemptyString(text), 'expected solution to be text', text);

      add('\n        ' + obj.description + '\n\n        ' + text + '\n\n      ');
    } else {
      la(is.unemptyString(obj.solution), 'expected error solution to be text', obj.solution);

      add('\n        ' + obj.description + '\n\n        ' + obj.solution + '\n\n      ');

      if (msg) {
        add('\n          ' + hr + '\n\n          ' + msg + '\n\n        ');
      }
    }

    add('\n      ' + hr + '\n\n      ' + obj.platform + '\n    ');

    if (obj.footer) {
      add('\n\n        ' + hr + '\n\n        ' + obj.footer + '\n      ');
    }

    return formatted.join('\n\n');
  });
}

var raise = function raise(info) {
  return function (text) {
    var err = new Error(text);

    if (info.code) {
      err.code = info.code;
    }

    err.known = true;
    throw err;
  };
};

var throwFormErrorText = function throwFormErrorText(info) {
  return function (msg, prevMessage) {
    return formErrorText(info, msg, prevMessage).then(raise(info));
  };
};

/**
 * Forms full error message with error and OS details, prints to the error output
 * and then exits the process.
 * @param {ErrorInformation} info Error information {description, solution}
 * @example return exitWithError(errors.invalidCypressEnv)('foo')
 */
var exitWithError = function exitWithError(info) {
  return function (msg) {
    return formErrorText(info, msg).then(function (text) {
      // eslint-disable-next-line no-console
      console.error(text);
      process.exit(info.exitCode || 1);
    });
  };
};

module.exports = {
  raise: raise,
  exitWithError: exitWithError,
  // formError,
  formErrorText: formErrorText,
  throwFormErrorText: throwFormErrorText,
  hr: hr,
  errors: {
    nonZeroExitCodeXvfb: nonZeroExitCodeXvfb,
    missingXvfb: missingXvfb,
    missingApp: missingApp,
    notInstalledCI: notInstalledCI,
    missingDependency: missingDependency,
    invalidSmokeTestDisplayError: invalidSmokeTestDisplayError,
    versionMismatch: versionMismatch,
    binaryNotExecutable: binaryNotExecutable,
    unexpected: unexpected,
    failedDownload: failedDownload,
    failedUnzip: failedUnzip,
    invalidCypressEnv: invalidCypressEnv,
    invalidCacheDirectory: invalidCacheDirectory,
    removed: removed,
    CYPRESS_RUN_BINARY: CYPRESS_RUN_BINARY,
    smokeTestFailure: smokeTestFailure
  }
};