UNPKG

webdriverio-automation

Version:

WebdriverIO-Automation android ios project

103 lines (77 loc) 10.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.allowCrossDomain = allowCrossDomain; exports.fixPythonContentType = fixPythonContentType; exports.defaultToJSONContentType = defaultToJSONContentType; exports.catchAllHandler = catchAllHandler; exports.catch404Handler = catch404Handler; exports.catch4XXHandler = catch4XXHandler; exports.allowCrossDomainAsyncExecute = allowCrossDomainAsyncExecute; require("source-map-support/register"); var _logger = _interopRequireDefault(require("./logger")); var _protocol = require("../protocol"); function allowCrossDomain(req, res, next) { try { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS, DELETE'); res.header('Access-Control-Allow-Headers', 'Cache-Control, Pragma, Origin, X-Requested-With, Content-Type, Accept, User-Agent'); if ('OPTIONS' === req.method) { return res.sendStatus(200); } } catch (err) { _logger.default.error(`Unexpected error: ${err.stack}`); } next(); } function allowCrossDomainAsyncExecute(req, res, next) { const receiveAsyncResponseRegExp = new RegExp(`(/wd/hub)?/session/[a-f0-9-]+/(appium/)?receive_async_response`); if (!receiveAsyncResponseRegExp.test(req.url)) { return next(); } allowCrossDomain(req, res, next); } function fixPythonContentType(req, res, next) { if (/^\/wd/.test(req.path) && /^Python/.test(req.headers['user-agent'])) { if (req.headers['content-type'] === 'application/x-www-form-urlencoded') { req.headers['content-type'] = 'application/json; charset=utf-8'; } } next(); } function defaultToJSONContentType(req, res, next) { if (!req.headers['content-type']) { req.headers['content-type'] = 'application/json; charset=utf-8'; } next(); } function catchAllHandler(err, req, res, next) { _logger.default.error(`Uncaught error: ${err.message}`); _logger.default.error('Sending generic error response'); try { res.status(500).send({ status: _protocol.errors.UnknownError.code(), value: `ERROR running Appium command: ${err.message}` }); _logger.default.error(err); } catch (ign) { next(ign); } } function catch4XXHandler(err, req, res, next) { if (err.status >= 400 && err.status < 500) { _logger.default.debug(`Setting content type to 'text/plain' for HTTP status '${err.status}'`); res.set('content-type', 'text/plain'); res.status(err.status).send(`Unable to process request: ${err.message}`); } else { next(err); } } function catch404Handler(req, res) { _logger.default.debug('No route found. Setting content type to \'text/plain\''); res.set('content-type', 'text/plain'); res.status(404).send(`The URL '${req.originalUrl}' did not map to a valid resource`); }require('source-map-support').install(); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL21pZGRsZXdhcmUuanMiXSwibmFtZXMiOlsiYWxsb3dDcm9zc0RvbWFpbiIsInJlcSIsInJlcyIsIm5leHQiLCJoZWFkZXIiLCJtZXRob2QiLCJzZW5kU3RhdHVzIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJzdGFjayIsImFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUiLCJyZWNlaXZlQXN5bmNSZXNwb25zZVJlZ0V4cCIsIlJlZ0V4cCIsInRlc3QiLCJ1cmwiLCJmaXhQeXRob25Db250ZW50VHlwZSIsInBhdGgiLCJoZWFkZXJzIiwiZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlIiwiY2F0Y2hBbGxIYW5kbGVyIiwibWVzc2FnZSIsInN0YXR1cyIsInNlbmQiLCJlcnJvcnMiLCJVbmtub3duRXJyb3IiLCJjb2RlIiwidmFsdWUiLCJpZ24iLCJjYXRjaDRYWEhhbmRsZXIiLCJkZWJ1ZyIsInNldCIsImNhdGNoNDA0SGFuZGxlciIsIm9yaWdpbmFsVXJsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLFNBQVNBLGdCQUFULENBQTJCQyxHQUEzQixFQUFnQ0MsR0FBaEMsRUFBcUNDLElBQXJDLEVBQTJDO0FBQ3pDLE1BQUk7QUFDRkQsSUFBQUEsR0FBRyxDQUFDRSxNQUFKLENBQVcsNkJBQVgsRUFBMEMsR0FBMUM7QUFDQUYsSUFBQUEsR0FBRyxDQUFDRSxNQUFKLENBQVcsOEJBQVgsRUFBMkMsaUNBQTNDO0FBQ0FGLElBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLDhCQUFYLEVBQTJDLG1GQUEzQzs7QUFHQSxRQUFJLGNBQWNILEdBQUcsQ0FBQ0ksTUFBdEIsRUFBOEI7QUFDNUIsYUFBT0gsR0FBRyxDQUFDSSxVQUFKLENBQWUsR0FBZixDQUFQO0FBQ0Q7QUFDRixHQVRELENBU0UsT0FBT0MsR0FBUCxFQUFZO0FBQ1pDLG9CQUFJQyxLQUFKLENBQVcscUJBQW9CRixHQUFHLENBQUNHLEtBQU0sRUFB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QSxHQUFHLENBQUM2QixHQUFKLENBQVEsY0FBUixFQUF3QixZQUF4QjtBQUNBN0IsRUFBQUEsR0FBRyxDQUFDb0IsTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXNCLFlBQVd0QixHQUFHLENBQUNnQyxXQUFZLG1DQUFqRDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi9wcm90b2NvbCc7XG5cblxuZnVuY3Rpb24gYWxsb3dDcm9zc0RvbWFpbiAocmVxLCByZXMsIG5leHQpIHtcbiAgdHJ5IHtcbiAgICByZXMuaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLCAnR0VULCBQT1NULCBQVVQsIE9QVElPTlMsIERFTEVURScpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCAnQ2FjaGUtQ29udHJvbCwgUHJhZ21hLCBPcmlnaW4sIFgtUmVxdWVzdGVkLVdpdGgsIENvbnRlbnQtVHlwZSwgQWNjZXB0LCBVc2VyLUFnZW50Jyk7XG5cbiAgICAvLyBuZWVkIHRvIHJlc3BvbmQgMjAwIHRvIE9QVElPTlNcbiAgICBpZiAoJ09QVElPTlMnID09PSByZXEubWV0aG9kKSB7XG4gICAgICByZXR1cm4gcmVzLnNlbmRTdGF0dXMoMjAwKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvcihgVW5leHBlY3RlZCBlcnJvcjogJHtlcnIuc3RhY2t9YCk7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlIChyZXEsIHJlcywgbmV4dCkge1xuICAvLyB0aGVyZSBhcmUgdHdvIHBhdGhzIGZvciBhc3luYyByZXNwb25zZXMsIHNvIGNvdmVyIGJvdGhcbiAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci90eFlpRXovMVxuICBjb25zdCByZWNlaXZlQXN5bmNSZXNwb25zZVJlZ0V4cCA9IG5ldyBSZWdFeHAoYCgvd2QvaHViKT8vc2Vzc2lvbi9bYS1mMC05LV0rLyhhcHBpdW0vKT9yZWNlaXZlX2FzeW5jX3Jlc3BvbnNlYCk7XG4gIGlmICghcmVjZWl2ZUFzeW5jUmVzcG9uc2VSZWdFeHAudGVzdChyZXEudXJsKSkge1xuICAgIHJldHVybiBuZXh0KCk7XG4gIH1cbiAgYWxsb3dDcm9zc0RvbWFpbihyZXEsIHJlcywgbmV4dCk7XG59XG5cbmZ1bmN0aW9uIGZpeFB5dGhvbkNvbnRlbnRUeXBlIChyZXEsIHJlcywgbmV4dCkge1xuICAvLyBoYWNrIGJlY2F1c2UgcHl0aG9uIGNsaWVudCBsaWJyYXJ5IGdpdmVzIHVzIHdyb25nIGNvbnRlbnQtdHlwZVxuICBpZiAoL15cXC93ZC8udGVzdChyZXEucGF0aCkgJiYgL15QeXRob24vLnRlc3QocmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSkpIHtcbiAgICBpZiAocmVxLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykge1xuICAgICAgcmVxLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnO1xuICAgIH1cbiAgfVxuICBuZXh0KCk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSAocmVxLCByZXMsIG5leHQpIHtcbiAgaWYgKCFyZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10pIHtcbiAgICByZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBjYXRjaEFsbEhhbmRsZXIgKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgbG9nLmVycm9yKGBVbmNhdWdodCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgbG9nLmVycm9yKCdTZW5kaW5nIGdlbmVyaWMgZXJyb3IgcmVzcG9uc2UnKTtcbiAgdHJ5IHtcbiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCh7XG4gICAgICBzdGF0dXM6IGVycm9ycy5Vbmtub3duRXJyb3IuY29kZSgpLFxuICAgICAgdmFsdWU6IGBFUlJPUiBydW5uaW5nIEFwcGl1bSBjb21tYW5kOiAke2Vyci5tZXNzYWdlfWBcbiAgICB9KTtcbiAgICBsb2cuZXJyb3IoZXJyKTtcbiAgfSBjYXRjaCAoaWduKSB7XG4gICAgbmV4dChpZ24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhdGNoNFhYSGFuZGxlciAoZXJyLCByZXEsIHJlcywgbmV4dCkge1xuICBpZiAoZXJyLnN0YXR1cyA+PSA0MDAgJiYgZXJyLnN0YXR1cyA8IDUwMCkge1xuICAgIC8vIHNldCB0aGUgY29udGVudCB0eXBlIHRvIGB0ZXh0L3BsYWluYFxuICAgIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3Avc2VsZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29sI1Jlc3BvbnNlc1xuICAgIGxvZy5kZWJ1ZyhgU2V0dGluZyBjb250ZW50IHR5cGUgdG8gJ3RleHQvcGxhaW4nIGZvciBIVFRQIHN0YXR1cyAnJHtlcnIuc3RhdHVzfSdgKTtcbiAgICByZXMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpO1xuICAgIHJlcy5zdGF0dXMoZXJyLnN0YXR1cykuc2VuZChgVW5hYmxlIHRvIHByb2Nlc3MgcmVxdWVzdDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0KGVycik7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2F0Y2g0MDRIYW5kbGVyIChyZXEsIHJlcykge1xuICAvLyBzZXQgdGhlIGNvbnRlbnQgdHlwZSB0byBgdGV4dC9wbGFpbmBcbiAgLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjUmVzcG9uc2VzXG4gIGxvZy5kZWJ1ZygnTm8gcm91dGUgZm91bmQuIFNldHRpbmcgY29udGVudCB0eXBlIHRvIFxcJ3RleHQvcGxhaW5cXCcnKTtcbiAgcmVzLnNldCgnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKTtcbiAgcmVzLnN0YXR1cyg0MDQpLnNlbmQoYFRoZSBVUkwgJyR7cmVxLm9yaWdpbmFsVXJsfScgZGlkIG5vdCBtYXAgdG8gYSB2YWxpZCByZXNvdXJjZWApO1xufVxuXG5leHBvcnQge1xuICBhbGxvd0Nyb3NzRG9tYWluLCBmaXhQeXRob25Db250ZW50VHlwZSwgZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlLFxuICBjYXRjaEFsbEhhbmRsZXIsIGNhdGNoNDA0SGFuZGxlciwgY2F0Y2g0WFhIYW5kbGVyLFxuICBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlLFxufTtcbiJdLCJmaWxlIjoibGliL2V4cHJlc3MvbWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9