@appium/base-driver 8.7.2 → 9.0.0

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.
Files changed (121) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +11 -163
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -1
  3. package/build/lib/basedriver/capabilities.js +354 -236
  4. package/build/lib/basedriver/capabilities.js.map +1 -1
  5. package/build/lib/basedriver/commands/event.d.ts +7 -6
  6. package/build/lib/basedriver/commands/event.d.ts.map +1 -1
  7. package/build/lib/basedriver/commands/event.js +55 -35
  8. package/build/lib/basedriver/commands/event.js.map +1 -1
  9. package/build/lib/basedriver/commands/execute.d.ts +7 -6
  10. package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
  11. package/build/lib/basedriver/commands/execute.js +66 -58
  12. package/build/lib/basedriver/commands/execute.js.map +1 -1
  13. package/build/lib/basedriver/commands/find.d.ts +9 -7
  14. package/build/lib/basedriver/commands/find.d.ts.map +1 -1
  15. package/build/lib/basedriver/commands/find.js +102 -54
  16. package/build/lib/basedriver/commands/find.js.map +1 -1
  17. package/build/lib/basedriver/commands/index.d.ts +3 -7
  18. package/build/lib/basedriver/commands/index.d.ts.map +1 -1
  19. package/build/lib/basedriver/commands/index.js +30 -33
  20. package/build/lib/basedriver/commands/index.js.map +1 -1
  21. package/build/lib/basedriver/commands/log.d.ts +8 -9
  22. package/build/lib/basedriver/commands/log.d.ts.map +1 -1
  23. package/build/lib/basedriver/commands/log.js +54 -38
  24. package/build/lib/basedriver/commands/log.js.map +1 -1
  25. package/build/lib/basedriver/commands/session.d.ts +7 -6
  26. package/build/lib/basedriver/commands/session.d.ts.map +1 -1
  27. package/build/lib/basedriver/commands/session.js +46 -39
  28. package/build/lib/basedriver/commands/session.js.map +1 -1
  29. package/build/lib/basedriver/commands/settings.d.ts +7 -7
  30. package/build/lib/basedriver/commands/settings.d.ts.map +1 -1
  31. package/build/lib/basedriver/commands/settings.js +35 -28
  32. package/build/lib/basedriver/commands/settings.js.map +1 -1
  33. package/build/lib/basedriver/commands/timeout.d.ts +7 -5
  34. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
  35. package/build/lib/basedriver/commands/timeout.js +144 -162
  36. package/build/lib/basedriver/commands/timeout.js.map +1 -1
  37. package/build/lib/basedriver/core.d.ts +6 -157
  38. package/build/lib/basedriver/core.d.ts.map +1 -1
  39. package/build/lib/basedriver/core.js +361 -230
  40. package/build/lib/basedriver/core.js.map +1 -1
  41. package/build/lib/basedriver/desired-caps.js +80 -110
  42. package/build/lib/basedriver/desired-caps.js.map +1 -1
  43. package/build/lib/basedriver/device-settings.js +57 -62
  44. package/build/lib/basedriver/device-settings.js.map +1 -1
  45. package/build/lib/basedriver/driver.d.ts +21 -267
  46. package/build/lib/basedriver/driver.d.ts.map +1 -1
  47. package/build/lib/basedriver/driver.js +362 -258
  48. package/build/lib/basedriver/driver.js.map +1 -1
  49. package/build/lib/basedriver/helpers.js +500 -495
  50. package/build/lib/basedriver/helpers.js.map +1 -1
  51. package/build/lib/basedriver/logger.d.ts +1 -1
  52. package/build/lib/basedriver/logger.d.ts.map +1 -1
  53. package/build/lib/basedriver/logger.js +5 -15
  54. package/build/lib/basedriver/logger.js.map +1 -1
  55. package/build/lib/constants.js +14 -14
  56. package/build/lib/constants.js.map +1 -1
  57. package/build/lib/express/crash.js +8 -15
  58. package/build/lib/express/crash.js.map +1 -1
  59. package/build/lib/express/express-logging.js +49 -59
  60. package/build/lib/express/express-logging.js.map +1 -1
  61. package/build/lib/express/idempotency.js +125 -177
  62. package/build/lib/express/idempotency.js.map +1 -1
  63. package/build/lib/express/logger.d.ts +1 -1
  64. package/build/lib/express/logger.d.ts.map +1 -1
  65. package/build/lib/express/logger.js +5 -15
  66. package/build/lib/express/logger.js.map +1 -1
  67. package/build/lib/express/middleware.js +82 -107
  68. package/build/lib/express/middleware.js.map +1 -1
  69. package/build/lib/express/server.d.ts +17 -5
  70. package/build/lib/express/server.d.ts.map +1 -1
  71. package/build/lib/express/server.js +259 -224
  72. package/build/lib/express/server.js.map +1 -1
  73. package/build/lib/express/static.js +64 -81
  74. package/build/lib/express/static.js.map +1 -1
  75. package/build/lib/express/websocket.js +115 -87
  76. package/build/lib/express/websocket.js.map +1 -1
  77. package/build/lib/helpers/capabilities.d.ts +1 -59
  78. package/build/lib/helpers/capabilities.d.ts.map +1 -1
  79. package/build/lib/helpers/capabilities.js +72 -69
  80. package/build/lib/helpers/capabilities.js.map +1 -1
  81. package/build/lib/index.js +64 -180
  82. package/build/lib/index.js.map +1 -1
  83. package/build/lib/jsonwp-proxy/protocol-converter.js +215 -227
  84. package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
  85. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
  86. package/build/lib/jsonwp-proxy/proxy.js +355 -393
  87. package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
  88. package/build/lib/jsonwp-status/status.js +119 -130
  89. package/build/lib/jsonwp-status/status.js.map +1 -1
  90. package/build/lib/protocol/errors.d.ts +135 -32
  91. package/build/lib/protocol/errors.d.ts.map +1 -1
  92. package/build/lib/protocol/errors.js +871 -919
  93. package/build/lib/protocol/errors.js.map +1 -1
  94. package/build/lib/protocol/helpers.js +37 -37
  95. package/build/lib/protocol/helpers.js.map +1 -1
  96. package/build/lib/protocol/index.js +22 -109
  97. package/build/lib/protocol/index.js.map +1 -1
  98. package/build/lib/protocol/protocol.js +394 -350
  99. package/build/lib/protocol/protocol.js.map +1 -1
  100. package/build/lib/protocol/routes.d.ts +1238 -4
  101. package/build/lib/protocol/routes.d.ts.map +1 -1
  102. package/build/lib/protocol/routes.js +964 -1327
  103. package/build/lib/protocol/routes.js.map +1 -1
  104. package/build/lib/protocol/validators.js +32 -39
  105. package/build/lib/protocol/validators.js.map +1 -1
  106. package/build/tsconfig.tsbuildinfo +1 -1
  107. package/lib/basedriver/capabilities.js +80 -39
  108. package/lib/basedriver/commands/event.js +10 -5
  109. package/lib/basedriver/commands/execute.js +14 -9
  110. package/lib/basedriver/commands/find.js +18 -12
  111. package/lib/basedriver/commands/index.js +21 -16
  112. package/lib/basedriver/commands/log.js +24 -18
  113. package/lib/basedriver/commands/session.js +10 -5
  114. package/lib/basedriver/commands/settings.js +9 -6
  115. package/lib/basedriver/commands/timeout.js +10 -4
  116. package/lib/basedriver/core.js +2 -3
  117. package/lib/basedriver/driver.js +29 -18
  118. package/lib/express/server.js +6 -3
  119. package/lib/protocol/errors.js +155 -44
  120. package/lib/protocol/routes.js +11 -7
  121. package/package.json +14 -16
@@ -1,126 +1,101 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.allowCrossDomain = allowCrossDomain;
7
- exports.allowCrossDomainAsyncExecute = allowCrossDomainAsyncExecute;
8
- exports.catch404Handler = catch404Handler;
9
- exports.catchAllHandler = catchAllHandler;
10
- exports.defaultToJSONContentType = defaultToJSONContentType;
11
- exports.fixPythonContentType = fixPythonContentType;
12
- Object.defineProperty(exports, "handleIdempotency", {
13
- enumerable: true,
14
- get: function () {
15
- return _idempotency.handleIdempotency;
16
- }
17
- });
18
-
19
- require("source-map-support/register");
20
-
21
- var _lodash = _interopRequireDefault(require("lodash"));
22
-
23
- var _logger = _interopRequireDefault(require("./logger"));
24
-
25
- var _protocol = require("../protocol");
26
-
27
- var _idempotency = require("./idempotency");
28
-
29
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
-
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.catch404Handler = exports.handleIdempotency = exports.allowCrossDomainAsyncExecute = exports.catchAllHandler = exports.defaultToJSONContentType = exports.fixPythonContentType = exports.allowCrossDomain = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const logger_1 = __importDefault(require("./logger"));
9
+ const protocol_1 = require("../protocol");
10
+ const idempotency_1 = require("./idempotency");
11
+ Object.defineProperty(exports, "handleIdempotency", { enumerable: true, get: function () { return idempotency_1.handleIdempotency; } });
31
12
  function allowCrossDomain(req, res, next) {
32
- try {
33
- res.header('Access-Control-Allow-Origin', '*');
34
- res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS, DELETE');
35
- res.header('Access-Control-Allow-Headers', 'Cache-Control, Pragma, Origin, X-Requested-With, Content-Type, Accept, User-Agent');
36
-
37
- if ('OPTIONS' === req.method) {
38
- return res.sendStatus(200);
13
+ try {
14
+ res.header('Access-Control-Allow-Origin', '*');
15
+ res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS, DELETE');
16
+ res.header('Access-Control-Allow-Headers', 'Cache-Control, Pragma, Origin, X-Requested-With, Content-Type, Accept, User-Agent');
17
+ // need to respond 200 to OPTIONS
18
+ if ('OPTIONS' === req.method) {
19
+ return res.sendStatus(200);
20
+ }
39
21
  }
40
- } catch (err) {
41
- _logger.default.error(`Unexpected error: ${err.stack}`);
42
- }
43
-
44
- next();
22
+ catch (err) {
23
+ logger_1.default.error(`Unexpected error: ${err.stack}`);
24
+ }
25
+ next();
45
26
  }
46
-
27
+ exports.allowCrossDomain = allowCrossDomain;
47
28
  function allowCrossDomainAsyncExecute(basePath) {
48
- return (req, res, next) => {
49
- const receiveAsyncResponseRegExp = new RegExp(`${_lodash.default.escapeRegExp(basePath)}/session/[a-f0-9-]+/(appium/)?receive_async_response`);
50
-
51
- if (!receiveAsyncResponseRegExp.test(req.url)) {
52
- return next();
53
- }
54
-
55
- allowCrossDomain(req, res, next);
56
- };
29
+ return (req, res, next) => {
30
+ // there are two paths for async responses, so cover both
31
+ // https://regex101.com/r/txYiEz/1
32
+ const receiveAsyncResponseRegExp = new RegExp(`${lodash_1.default.escapeRegExp(basePath)}/session/[a-f0-9-]+/(appium/)?receive_async_response`);
33
+ if (!receiveAsyncResponseRegExp.test(req.url)) {
34
+ return next();
35
+ }
36
+ allowCrossDomain(req, res, next);
37
+ };
57
38
  }
58
-
39
+ exports.allowCrossDomainAsyncExecute = allowCrossDomainAsyncExecute;
59
40
  function fixPythonContentType(basePath) {
60
- return (req, res, next) => {
61
- if (new RegExp(`^${_lodash.default.escapeRegExp(basePath)}`).test(req.path) && /^Python/.test(req.headers['user-agent'])) {
62
- if (req.headers['content-type'] === 'application/x-www-form-urlencoded') {
41
+ return (req, res, next) => {
42
+ // hack because python client library gives us wrong content-type
43
+ if (new RegExp(`^${lodash_1.default.escapeRegExp(basePath)}`).test(req.path) &&
44
+ /^Python/.test(req.headers['user-agent'])) {
45
+ if (req.headers['content-type'] === 'application/x-www-form-urlencoded') {
46
+ req.headers['content-type'] = 'application/json; charset=utf-8';
47
+ }
48
+ }
49
+ next();
50
+ };
51
+ }
52
+ exports.fixPythonContentType = fixPythonContentType;
53
+ function defaultToJSONContentType(req, res, next) {
54
+ if (!req.headers['content-type']) {
63
55
  req.headers['content-type'] = 'application/json; charset=utf-8';
64
- }
65
56
  }
66
-
67
57
  next();
68
- };
69
- }
70
-
71
- function defaultToJSONContentType(req, res, next) {
72
- if (!req.headers['content-type']) {
73
- req.headers['content-type'] = 'application/json; charset=utf-8';
74
- }
75
-
76
- next();
77
58
  }
78
-
59
+ exports.defaultToJSONContentType = defaultToJSONContentType;
79
60
  function catchAllHandler(err, req, res, next) {
80
- if (res.headersSent) {
81
- return next(err);
82
- }
83
-
84
- _logger.default.error(`Uncaught error: ${err.message}`);
85
-
86
- _logger.default.error('Sending generic error response');
87
-
88
- const error = _protocol.errors.UnknownError;
89
- res.status(error.w3cStatus()).json(patchWithSessionId(req, {
90
- status: error.code(),
91
- value: {
92
- error: error.error(),
93
- message: `An unknown server-side error occurred while processing the command: ${err.message}`,
94
- stacktrace: err.stack
61
+ if (res.headersSent) {
62
+ return next(err);
95
63
  }
96
- }));
97
-
98
- _logger.default.error(err);
64
+ logger_1.default.error(`Uncaught error: ${err.message}`);
65
+ logger_1.default.error('Sending generic error response');
66
+ const error = protocol_1.errors.UnknownError;
67
+ res.status(error.w3cStatus()).json(patchWithSessionId(req, {
68
+ status: error.code(),
69
+ value: {
70
+ error: error.error(),
71
+ message: `An unknown server-side error occurred while processing the command: ${err.message}`,
72
+ stacktrace: err.stack,
73
+ },
74
+ }));
75
+ logger_1.default.error(err);
99
76
  }
100
-
77
+ exports.catchAllHandler = catchAllHandler;
101
78
  function catch404Handler(req, res) {
102
- _logger.default.debug(`No route found for ${req.url}`);
103
-
104
- const error = _protocol.errors.UnknownCommandError;
105
- res.status(error.w3cStatus()).json(patchWithSessionId(req, {
106
- status: error.code(),
107
- value: {
108
- error: error.error(),
109
- message: 'The requested resource could not be found, or a request was ' + 'received using an HTTP method that is not supported by the mapped ' + 'resource',
110
- stacktrace: ''
111
- }
112
- }));
79
+ logger_1.default.debug(`No route found for ${req.url}`);
80
+ const error = protocol_1.errors.UnknownCommandError;
81
+ res.status(error.w3cStatus()).json(patchWithSessionId(req, {
82
+ status: error.code(),
83
+ value: {
84
+ error: error.error(),
85
+ message: 'The requested resource could not be found, or a request was ' +
86
+ 'received using an HTTP method that is not supported by the mapped ' +
87
+ 'resource',
88
+ stacktrace: '',
89
+ },
90
+ }));
113
91
  }
114
-
92
+ exports.catch404Handler = catch404Handler;
115
93
  const SESSION_ID_PATTERN = /\/session\/([^/]+)/;
116
-
117
94
  function patchWithSessionId(req, body) {
118
- const match = SESSION_ID_PATTERN.exec(req.url);
119
-
120
- if (match) {
121
- body.sessionId = match[1];
122
- }
123
-
124
- return body;
95
+ const match = SESSION_ID_PATTERN.exec(req.url);
96
+ if (match) {
97
+ body.sessionId = match[1];
98
+ }
99
+ return body;
125
100
  }
126
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhbGxvd0Nyb3NzRG9tYWluIiwicmVxIiwicmVzIiwibmV4dCIsImhlYWRlciIsIm1ldGhvZCIsInNlbmRTdGF0dXMiLCJlcnIiLCJsb2ciLCJlcnJvciIsInN0YWNrIiwiYWxsb3dDcm9zc0RvbWFpbkFzeW5jRXhlY3V0ZSIsImJhc2VQYXRoIiwicmVjZWl2ZUFzeW5jUmVzcG9uc2VSZWdFeHAiLCJSZWdFeHAiLCJfIiwiZXNjYXBlUmVnRXhwIiwidGVzdCIsInVybCIsImZpeFB5dGhvbkNvbnRlbnRUeXBlIiwicGF0aCIsImhlYWRlcnMiLCJkZWZhdWx0VG9KU09OQ29udGVudFR5cGUiLCJjYXRjaEFsbEhhbmRsZXIiLCJoZWFkZXJzU2VudCIsIm1lc3NhZ2UiLCJlcnJvcnMiLCJVbmtub3duRXJyb3IiLCJzdGF0dXMiLCJ3M2NTdGF0dXMiLCJqc29uIiwicGF0Y2hXaXRoU2Vzc2lvbklkIiwiY29kZSIsInZhbHVlIiwic3RhY2t0cmFjZSIsImNhdGNoNDA0SGFuZGxlciIsImRlYnVnIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsIlNFU1NJT05fSURfUEFUVEVSTiIsImJvZHkiLCJtYXRjaCIsImV4ZWMiLCJzZXNzaW9uSWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXhwcmVzcy9taWRkbGV3YXJlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuLi9wcm90b2NvbCc7XG5pbXBvcnQge2hhbmRsZUlkZW1wb3RlbmN5fSBmcm9tICcuL2lkZW1wb3RlbmN5JztcblxuZnVuY3Rpb24gYWxsb3dDcm9zc0RvbWFpbihyZXEsIHJlcywgbmV4dCkge1xuICB0cnkge1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICcqJyk7XG4gICAgcmVzLmhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycsICdHRVQsIFBPU1QsIFBVVCwgT1BUSU9OUywgREVMRVRFJyk7XG4gICAgcmVzLmhlYWRlcihcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgICAgICdDYWNoZS1Db250cm9sLCBQcmFnbWEsIE9yaWdpbiwgWC1SZXF1ZXN0ZWQtV2l0aCwgQ29udGVudC1UeXBlLCBBY2NlcHQsIFVzZXItQWdlbnQnXG4gICAgKTtcblxuICAgIC8vIG5lZWQgdG8gcmVzcG9uZCAyMDAgdG8gT1BUSU9OU1xuICAgIGlmICgnT1BUSU9OUycgPT09IHJlcS5tZXRob2QpIHtcbiAgICAgIHJldHVybiByZXMuc2VuZFN0YXR1cygyMDApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmVycm9yKGBVbmV4cGVjdGVkIGVycm9yOiAke2Vyci5zdGFja31gKTtcbiAgfVxuICBuZXh0KCk7XG59XG5cbmZ1bmN0aW9uIGFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUoYmFzZVBhdGgpIHtcbiAgcmV0dXJuIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIC8vIHRoZXJlIGFyZSB0d28gcGF0aHMgZm9yIGFzeW5jIHJlc3BvbnNlcywgc28gY292ZXIgYm90aFxuICAgIC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvdHhZaUV6LzFcbiAgICBjb25zdCByZWNlaXZlQXN5bmNSZXNwb25zZVJlZ0V4cCA9IG5ldyBSZWdFeHAoXG4gICAgICBgJHtfLmVzY2FwZVJlZ0V4cChiYXNlUGF0aCl9L3Nlc3Npb24vW2EtZjAtOS1dKy8oYXBwaXVtLyk/cmVjZWl2ZV9hc3luY19yZXNwb25zZWBcbiAgICApO1xuICAgIGlmICghcmVjZWl2ZUFzeW5jUmVzcG9uc2VSZWdFeHAudGVzdChyZXEudXJsKSkge1xuICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICB9XG4gICAgYWxsb3dDcm9zc0RvbWFpbihyZXEsIHJlcywgbmV4dCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGZpeFB5dGhvbkNvbnRlbnRUeXBlKGJhc2VQYXRoKSB7XG4gIHJldHVybiAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAvLyBoYWNrIGJlY2F1c2UgcHl0aG9uIGNsaWVudCBsaWJyYXJ5IGdpdmVzIHVzIHdyb25nIGNvbnRlbnQtdHlwZVxuICAgIGlmIChcbiAgICAgIG5ldyBSZWdFeHAoYF4ke18uZXNjYXBlUmVnRXhwKGJhc2VQYXRoKX1gKS50ZXN0KHJlcS5wYXRoKSAmJlxuICAgICAgL15QeXRob24vLnRlc3QocmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSlcbiAgICApIHtcbiAgICAgIGlmIChyZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10gPT09ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKSB7XG4gICAgICAgIHJlcS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JztcbiAgICAgIH1cbiAgICB9XG4gICAgbmV4dCgpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0VG9KU09OQ29udGVudFR5cGUocmVxLCByZXMsIG5leHQpIHtcbiAgaWYgKCFyZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10pIHtcbiAgICByZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBjYXRjaEFsbEhhbmRsZXIoZXJyLCByZXEsIHJlcywgbmV4dCkge1xuICBpZiAocmVzLmhlYWRlcnNTZW50KSB7XG4gICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgfVxuXG4gIGxvZy5lcnJvcihgVW5jYXVnaHQgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIGxvZy5lcnJvcignU2VuZGluZyBnZW5lcmljIGVycm9yIHJlc3BvbnNlJyk7XG4gIGNvbnN0IGVycm9yID0gZXJyb3JzLlVua25vd25FcnJvcjtcbiAgcmVzLnN0YXR1cyhlcnJvci53M2NTdGF0dXMoKSkuanNvbihcbiAgICBwYXRjaFdpdGhTZXNzaW9uSWQocmVxLCB7XG4gICAgICBzdGF0dXM6IGVycm9yLmNvZGUoKSxcbiAgICAgIHZhbHVlOiB7XG4gICAgICAgIGVycm9yOiBlcnJvci5lcnJvcigpLFxuICAgICAgICBtZXNzYWdlOiBgQW4gdW5rbm93biBzZXJ2ZXItc2lkZSBlcnJvciBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoZSBjb21tYW5kOiAke2Vyci5tZXNzYWdlfWAsXG4gICAgICAgIHN0YWNrdHJhY2U6IGVyci5zdGFjayxcbiAgICAgIH0sXG4gICAgfSlcbiAgKTtcbiAgbG9nLmVycm9yKGVycik7XG59XG5cbmZ1bmN0aW9uIGNhdGNoNDA0SGFuZGxlcihyZXEsIHJlcykge1xuICBsb2cuZGVidWcoYE5vIHJvdXRlIGZvdW5kIGZvciAke3JlcS51cmx9YCk7XG4gIGNvbnN0IGVycm9yID0gZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3I7XG4gIHJlcy5zdGF0dXMoZXJyb3IudzNjU3RhdHVzKCkpLmpzb24oXG4gICAgcGF0Y2hXaXRoU2Vzc2lvbklkKHJlcSwge1xuICAgICAgc3RhdHVzOiBlcnJvci5jb2RlKCksXG4gICAgICB2YWx1ZToge1xuICAgICAgICBlcnJvcjogZXJyb3IuZXJyb3IoKSxcbiAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAnVGhlIHJlcXVlc3RlZCByZXNvdXJjZSBjb3VsZCBub3QgYmUgZm91bmQsIG9yIGEgcmVxdWVzdCB3YXMgJyArXG4gICAgICAgICAgJ3JlY2VpdmVkIHVzaW5nIGFuIEhUVFAgbWV0aG9kIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbWFwcGVkICcgK1xuICAgICAgICAgICdyZXNvdXJjZScsXG4gICAgICAgIHN0YWNrdHJhY2U6ICcnLFxuICAgICAgfSxcbiAgICB9KVxuICApO1xufVxuXG5jb25zdCBTRVNTSU9OX0lEX1BBVFRFUk4gPSAvXFwvc2Vzc2lvblxcLyhbXi9dKykvO1xuXG5mdW5jdGlvbiBwYXRjaFdpdGhTZXNzaW9uSWQocmVxLCBib2R5KSB7XG4gIGNvbnN0IG1hdGNoID0gU0VTU0lPTl9JRF9QQVRURVJOLmV4ZWMocmVxLnVybCk7XG4gIGlmIChtYXRjaCkge1xuICAgIGJvZHkuc2Vzc2lvbklkID0gbWF0Y2hbMV07XG4gIH1cbiAgcmV0dXJuIGJvZHk7XG59XG5cbmV4cG9ydCB7XG4gIGFsbG93Q3Jvc3NEb21haW4sXG4gIGZpeFB5dGhvbkNvbnRlbnRUeXBlLFxuICBkZWZhdWx0VG9KU09OQ29udGVudFR5cGUsXG4gIGNhdGNoQWxsSGFuZGxlcixcbiAgYWxsb3dDcm9zc0RvbWFpbkFzeW5jRXhlY3V0ZSxcbiAgaGFuZGxlSWRlbXBvdGVuY3ksXG4gIGNhdGNoNDA0SGFuZGxlcixcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxTQUFTQSxnQkFBVCxDQUEwQkMsR0FBMUIsRUFBK0JDLEdBQS9CLEVBQW9DQyxJQUFwQyxFQUEwQztFQUN4QyxJQUFJO0lBQ0ZELEdBQUcsQ0FBQ0UsTUFBSixDQUFXLDZCQUFYLEVBQTBDLEdBQTFDO0lBQ0FGLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLDhCQUFYLEVBQTJDLGlDQUEzQztJQUNBRixHQUFHLENBQUNFLE1BQUosQ0FDRSw4QkFERixFQUVFLG1GQUZGOztJQU1BLElBQUksY0FBY0gsR0FBRyxDQUFDSSxNQUF0QixFQUE4QjtNQUM1QixPQUFPSCxHQUFHLENBQUNJLFVBQUosQ0FBZSxHQUFmLENBQVA7SUFDRDtFQUNGLENBWkQsQ0FZRSxPQUFPQyxHQUFQLEVBQVk7SUFDWkMsZUFBQSxDQUFJQyxLQUFKLENBQVcscUJBQW9CRixHQUFHLENBQUNHLEtBQU0sRUFBekM7RUFDRDs7RUFDRFAsSUFBSTtBQUNMOztBQUVELFNBQVNRLDRCQUFULENBQXNDQyxRQUF0QyxFQUFnRDtFQUM5QyxPQUFPLENBQUNYLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0lBR3pCLE1BQU1VLDBCQUEwQixHQUFHLElBQUlDLE1BQUosQ0FDaEMsR0FBRUMsZUFBQSxDQUFFQyxZQUFGLENBQWVKLFFBQWYsQ0FBeUIsc0RBREssQ0FBbkM7O0lBR0EsSUFBSSxDQUFDQywwQkFBMEIsQ0FBQ0ksSUFBM0IsQ0FBZ0NoQixHQUFHLENBQUNpQixHQUFwQyxDQUFMLEVBQStDO01BQzdDLE9BQU9mLElBQUksRUFBWDtJQUNEOztJQUNESCxnQkFBZ0IsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsQ0FBaEI7RUFDRCxDQVZEO0FBV0Q7O0FBRUQsU0FBU2dCLG9CQUFULENBQThCUCxRQUE5QixFQUF3QztFQUN0QyxPQUFPLENBQUNYLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0lBRXpCLElBQ0UsSUFBSVcsTUFBSixDQUFZLElBQUdDLGVBQUEsQ0FBRUMsWUFBRixDQUFlSixRQUFmLENBQXlCLEVBQXhDLEVBQTJDSyxJQUEzQyxDQUFnRGhCLEdBQUcsQ0FBQ21CLElBQXBELEtBQ0EsVUFBVUgsSUFBVixDQUFlaEIsR0FBRyxDQUFDb0IsT0FBSixDQUFZLFlBQVosQ0FBZixDQUZGLEVBR0U7TUFDQSxJQUFJcEIsR0FBRyxDQUFDb0IsT0FBSixDQUFZLGNBQVosTUFBZ0MsbUNBQXBDLEVBQXlFO1FBQ3ZFcEIsR0FBRyxDQUFDb0IsT0FBSixDQUFZLGNBQVosSUFBOEIsaUNBQTlCO01BQ0Q7SUFDRjs7SUFDRGxCLElBQUk7RUFDTCxDQVhEO0FBWUQ7O0FBRUQsU0FBU21CLHdCQUFULENBQWtDckIsR0FBbEMsRUFBdUNDLEdBQXZDLEVBQTRDQyxJQUE1QyxFQUFrRDtFQUNoRCxJQUFJLENBQUNGLEdBQUcsQ0FBQ29CLE9BQUosQ0FBWSxjQUFaLENBQUwsRUFBa0M7SUFDaENwQixHQUFHLENBQUNvQixPQUFKLENBQVksY0FBWixJQUE4QixpQ0FBOUI7RUFDRDs7RUFDRGxCLElBQUk7QUFDTDs7QUFFRCxTQUFTb0IsZUFBVCxDQUF5QmhCLEdBQXpCLEVBQThCTixHQUE5QixFQUFtQ0MsR0FBbkMsRUFBd0NDLElBQXhDLEVBQThDO0VBQzVDLElBQUlELEdBQUcsQ0FBQ3NCLFdBQVIsRUFBcUI7SUFDbkIsT0FBT3JCLElBQUksQ0FBQ0ksR0FBRCxDQUFYO0VBQ0Q7O0VBRURDLGVBQUEsQ0FBSUMsS0FBSixDQUFXLG1CQUFrQkYsR0FBRyxDQUFDa0IsT0FBUSxFQUF6Qzs7RUFDQWpCLGVBQUEsQ0FBSUMsS0FBSixDQUFVLGdDQUFWOztFQUNBLE1BQU1BLEtBQUssR0FBR2lCLGdCQUFBLENBQU9DLFlBQXJCO0VBQ0F6QixHQUFHLENBQUMwQixNQUFKLENBQVduQixLQUFLLENBQUNvQixTQUFOLEVBQVgsRUFBOEJDLElBQTlCLENBQ0VDLGtCQUFrQixDQUFDOUIsR0FBRCxFQUFNO0lBQ3RCMkIsTUFBTSxFQUFFbkIsS0FBSyxDQUFDdUIsSUFBTixFQURjO0lBRXRCQyxLQUFLLEVBQUU7TUFDTHhCLEtBQUssRUFBRUEsS0FBSyxDQUFDQSxLQUFOLEVBREY7TUFFTGdCLE9BQU8sRUFBRyx1RUFBc0VsQixHQUFHLENBQUNrQixPQUFRLEVBRnZGO01BR0xTLFVBQVUsRUFBRTNCLEdBQUcsQ0FBQ0c7SUFIWDtFQUZlLENBQU4sQ0FEcEI7O0VBVUFGLGVBQUEsQ0FBSUMsS0FBSixDQUFVRixHQUFWO0FBQ0Q7O0FBRUQsU0FBUzRCLGVBQVQsQ0FBeUJsQyxHQUF6QixFQUE4QkMsR0FBOUIsRUFBbUM7RUFDakNNLGVBQUEsQ0FBSTRCLEtBQUosQ0FBVyxzQkFBcUJuQyxHQUFHLENBQUNpQixHQUFJLEVBQXhDOztFQUNBLE1BQU1ULEtBQUssR0FBR2lCLGdCQUFBLENBQU9XLG1CQUFyQjtFQUNBbkMsR0FBRyxDQUFDMEIsTUFBSixDQUFXbkIsS0FBSyxDQUFDb0IsU0FBTixFQUFYLEVBQThCQyxJQUE5QixDQUNFQyxrQkFBa0IsQ0FBQzlCLEdBQUQsRUFBTTtJQUN0QjJCLE1BQU0sRUFBRW5CLEtBQUssQ0FBQ3VCLElBQU4sRUFEYztJQUV0QkMsS0FBSyxFQUFFO01BQ0x4QixLQUFLLEVBQUVBLEtBQUssQ0FBQ0EsS0FBTixFQURGO01BRUxnQixPQUFPLEVBQ0wsaUVBQ0Esb0VBREEsR0FFQSxVQUxHO01BTUxTLFVBQVUsRUFBRTtJQU5QO0VBRmUsQ0FBTixDQURwQjtBQWFEOztBQUVELE1BQU1JLGtCQUFrQixHQUFHLG9CQUEzQjs7QUFFQSxTQUFTUCxrQkFBVCxDQUE0QjlCLEdBQTVCLEVBQWlDc0MsSUFBakMsRUFBdUM7RUFDckMsTUFBTUMsS0FBSyxHQUFHRixrQkFBa0IsQ0FBQ0csSUFBbkIsQ0FBd0J4QyxHQUFHLENBQUNpQixHQUE1QixDQUFkOztFQUNBLElBQUlzQixLQUFKLEVBQVc7SUFDVEQsSUFBSSxDQUFDRyxTQUFMLEdBQWlCRixLQUFLLENBQUMsQ0FBRCxDQUF0QjtFQUNEOztFQUNELE9BQU9ELElBQVA7QUFDRCJ9
101
+ //# sourceMappingURL=middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","names":["allowCrossDomain","req","res","next","header","method","sendStatus","err","log","error","stack","allowCrossDomainAsyncExecute","basePath","receiveAsyncResponseRegExp","RegExp","_","escapeRegExp","test","url","fixPythonContentType","path","headers","defaultToJSONContentType","catchAllHandler","headersSent","message","errors","UnknownError","status","w3cStatus","json","patchWithSessionId","code","value","stacktrace","catch404Handler","debug","UnknownCommandError","SESSION_ID_PATTERN","body","match","exec","sessionId"],"sources":["../../../lib/express/middleware.js"],"sourcesContent":["import _ from 'lodash';\nimport log from './logger';\nimport {errors} from '../protocol';\nimport {handleIdempotency} from './idempotency';\n\nfunction allowCrossDomain(req, res, next) {\n try {\n res.header('Access-Control-Allow-Origin', '*');\n res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS, DELETE');\n res.header(\n 'Access-Control-Allow-Headers',\n 'Cache-Control, Pragma, Origin, X-Requested-With, Content-Type, Accept, User-Agent'\n );\n\n // need to respond 200 to OPTIONS\n if ('OPTIONS' === req.method) {\n return res.sendStatus(200);\n }\n } catch (err) {\n log.error(`Unexpected error: ${err.stack}`);\n }\n next();\n}\n\nfunction allowCrossDomainAsyncExecute(basePath) {\n return (req, res, next) => {\n // there are two paths for async responses, so cover both\n // https://regex101.com/r/txYiEz/1\n const receiveAsyncResponseRegExp = new RegExp(\n `${_.escapeRegExp(basePath)}/session/[a-f0-9-]+/(appium/)?receive_async_response`\n );\n if (!receiveAsyncResponseRegExp.test(req.url)) {\n return next();\n }\n allowCrossDomain(req, res, next);\n };\n}\n\nfunction fixPythonContentType(basePath) {\n return (req, res, next) => {\n // hack because python client library gives us wrong content-type\n if (\n new RegExp(`^${_.escapeRegExp(basePath)}`).test(req.path) &&\n /^Python/.test(req.headers['user-agent'])\n ) {\n if (req.headers['content-type'] === 'application/x-www-form-urlencoded') {\n req.headers['content-type'] = 'application/json; charset=utf-8';\n }\n }\n next();\n };\n}\n\nfunction defaultToJSONContentType(req, res, next) {\n if (!req.headers['content-type']) {\n req.headers['content-type'] = 'application/json; charset=utf-8';\n }\n next();\n}\n\nfunction catchAllHandler(err, req, res, next) {\n if (res.headersSent) {\n return next(err);\n }\n\n log.error(`Uncaught error: ${err.message}`);\n log.error('Sending generic error response');\n const error = errors.UnknownError;\n res.status(error.w3cStatus()).json(\n patchWithSessionId(req, {\n status: error.code(),\n value: {\n error: error.error(),\n message: `An unknown server-side error occurred while processing the command: ${err.message}`,\n stacktrace: err.stack,\n },\n })\n );\n log.error(err);\n}\n\nfunction catch404Handler(req, res) {\n log.debug(`No route found for ${req.url}`);\n const error = errors.UnknownCommandError;\n res.status(error.w3cStatus()).json(\n patchWithSessionId(req, {\n status: error.code(),\n value: {\n error: error.error(),\n message:\n 'The requested resource could not be found, or a request was ' +\n 'received using an HTTP method that is not supported by the mapped ' +\n 'resource',\n stacktrace: '',\n },\n })\n );\n}\n\nconst SESSION_ID_PATTERN = /\\/session\\/([^/]+)/;\n\nfunction patchWithSessionId(req, body) {\n const match = SESSION_ID_PATTERN.exec(req.url);\n if (match) {\n body.sessionId = match[1];\n }\n return body;\n}\n\nexport {\n allowCrossDomain,\n fixPythonContentType,\n defaultToJSONContentType,\n catchAllHandler,\n allowCrossDomainAsyncExecute,\n handleIdempotency,\n catch404Handler,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../lib/express/middleware.js"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export type StartServerOpts = {
21
21
  };
22
22
  export type AppiumServer = import('@appium/types').AppiumServer;
23
23
  export type AppiumServerSocket = import('@appium/types').AppiumServerSocket;
24
- export type MethodMap = import('@appium/types').MethodMap;
24
+ export type MethodMap = import('@appium/types').MethodMap<import('@appium/types').ExternalDriver>;
25
25
  /**
26
26
  * Options for {@linkcode configureHttp }
27
27
  */
@@ -45,11 +45,15 @@ export type ConfigureHttpOpts = {
45
45
  export type ServerOpts = {
46
46
  routeConfiguringFunction: RouteConfiguringFunction;
47
47
  port: number;
48
- cliArgs: import('@appium/types').ServerArgs;
48
+ cliArgs?: import("@appium/types").ServerArgs | undefined;
49
49
  hostname?: string | undefined;
50
50
  allowCors?: boolean | undefined;
51
51
  basePath?: string | undefined;
52
- extraMethodMap?: MethodMap | undefined;
52
+ extraMethodMap?: Readonly<Record<string, {
53
+ GET?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
54
+ POST?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
55
+ DELETE?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
56
+ }>> | undefined;
53
57
  serverUpdaters?: import("@appium/types").UpdateServerCallback[] | undefined;
54
58
  keepAliveTimeout?: number | undefined;
55
59
  };
@@ -62,7 +66,11 @@ export type RouteConfiguringFunction = (app: import('express').Express, opts?: R
62
66
  */
63
67
  export type RouteConfiguringFunctionOpts = {
64
68
  basePath?: string | undefined;
65
- extraMethodMap?: MethodMap | undefined;
69
+ extraMethodMap?: Readonly<Record<string, {
70
+ GET?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
71
+ POST?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
72
+ DELETE?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
73
+ }>> | undefined;
66
74
  };
67
75
  /**
68
76
  * Options for {@linkcode configureServer }
@@ -72,7 +80,11 @@ export type ConfigureServerOpts = {
72
80
  addRoutes: RouteConfiguringFunction;
73
81
  allowCors?: boolean | undefined;
74
82
  basePath?: string | undefined;
75
- extraMethodMap?: MethodMap | undefined;
83
+ extraMethodMap?: Readonly<Record<string, {
84
+ GET?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
85
+ POST?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
86
+ DELETE?: import("@appium/types").MethodDef<import("@appium/types").ExternalDriver<typeof import("@appium/types").BASE_DESIRED_CAP_CONSTRAINTS>> | undefined;
87
+ }>> | undefined;
76
88
  };
77
89
  /**
78
90
  *
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":";;;;;;;gBA8Qc,OAAO,MAAM,EAAE,MAAM;;;;UACrB,MAAM;;;;sBACN,MAAM;;;;;;2BAKP,OAAO,eAAe,EAAE,YAAY;iCACpC,OAAO,eAAe,EAAE,kBAAkB;wBAC1C,OAAO,eAAe,EAAE,SAAS;;;;;;;;gBAMhC,OAAO,MAAM,EAAE,MAAM;;;;qBACZ,GAAG,KAAK,IAAI;;;;sBACrB,MAAM;;;;;;8BAMN,wBAAwB;UACxB,MAAM;aACN,OAAO,eAAe,EAAE,UAAU;;;;;;;;;;;6CAYrC,OAAO,SAAS,EAAE,OAAO,sDAEvB,IAAI;;;;;;;;;;;;SAaH,OAAO,SAAS,EAAE,OAAO;eACzB,wBAAwB;;;;;AAnStC;;;;GAIG;AACH,6BAHW,UAAU,GACR,QAAQ,YAAY,CAAC,CAsDjC;AAED;;;GAGG;AACH,0FAFW,mBAAmB,QA+C7B;AAsGD;;;;GAIG;AACH,4CAHW,MAAM,GACJ,MAAM,CAkBlB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../lib/express/server.js"],"names":[],"mappings":";;;;;;;gBA8Qc,OAAO,MAAM,EAAE,MAAM;;;;UACrB,MAAM;;;;sBACN,MAAM;;;;;;2BAKP,OAAO,eAAe,EAAE,YAAY;iCACpC,OAAO,eAAe,EAAE,kBAAkB;wBAI1C,OAAO,eAAe,EAAE,SAAS,CAAC,OAAO,eAAe,EAAE,cAAc,CAAC;;;;;;;;gBAMxE,OAAO,MAAM,EAAE,MAAM;;;;qBACZ,GAAG,KAAK,IAAI;;;;sBACrB,MAAM;;;;;;8BAMN,wBAAwB;UACxB,MAAM;;;;;;;;;;;;;;;;6CAaT,OAAO,SAAS,EAAE,OAAO,sDAEvB,IAAI;;;;;;;;;;;;;;;;SAaH,OAAO,SAAS,EAAE,OAAO;eACzB,wBAAwB;;;;;;;;;AAtStC;;;;GAIG;AACH,6BAHW,UAAU,GACR,QAAQ,YAAY,CAAC,CAsDjC;AAED;;;GAGG;AACH,0FAFW,mBAAmB,QA+C7B;AAsGD;;;;GAIG;AACH,4CAHW,MAAM,GACJ,MAAM,CAkBlB"}