@appium/base-driver 8.2.4 → 8.4.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 (206) hide show
  1. package/build/lib/basedriver/capabilities.d.ts +80 -0
  2. package/build/lib/basedriver/capabilities.d.ts.map +1 -0
  3. package/build/lib/basedriver/capabilities.js +12 -13
  4. package/build/lib/basedriver/commands/event.d.ts +9 -0
  5. package/build/lib/basedriver/commands/event.d.ts.map +1 -0
  6. package/build/lib/basedriver/commands/event.js +21 -23
  7. package/build/lib/basedriver/commands/find.d.ts +11 -0
  8. package/build/lib/basedriver/commands/find.d.ts.map +1 -0
  9. package/build/lib/basedriver/commands/find.js +41 -43
  10. package/build/lib/basedriver/commands/index.d.ts +8 -0
  11. package/build/lib/basedriver/commands/index.d.ts.map +1 -0
  12. package/build/lib/basedriver/commands/index.js +17 -16
  13. package/build/lib/basedriver/commands/log.d.ts +12 -0
  14. package/build/lib/basedriver/commands/log.d.ts.map +1 -0
  15. package/build/lib/basedriver/commands/log.js +23 -30
  16. package/build/lib/basedriver/commands/session.d.ts +11 -0
  17. package/build/lib/basedriver/commands/session.d.ts.map +1 -0
  18. package/build/lib/basedriver/commands/session.js +21 -158
  19. package/build/lib/basedriver/commands/settings.d.ts +10 -0
  20. package/build/lib/basedriver/commands/settings.d.ts.map +1 -0
  21. package/build/lib/basedriver/commands/settings.js +18 -22
  22. package/build/lib/basedriver/commands/timeout.d.ts +8 -0
  23. package/build/lib/basedriver/commands/timeout.d.ts.map +1 -0
  24. package/build/lib/basedriver/commands/timeout.js +118 -144
  25. package/build/lib/basedriver/core.d.ts +235 -0
  26. package/build/lib/basedriver/core.d.ts.map +1 -0
  27. package/build/lib/basedriver/core.js +283 -0
  28. package/build/lib/basedriver/desired-caps.d.ts +5 -0
  29. package/build/lib/basedriver/desired-caps.d.ts.map +1 -0
  30. package/build/lib/basedriver/desired-caps.js +2 -4
  31. package/build/lib/basedriver/device-settings.d.ts +32 -0
  32. package/build/lib/basedriver/device-settings.d.ts.map +1 -0
  33. package/build/lib/basedriver/device-settings.js +33 -15
  34. package/build/lib/basedriver/driver.d.ts +83 -0
  35. package/build/lib/basedriver/driver.d.ts.map +1 -0
  36. package/build/lib/basedriver/driver.js +104 -257
  37. package/build/lib/basedriver/helpers.d.ts +132 -0
  38. package/build/lib/basedriver/helpers.d.ts.map +1 -0
  39. package/build/lib/basedriver/helpers.js +24 -10
  40. package/build/lib/basedriver/logger.d.ts +3 -0
  41. package/build/lib/basedriver/logger.d.ts.map +1 -0
  42. package/build/lib/basedriver/logger.js +2 -4
  43. package/build/lib/constants.d.ts +9 -0
  44. package/build/lib/constants.d.ts.map +1 -0
  45. package/build/lib/constants.js +2 -4
  46. package/build/lib/express/crash.d.ts +3 -0
  47. package/build/lib/express/crash.d.ts.map +1 -0
  48. package/build/lib/express/crash.js +2 -4
  49. package/build/lib/express/express-logging.d.ts +3 -0
  50. package/build/lib/express/express-logging.d.ts.map +1 -0
  51. package/build/lib/express/express-logging.js +3 -5
  52. package/build/lib/express/idempotency.d.ts +2 -0
  53. package/build/lib/express/idempotency.d.ts.map +1 -0
  54. package/build/lib/express/idempotency.js +3 -5
  55. package/build/lib/express/logger.d.ts +3 -0
  56. package/build/lib/express/logger.d.ts.map +1 -0
  57. package/build/lib/express/logger.js +2 -4
  58. package/build/lib/express/middleware.d.ts +9 -0
  59. package/build/lib/express/middleware.d.ts.map +1 -0
  60. package/build/lib/express/middleware.js +2 -4
  61. package/build/lib/express/server.d.ts +10 -0
  62. package/build/lib/express/server.d.ts.map +1 -0
  63. package/build/lib/express/server.js +2 -4
  64. package/build/lib/express/static.d.ts +6 -0
  65. package/build/lib/express/static.d.ts.map +1 -0
  66. package/build/lib/express/static.js +2 -4
  67. package/build/lib/express/websocket.d.ts +64 -0
  68. package/build/lib/express/websocket.d.ts.map +1 -0
  69. package/build/lib/express/websocket.js +2 -4
  70. package/build/lib/helpers/capabilities.d.ts +13 -0
  71. package/build/lib/helpers/capabilities.d.ts.map +1 -0
  72. package/build/lib/helpers/capabilities.js +77 -0
  73. package/build/lib/index.d.ts +183 -0
  74. package/build/lib/index.d.ts.map +1 -0
  75. package/build/lib/index.js +41 -25
  76. package/build/lib/jsonwp-proxy/protocol-converter.d.ts +48 -0
  77. package/build/lib/jsonwp-proxy/protocol-converter.d.ts.map +1 -0
  78. package/build/lib/jsonwp-proxy/protocol-converter.js +19 -15
  79. package/build/lib/jsonwp-proxy/proxy.d.ts +41 -0
  80. package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -0
  81. package/build/lib/jsonwp-proxy/proxy.js +20 -15
  82. package/build/lib/jsonwp-status/status.d.ts +159 -0
  83. package/build/lib/jsonwp-status/status.d.ts.map +1 -0
  84. package/build/lib/jsonwp-status/status.js +2 -4
  85. package/build/lib/protocol/errors.d.ts +310 -0
  86. package/build/lib/protocol/errors.d.ts.map +1 -0
  87. package/build/lib/protocol/errors.js +82 -5
  88. package/build/lib/protocol/helpers.d.ts +22 -0
  89. package/build/lib/protocol/helpers.d.ts.map +1 -0
  90. package/build/lib/protocol/helpers.js +2 -4
  91. package/build/lib/protocol/index.d.ts +16 -0
  92. package/build/lib/protocol/index.d.ts.map +1 -0
  93. package/build/lib/protocol/index.js +8 -10
  94. package/build/lib/protocol/protocol.d.ts +11 -0
  95. package/build/lib/protocol/protocol.d.ts.map +1 -0
  96. package/build/lib/protocol/protocol.js +38 -35
  97. package/build/lib/protocol/routes.d.ts +6 -0
  98. package/build/lib/protocol/routes.d.ts.map +1 -0
  99. package/build/lib/protocol/routes.js +84 -4
  100. package/build/lib/protocol/validators.d.ts +8 -0
  101. package/build/lib/protocol/validators.d.ts.map +1 -0
  102. package/build/lib/protocol/validators.js +2 -4
  103. package/build/test/basedriver/README.md +5 -0
  104. package/build/test/basedriver/driver-e2e-tests.js +2 -4
  105. package/build/test/basedriver/driver-tests.js +41 -19
  106. package/build/test/basedriver/index.js +2 -4
  107. package/build/test/e2e/basedriver/driver.e2e.spec.js +15 -0
  108. package/build/test/e2e/basedriver/helpers.e2e.spec.js +192 -0
  109. package/build/test/e2e/basedriver/websockets.e2e.spec.js +82 -0
  110. package/build/test/e2e/express/server.e2e.spec.js +159 -0
  111. package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +59 -0
  112. package/build/test/e2e/protocol/fake-driver.js +163 -0
  113. package/build/test/e2e/protocol/helpers.js +25 -0
  114. package/build/test/e2e/protocol/protocol.e2e.spec.js +1186 -0
  115. package/build/test/helpers.js +2 -4
  116. package/build/test/unit/basedriver/capabilities.spec.js +672 -0
  117. package/build/test/unit/basedriver/capability.spec.js +353 -0
  118. package/build/test/unit/basedriver/commands/event.spec.js +110 -0
  119. package/build/test/unit/basedriver/commands/log.spec.js +92 -0
  120. package/build/test/unit/basedriver/driver.spec.js +15 -0
  121. package/build/test/unit/basedriver/helpers.spec.js +151 -0
  122. package/build/test/unit/basedriver/timeout.spec.js +135 -0
  123. package/build/test/unit/express/server.spec.js +155 -0
  124. package/build/test/unit/express/static.spec.js +26 -0
  125. package/build/test/unit/jsonwp-proxy/mock-request.js +91 -0
  126. package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +171 -0
  127. package/build/test/unit/jsonwp-proxy/proxy.spec.js +292 -0
  128. package/build/test/unit/jsonwp-proxy/url.spec.js +165 -0
  129. package/build/test/unit/jsonwp-status/status.spec.js +34 -0
  130. package/build/test/unit/protocol/errors.spec.js +390 -0
  131. package/build/test/unit/protocol/routes.spec.js +80 -0
  132. package/build/test/unit/protocol/validator.spec.js +149 -0
  133. package/build/tsconfig.tsbuildinfo +1 -0
  134. package/lib/basedriver/capabilities.js +49 -10
  135. package/lib/basedriver/commands/event.js +49 -31
  136. package/lib/basedriver/commands/find.js +107 -45
  137. package/lib/basedriver/commands/index.js +25 -19
  138. package/lib/basedriver/commands/log.js +59 -34
  139. package/lib/basedriver/commands/session.js +39 -142
  140. package/lib/basedriver/commands/settings.js +32 -14
  141. package/lib/basedriver/commands/timeout.js +153 -154
  142. package/lib/basedriver/core.js +497 -0
  143. package/lib/basedriver/desired-caps.js +1 -1
  144. package/lib/basedriver/device-settings.js +57 -13
  145. package/lib/basedriver/driver.js +277 -375
  146. package/lib/basedriver/helpers.js +31 -13
  147. package/lib/express/express-logging.js +1 -1
  148. package/lib/express/idempotency.js +1 -1
  149. package/lib/helpers/capabilities.js +84 -0
  150. package/lib/index.js +17 -13
  151. package/lib/jsonwp-proxy/protocol-converter.js +14 -13
  152. package/lib/jsonwp-proxy/proxy.js +16 -12
  153. package/lib/protocol/errors.js +42 -42
  154. package/lib/protocol/index.js +4 -4
  155. package/lib/protocol/protocol.js +35 -32
  156. package/lib/protocol/routes.js +69 -1
  157. package/package.json +37 -24
  158. package/test/basedriver/README.md +5 -0
  159. package/test/basedriver/driver-e2e-tests.js +1 -1
  160. package/test/basedriver/driver-tests.js +43 -9
  161. package/build/lib/protocol/sessions-cache.js +0 -88
  162. package/build/test/basedriver/capabilities-specs.js +0 -632
  163. package/build/test/basedriver/capability-specs.js +0 -396
  164. package/build/test/basedriver/commands/event-specs.js +0 -112
  165. package/build/test/basedriver/commands/log-specs.js +0 -80
  166. package/build/test/basedriver/driver-e2e-specs.js +0 -17
  167. package/build/test/basedriver/driver-specs.js +0 -17
  168. package/build/test/basedriver/helpers-e2e-specs.js +0 -194
  169. package/build/test/basedriver/helpers-specs.js +0 -153
  170. package/build/test/basedriver/timeout-specs.js +0 -139
  171. package/build/test/basedriver/websockets-e2e-specs.js +0 -84
  172. package/build/test/express/server-e2e-specs.js +0 -156
  173. package/build/test/express/server-specs.js +0 -151
  174. package/build/test/express/static-specs.js +0 -23
  175. package/build/test/jsonwp-proxy/mock-request.js +0 -93
  176. package/build/test/jsonwp-proxy/protocol-converter-specs.js +0 -173
  177. package/build/test/jsonwp-proxy/proxy-e2e-specs.js +0 -61
  178. package/build/test/jsonwp-proxy/proxy-specs.js +0 -294
  179. package/build/test/jsonwp-proxy/url-specs.js +0 -167
  180. package/build/test/jsonwp-status/status-specs.js +0 -36
  181. package/build/test/protocol/errors-specs.js +0 -388
  182. package/build/test/protocol/fake-driver.js +0 -168
  183. package/build/test/protocol/helpers.js +0 -27
  184. package/build/test/protocol/protocol-e2e-specs.js +0 -1182
  185. package/build/test/protocol/routes-specs.js +0 -82
  186. package/build/test/protocol/validator-specs.js +0 -151
  187. package/index.d.ts +0 -386
  188. package/lib/protocol/sessions-cache.js +0 -74
  189. package/test/basedriver/capabilities-specs.js +0 -505
  190. package/test/basedriver/capability-specs.js +0 -409
  191. package/test/basedriver/commands/event-specs.js +0 -74
  192. package/test/basedriver/commands/log-specs.js +0 -70
  193. package/test/basedriver/driver-e2e-specs.js +0 -8
  194. package/test/basedriver/driver-specs.js +0 -8
  195. package/test/basedriver/fixtures/BadZippedApp.zip +0 -1
  196. package/test/basedriver/fixtures/FakeAndroidApp.apk +0 -1
  197. package/test/basedriver/fixtures/FakeAndroidApp.asd +0 -0
  198. package/test/basedriver/fixtures/FakeIOSApp.app +0 -1
  199. package/test/basedriver/fixtures/FakeIOSApp.app.zip +0 -0
  200. package/test/basedriver/fixtures/FakeIOSApp.ipa +0 -0
  201. package/test/basedriver/fixtures/custom-element-finder-bad.js +0 -5
  202. package/test/basedriver/fixtures/custom-element-finder.js +0 -29
  203. package/test/basedriver/helpers-e2e-specs.js +0 -187
  204. package/test/basedriver/helpers-specs.js +0 -137
  205. package/test/basedriver/timeout-specs.js +0 -133
  206. package/test/basedriver/websockets-e2e-specs.js +0 -75
@@ -5,12 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.helpers = exports.default = exports.commands = void 0;
8
+ exports.TimeoutMixin = TimeoutMixin;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
12
- var _logger = _interopRequireDefault(require("../logger"));
13
-
14
12
  var _asyncbox = require("asyncbox");
15
13
 
16
14
  var _lodash = _interopRequireDefault(require("lodash"));
@@ -19,178 +17,154 @@ var _support = require("@appium/support");
19
17
 
20
18
  var _protocol = require("../../protocol");
21
19
 
22
- let commands = {},
23
- helpers = {},
24
- extensions = {};
25
- exports.helpers = helpers;
26
- exports.commands = commands;
27
20
  const MIN_TIMEOUT = 0;
28
21
 
29
- commands.timeouts = async function timeouts(type, ms, script, pageLoad, implicit) {
30
- if (_support.util.hasValue(type) && _support.util.hasValue(ms)) {
31
- _logger.default.debug(`MJSONWP timeout arguments: ${JSON.stringify({
32
- type,
33
- ms
34
- })}}`);
35
-
36
- switch (type) {
37
- case 'command':
38
- await this.newCommandTimeout(ms);
39
- return;
22
+ function TimeoutMixin(Base) {
23
+ class TimeoutCommands extends Base {
24
+ async timeouts(type, ms, script, pageLoad, implicit) {
25
+ if (_support.util.hasValue(type) && _support.util.hasValue(ms)) {
26
+ this.log.debug(`MJSONWP timeout arguments: ${JSON.stringify({
27
+ type,
28
+ ms
29
+ })}}`);
30
+
31
+ switch (type) {
32
+ case 'command':
33
+ await this.newCommandTimeout(ms);
34
+ return;
35
+
36
+ case 'implicit':
37
+ await this.implicitWaitMJSONWP(ms);
38
+ return;
39
+
40
+ case 'page load':
41
+ await this.pageLoadTimeoutMJSONWP(ms);
42
+ return;
43
+
44
+ case 'script':
45
+ await this.scriptTimeoutMJSONWP(ms);
46
+ return;
47
+
48
+ default:
49
+ throw new Error(`'${type}' type is not supported for MJSONWP timeout`);
50
+ }
51
+ }
40
52
 
41
- case 'implicit':
42
- await this.implicitWaitMJSONWP(ms);
43
- return;
53
+ this.log.debug(`W3C timeout argument: ${JSON.stringify({
54
+ script,
55
+ pageLoad,
56
+ implicit
57
+ })}}`);
44
58
 
45
- case 'page load':
46
- await this.pageLoadTimeoutMJSONWP(ms);
47
- return;
59
+ if (_support.util.hasValue(script)) {
60
+ await this.scriptTimeoutW3C(script);
61
+ }
48
62
 
49
- case 'script':
50
- await this.scriptTimeoutMJSONWP(ms);
51
- return;
63
+ if (_support.util.hasValue(pageLoad)) {
64
+ await this.pageLoadTimeoutW3C(pageLoad);
65
+ }
52
66
 
53
- default:
54
- throw new Error(`'${type}' type is not supported for MJSONWP timeout`);
67
+ if (_support.util.hasValue(implicit)) {
68
+ await this.implicitWaitW3C(implicit);
69
+ }
55
70
  }
56
- }
57
71
 
58
- _logger.default.debug(`W3C timeout argument: ${JSON.stringify({
59
- script,
60
- pageLoad,
61
- implicit
62
- })}}`);
72
+ async getTimeouts() {
73
+ return {
74
+ command: this.newCommandTimeoutMs,
75
+ implicit: this.implicitWaitMs
76
+ };
77
+ }
63
78
 
64
- if (_support.util.hasValue(script)) {
65
- await this.scriptTimeoutW3C(script);
66
- }
79
+ async implicitWaitW3C(ms) {
80
+ await this.implicitWait(ms);
81
+ }
67
82
 
68
- if (_support.util.hasValue(pageLoad)) {
69
- await this.pageLoadTimeoutW3C(pageLoad);
70
- }
83
+ async implicitWaitMJSONWP(ms) {
84
+ await this.implicitWait(ms);
85
+ }
71
86
 
72
- if (_support.util.hasValue(implicit)) {
73
- await this.implicitWaitW3C(implicit);
74
- }
75
- };
87
+ async implicitWait(ms) {
88
+ await this.setImplicitWait(this.parseTimeoutArgument(ms));
89
+ }
76
90
 
77
- commands.getTimeouts = async function getTimeouts() {
78
- return {
79
- command: this.newCommandTimeoutMs,
80
- implicit: this.implicitWaitMs
81
- };
82
- };
91
+ async pageLoadTimeoutW3C(ms) {
92
+ throw new _protocol.errors.NotImplementedError('Not implemented yet for pageLoad.');
93
+ }
83
94
 
84
- commands.implicitWaitW3C = async function implicitWaitW3C(ms) {
85
- await this.implicitWait(ms);
86
- };
95
+ async pageLoadTimeoutMJSONWP(ms) {
96
+ throw new _protocol.errors.NotImplementedError('Not implemented yet for pageLoad.');
97
+ }
87
98
 
88
- commands.implicitWaitMJSONWP = async function implicitWaitMJSONWP(ms) {
89
- await this.implicitWait(ms);
90
- };
99
+ async scriptTimeoutW3C(ms) {
100
+ throw new _protocol.errors.NotImplementedError('Not implemented yet for script.');
101
+ }
91
102
 
92
- commands.implicitWait = async function implicitWait(ms) {
93
- await this.setImplicitWait(this.parseTimeoutArgument(ms));
94
- };
103
+ async scriptTimeoutMJSONWP(ms) {
104
+ throw new _protocol.errors.NotImplementedError('Not implemented yet for script.');
105
+ }
95
106
 
96
- helpers.setImplicitWait = function setImplicitWait(ms) {
97
- this.implicitWaitMs = ms;
107
+ async newCommandTimeout(ms) {
108
+ this.setNewCommandTimeout(this.parseTimeoutArgument(ms));
109
+ }
98
110
 
99
- _logger.default.debug(`Set implicit wait to ${ms}ms`);
111
+ setImplicitWait(ms) {
112
+ this.implicitWaitMs = ms;
113
+ this.log.debug(`Set implicit wait to ${ms}ms`);
100
114
 
101
- if (this.managedDrivers && this.managedDrivers.length) {
102
- _logger.default.debug('Setting implicit wait on managed drivers');
115
+ if (this.managedDrivers && this.managedDrivers.length) {
116
+ this.log.debug('Setting implicit wait on managed drivers');
103
117
 
104
- for (let driver of this.managedDrivers) {
105
- if (_lodash.default.isFunction(driver.setImplicitWait)) {
106
- driver.setImplicitWait(ms);
118
+ for (let driver of this.managedDrivers) {
119
+ if (_lodash.default.isFunction(driver.setImplicitWait)) {
120
+ driver.setImplicitWait(ms);
121
+ }
122
+ }
107
123
  }
108
124
  }
109
- }
110
- };
111
-
112
- commands.pageLoadTimeoutW3C = async function pageLoadTimeoutW3C(ms) {
113
- throw new _protocol.errors.NotImplementedError('Not implemented yet for pageLoad.');
114
- };
115
125
 
116
- commands.pageLoadTimeoutMJSONWP = async function pageLoadTimeoutMJSONWP(ms) {
117
- throw new _protocol.errors.NotImplementedError('Not implemented yet for pageLoad.');
118
- };
126
+ setNewCommandTimeout(ms) {
127
+ this.newCommandTimeoutMs = ms;
128
+ this.log.debug(`Set new command timeout to ${ms}ms`);
119
129
 
120
- commands.scriptTimeoutW3C = async function scriptTimeoutW3C(ms) {
121
- throw new _protocol.errors.NotImplementedError('Not implemented yet for script.');
122
- };
130
+ if (this.managedDrivers && this.managedDrivers.length) {
131
+ this.log.debug('Setting new command timeout on managed drivers');
123
132
 
124
- commands.scriptTimeoutMJSONWP = async function scriptTimeoutMJSONWP(ms) {
125
- throw new _protocol.errors.NotImplementedError('Not implemented yet for script.');
126
- };
133
+ for (let driver of this.managedDrivers) {
134
+ if (_lodash.default.isFunction(driver.setNewCommandTimeout)) {
135
+ driver.setNewCommandTimeout(ms);
136
+ }
137
+ }
138
+ }
139
+ }
127
140
 
128
- commands.newCommandTimeout = async function newCommandTimeout(ms) {
129
- this.setNewCommandTimeout(this.parseTimeoutArgument(ms));
130
- };
141
+ async implicitWaitForCondition(condFn) {
142
+ this.log.debug(`Waiting up to ${this.implicitWaitMs} ms for condition`);
131
143
 
132
- helpers.setNewCommandTimeout = function setNewCommandTimeout(ms) {
133
- this.newCommandTimeoutMs = ms;
144
+ let wrappedCondFn = async (...args) => {
145
+ await this.clearNewCommandTimeout();
146
+ return await condFn(...args);
147
+ };
134
148
 
135
- _logger.default.debug(`Set new command timeout to ${ms}ms`);
149
+ return await (0, _asyncbox.waitForCondition)(wrappedCondFn, {
150
+ waitMs: this.implicitWaitMs,
151
+ intervalMs: 500,
152
+ logger: this.log
153
+ });
154
+ }
136
155
 
137
- if (this.managedDrivers && this.managedDrivers.length) {
138
- _logger.default.debug('Setting new command timeout on managed drivers');
156
+ parseTimeoutArgument(ms) {
157
+ let duration = parseInt(ms, 10);
139
158
 
140
- for (let driver of this.managedDrivers) {
141
- if (_lodash.default.isFunction(driver.setNewCommandTimeout)) {
142
- driver.setNewCommandTimeout(ms);
159
+ if (_lodash.default.isNaN(duration) || duration < MIN_TIMEOUT) {
160
+ throw new _protocol.errors.UnknownError(`Invalid timeout value '${ms}'`);
143
161
  }
162
+
163
+ return duration;
144
164
  }
145
- }
146
- };
147
165
 
148
- helpers.clearNewCommandTimeout = function clearNewCommandTimeout() {
149
- if (this.noCommandTimer) {
150
- clearTimeout(this.noCommandTimer);
151
- this.noCommandTimer = null;
152
- }
153
- };
154
-
155
- helpers.startNewCommandTimeout = function startNewCommandTimeout() {
156
- this.clearNewCommandTimeout();
157
- if (!this.newCommandTimeoutMs) return;
158
- this.noCommandTimer = setTimeout(async () => {
159
- _logger.default.warn(`Shutting down because we waited ` + `${this.newCommandTimeoutMs / 1000.0} seconds for a command`);
160
-
161
- const errorMessage = `New Command Timeout of ` + `${this.newCommandTimeoutMs / 1000.0} seconds ` + `expired. Try customizing the timeout using the ` + `'newCommandTimeout' desired capability`;
162
- await this.startUnexpectedShutdown(new Error(errorMessage));
163
- }, this.newCommandTimeoutMs);
164
- };
165
-
166
- helpers.implicitWaitForCondition = async function implicitWaitForCondition(condFn) {
167
- _logger.default.debug(`Waiting up to ${this.implicitWaitMs} ms for condition`);
168
-
169
- let wrappedCondFn = async (...args) => {
170
- this.clearNewCommandTimeout();
171
- return await condFn(...args);
172
- };
173
-
174
- return await (0, _asyncbox.waitForCondition)(wrappedCondFn, {
175
- waitMs: this.implicitWaitMs,
176
- intervalMs: 500,
177
- logger: _logger.default
178
- });
179
- };
180
-
181
- helpers.parseTimeoutArgument = function parseTimeoutArgument(ms) {
182
- let duration = parseInt(ms, 10);
183
-
184
- if (_lodash.default.isNaN(duration) || duration < MIN_TIMEOUT) {
185
- throw new _protocol.errors.UnknownError(`Invalid timeout value '${ms}'`);
186
166
  }
187
167
 
188
- return duration;
189
- };
190
-
191
- Object.assign(extensions, commands, helpers);
192
- var _default = extensions;
193
- exports.default = _default;require('source-map-support').install();
194
-
195
-
196
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsIk1JTl9USU1FT1VUIiwidGltZW91dHMiLCJ0eXBlIiwibXMiLCJzY3JpcHQiLCJwYWdlTG9hZCIsImltcGxpY2l0IiwidXRpbCIsImhhc1ZhbHVlIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwibmV3Q29tbWFuZFRpbWVvdXQiLCJpbXBsaWNpdFdhaXRNSlNPTldQIiwicGFnZUxvYWRUaW1lb3V0TUpTT05XUCIsInNjcmlwdFRpbWVvdXRNSlNPTldQIiwiRXJyb3IiLCJzY3JpcHRUaW1lb3V0VzNDIiwicGFnZUxvYWRUaW1lb3V0VzNDIiwiaW1wbGljaXRXYWl0VzNDIiwiZ2V0VGltZW91dHMiLCJjb21tYW5kIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImltcGxpY2l0V2FpdE1zIiwiaW1wbGljaXRXYWl0Iiwic2V0SW1wbGljaXRXYWl0IiwicGFyc2VUaW1lb3V0QXJndW1lbnQiLCJtYW5hZ2VkRHJpdmVycyIsImxlbmd0aCIsImRyaXZlciIsIl8iLCJpc0Z1bmN0aW9uIiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsInNldE5ld0NvbW1hbmRUaW1lb3V0IiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsIm5vQ29tbWFuZFRpbWVyIiwiY2xlYXJUaW1lb3V0Iiwic3RhcnROZXdDb21tYW5kVGltZW91dCIsInNldFRpbWVvdXQiLCJ3YXJuIiwiZXJyb3JNZXNzYWdlIiwic3RhcnRVbmV4cGVjdGVkU2h1dGRvd24iLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJjb25kRm4iLCJ3cmFwcGVkQ29uZEZuIiwiYXJncyIsIndhaXRNcyIsImludGVydmFsTXMiLCJsb2dnZXIiLCJkdXJhdGlvbiIsInBhcnNlSW50IiwiaXNOYU4iLCJVbmtub3duRXJyb3IiLCJPYmplY3QiLCJhc3NpZ24i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QUwsQ0FBNkIsSUFBSTFCLEtBQUosQ0FBVXlCLFlBQVYsQ0FBN0IsQ0FBTjtBQUNELEdBUitCLEVBUTdCLEtBQUtuQixtQkFSd0IsQ0FBaEM7QUFTRCxDQWhCRDs7QUFrQkF6QixPQUFPLENBQUM4Qyx3QkFBUixHQUFtQyxlQUFlQSx3QkFBZixDQUF5Q0MsTUFBekMsRUFBaUQ7QUFDbEZwQyxrQkFBSUMsS0FBSixDQUFXLGlCQUFnQixLQUFLYyxjQUFlLG1CQUEvQzs7QUFDQSxNQUFJc0IsYUFBYSxHQUFHLE9BQU8sR0FBR0MsSUFBVixLQUFtQjtBQUVyQyxTQUFLWCxzQkFBTDtBQUVBLFdBQU8sTUFBTVMsTUFBTSxDQUFDLEdBQUdFLElBQUosQ0FBbkI7QUFDRCxHQUxEOztBQU1BLFNBQU8sTUFBTSxnQ0FBaUJELGFBQWpCLEVBQWdDO0FBQzNDRSxJQUFBQSxNQUFNLEVBQUUsS0FBS3hCLGNBRDhCO0FBQ2R5QixJQUFBQSxVQUFVLEVBQUUsR0FERTtBQUNHQyxJQUFBQSxNQUFNLEVBQUV6QztBQURYLEdBQWhDLENBQWI7QUFHRCxDQVhEOztBQWFBWCxPQUFPLENBQUM2QixvQkFBUixHQUErQixTQUFTQSxvQkFBVCxDQUErQnhCLEVBQS9CLEVBQW1DO0FBQ2hFLE1BQUlnRCxRQUFRLEdBQUdDLFFBQVEsQ0FBQ2pELEVBQUQsRUFBSyxFQUFMLENBQXZCOztBQUNBLE1BQUk0QixnQkFBRXNCLEtBQUYsQ0FBUUYsUUFBUixLQUFxQkEsUUFBUSxHQUFHbkQsV0FBcEMsRUFBaUQ7QUFDL0MsVUFBTSxJQUFJaUMsaUJBQU9xQixZQUFYLENBQXlCLDBCQUF5Qm5ELEVBQUcsR0FBckQsQ0FBTjtBQUNEOztBQUNELFNBQU9nRCxRQUFQO0FBQ0QsQ0FORDs7QUFRQUksTUFBTSxDQUFDQyxNQUFQLENBQWN6RCxVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5jb25zdCBNSU5fVElNRU9VVCA9IDA7XG5cbmNvbW1hbmRzLnRpbWVvdXRzID0gYXN5bmMgZnVuY3Rpb24gdGltZW91dHMgKHR5cGUsIG1zLCBzY3JpcHQsIHBhZ2VMb2FkLCBpbXBsaWNpdCkge1xuICBpZiAodXRpbC5oYXNWYWx1ZSh0eXBlKSAmJiB1dGlsLmhhc1ZhbHVlKG1zKSkge1xuICAgIGxvZy5kZWJ1ZyhgTUpTT05XUCB0aW1lb3V0IGFyZ3VtZW50czogJHtKU09OLnN0cmluZ2lmeSh7dHlwZSwgbXN9KX19YCk7XG5cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2NvbW1hbmQnOlxuICAgICAgICBhd2FpdCB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0KG1zKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnaW1wbGljaXQnOlxuICAgICAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdE1KU09OV1AobXMpO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdwYWdlIGxvYWQnOlxuICAgICAgICBhd2FpdCB0aGlzLnBhZ2VMb2FkVGltZW91dE1KU09OV1AobXMpO1xuICAgICAgICByZXR1cm47XG4gICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICBhd2FpdCB0aGlzLnNjcmlwdFRpbWVvdXRNSlNPTldQKG1zKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHt0eXBlfScgdHlwZSBpcyBub3Qgc3VwcG9ydGVkIGZvciBNSlNPTldQIHRpbWVvdXRgKTtcbiAgICB9XG4gIH1cblxuICAvLyBPdGhlcndpc2UgYXNzdW1lIGl0IGlzIFczQyBwcm90b2NvbFxuICBsb2cuZGVidWcoYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtzY3JpcHQsIHBhZ2VMb2FkLCBpbXBsaWNpdH0pfX1gKTtcbiAgaWYgKHV0aWwuaGFzVmFsdWUoc2NyaXB0KSkge1xuICAgIGF3YWl0IHRoaXMuc2NyaXB0VGltZW91dFczQyhzY3JpcHQpO1xuICB9XG4gIGlmICh1dGlsLmhhc1ZhbHVlKHBhZ2VMb2FkKSkge1xuICAgIGF3YWl0IHRoaXMucGFnZUxvYWRUaW1lb3V0VzNDKHBhZ2VMb2FkKTtcbiAgfVxuICBpZiAodXRpbC5oYXNWYWx1ZShpbXBsaWNpdCkpIHtcbiAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdFczQyhpbXBsaWNpdCk7XG4gIH1cbn07XG5cbmNvbW1hbmRzLmdldFRpbWVvdXRzID0gYXN5bmMgZnVuY3Rpb24gZ2V0VGltZW91dHMgKCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHJlcXVpcmUtYXdhaXRcbiAgcmV0dXJuIHtcbiAgICBjb21tYW5kOiB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMsXG4gICAgaW1wbGljaXQ6IHRoaXMuaW1wbGljaXRXYWl0TXMsXG4gIH07XG59O1xuXG4vLyBpbXBsaWNpdFxuY29tbWFuZHMuaW1wbGljaXRXYWl0VzNDID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0VzNDIChtcykge1xuICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdChtcyk7XG59O1xuXG5jb21tYW5kcy5pbXBsaWNpdFdhaXRNSlNPTldQID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0TUpTT05XUCAobXMpIHtcbiAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXQobXMpO1xufTtcblxuY29tbWFuZHMuaW1wbGljaXRXYWl0ID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0IChtcykge1xuICBhd2FpdCB0aGlzLnNldEltcGxpY2l0V2FpdCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG59O1xuXG5oZWxwZXJzLnNldEltcGxpY2l0V2FpdCA9IGZ1bmN0aW9uIHNldEltcGxpY2l0V2FpdCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMuaW1wbGljaXRXYWl0TXMgPSBtcztcbiAgbG9nLmRlYnVnKGBTZXQgaW1wbGljaXQgd2FpdCB0byAke21zfW1zYCk7XG4gIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgbG9nLmRlYnVnKCdTZXR0aW5nIGltcGxpY2l0IHdhaXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgZm9yIChsZXQgZHJpdmVyIG9mIHRoaXMubWFuYWdlZERyaXZlcnMpIHtcbiAgICAgIGlmIChfLmlzRnVuY3Rpb24oZHJpdmVyLnNldEltcGxpY2l0V2FpdCkpIHtcbiAgICAgICAgZHJpdmVyLnNldEltcGxpY2l0V2FpdChtcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG4vLyBwYWdlTG9hZFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5jb21tYW5kcy5wYWdlTG9hZFRpbWVvdXRXM0MgPSBhc3luYyBmdW5jdGlvbiBwYWdlTG9hZFRpbWVvdXRXM0MgKG1zKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHBhZ2VMb2FkLicpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5jb21tYW5kcy5wYWdlTG9hZFRpbWVvdXRNSlNPTldQID0gYXN5bmMgZnVuY3Rpb24gcGFnZUxvYWRUaW1lb3V0TUpTT05XUCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG59O1xuXG4vLyBzY3JpcHRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuY29tbWFuZHMuc2NyaXB0VGltZW91dFczQyA9IGFzeW5jIGZ1bmN0aW9uIHNjcmlwdFRpbWVvdXRXM0MgKG1zKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCB5ZXQgZm9yIHNjcmlwdC4nKTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuY29tbWFuZHMuc2NyaXB0VGltZW91dE1KU09OV1AgPSBhc3luYyBmdW5jdGlvbiBzY3JpcHRUaW1lb3V0TUpTT05XUCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3Igc2NyaXB0LicpO1xufTtcblxuLy8gY29tbWFuZFxuY29tbWFuZHMubmV3Q29tbWFuZFRpbWVvdXQgPSBhc3luYyBmdW5jdGlvbiBuZXdDb21tYW5kVGltZW91dCAobXMpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMuc2V0TmV3Q29tbWFuZFRpbWVvdXQodGhpcy5wYXJzZVRpbWVvdXRBcmd1bWVudChtcykpO1xufTtcblxuaGVscGVycy5zZXROZXdDb21tYW5kVGltZW91dCA9IGZ1bmN0aW9uIHNldE5ld0NvbW1hbmRUaW1lb3V0IChtcykge1xuICB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMgPSBtcztcbiAgbG9nLmRlYnVnKGBTZXQgbmV3IGNvbW1hbmQgdGltZW91dCB0byAke21zfW1zYCk7XG4gIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgbG9nLmRlYnVnKCdTZXR0aW5nIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgZm9yIChsZXQgZHJpdmVyIG9mIHRoaXMubWFuYWdlZERyaXZlcnMpIHtcbiAgICAgIGlmIChfLmlzRnVuY3Rpb24oZHJpdmVyLnNldE5ld0NvbW1hbmRUaW1lb3V0KSkge1xuICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuaGVscGVycy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0ID0gZnVuY3Rpb24gY2xlYXJOZXdDb21tYW5kVGltZW91dCAoKSB7XG4gIGlmICh0aGlzLm5vQ29tbWFuZFRpbWVyKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubm9Db21tYW5kVGltZXIpO1xuICAgIHRoaXMubm9Db21tYW5kVGltZXIgPSBudWxsO1xuICB9XG59O1xuXG5oZWxwZXJzLnN0YXJ0TmV3Q29tbWFuZFRpbWVvdXQgPSBmdW5jdGlvbiBzdGFydE5ld0NvbW1hbmRUaW1lb3V0ICgpIHtcbiAgLy8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyByb2d1ZSB0aW1lb3V0c1xuICB0aGlzLmNsZWFyTmV3Q29tbWFuZFRpbWVvdXQoKTtcblxuICAvLyBpZiBjb21tYW5kIHRpbWVvdXQgaXMgMCwgaXQgaXMgZGlzYWJsZWRcbiAgaWYgKCF0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMpIHJldHVybjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuXG4gIHRoaXMubm9Db21tYW5kVGltZXIgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBsb2cud2FybihgU2h1dHRpbmcgZG93biBiZWNhdXNlIHdlIHdhaXRlZCBgICtcbiAgICAgICAgICAgICAgYCR7dGhpcy5uZXdDb21tYW5kVGltZW91dE1zIC8gMTAwMC4wfSBzZWNvbmRzIGZvciBhIGNvbW1hbmRgKTtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgTmV3IENvbW1hbmQgVGltZW91dCBvZiBgICtcbiAgICAgICAgICAgICAgYCR7dGhpcy5uZXdDb21tYW5kVGltZW91dE1zIC8gMTAwMC4wfSBzZWNvbmRzIGAgK1xuICAgICAgICAgICAgICBgZXhwaXJlZC4gVHJ5IGN1c3RvbWl6aW5nIHRoZSB0aW1lb3V0IHVzaW5nIHRoZSBgICtcbiAgICAgICAgICAgICAgYCduZXdDb21tYW5kVGltZW91dCcgZGVzaXJlZCBjYXBhYmlsaXR5YDtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpKTtcbiAgfSwgdGhpcy5uZXdDb21tYW5kVGltZW91dE1zKTtcbn07XG5cbmhlbHBlcnMuaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uID0gYXN5bmMgZnVuY3Rpb24gaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uIChjb25kRm4pIHtcbiAgbG9nLmRlYnVnKGBXYWl0aW5nIHVwIHRvICR7dGhpcy5pbXBsaWNpdFdhaXRNc30gbXMgZm9yIGNvbmRpdGlvbmApO1xuICBsZXQgd3JhcHBlZENvbmRGbiA9IGFzeW5jICguLi5hcmdzKSA9PiB7XG4gICAgLy8gcmVzZXQgY29tbWFuZCB0aW1lb3V0XG4gICAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG5cbiAgICByZXR1cm4gYXdhaXQgY29uZEZuKC4uLmFyZ3MpO1xuICB9O1xuICByZXR1cm4gYXdhaXQgd2FpdEZvckNvbmRpdGlvbih3cmFwcGVkQ29uZEZuLCB7XG4gICAgd2FpdE1zOiB0aGlzLmltcGxpY2l0V2FpdE1zLCBpbnRlcnZhbE1zOiA1MDAsIGxvZ2dlcjogbG9nXG4gIH0pO1xufTtcblxuaGVscGVycy5wYXJzZVRpbWVvdXRBcmd1bWVudCA9IGZ1bmN0aW9uIHBhcnNlVGltZW91dEFyZ3VtZW50IChtcykge1xuICBsZXQgZHVyYXRpb24gPSBwYXJzZUludChtcywgMTApO1xuICBpZiAoXy5pc05hTihkdXJhdGlvbikgfHwgZHVyYXRpb24gPCBNSU5fVElNRU9VVCkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkVycm9yKGBJbnZhbGlkIHRpbWVvdXQgdmFsdWUgJyR7bXN9J2ApO1xuICB9XG4gIHJldHVybiBkdXJhdGlvbjtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
168
+ return TimeoutCommands;
169
+ }
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiXSwibmFtZXMiOlsiTUlOX1RJTUVPVVQiLCJUaW1lb3V0TWl4aW4iLCJCYXNlIiwiVGltZW91dENvbW1hbmRzIiwidGltZW91dHMiLCJ0eXBlIiwibXMiLCJzY3JpcHQiLCJwYWdlTG9hZCIsImltcGxpY2l0IiwidXRpbCIsImhhc1ZhbHVlIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwibmV3Q29tbWFuZFRpbWVvdXQiLCJpbXBsaWNpdFdhaXRNSlNPTldQIiwicGFnZUxvYWRUaW1lb3V0TUpTT05XUCIsInNjcmlwdFRpbWVvdXRNSlNPTldQIiwiRXJyb3IiLCJzY3JpcHRUaW1lb3V0VzNDIiwicGFnZUxvYWRUaW1lb3V0VzNDIiwiaW1wbGljaXRXYWl0VzNDIiwiZ2V0VGltZW91dHMiLCJjb21tYW5kIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImltcGxpY2l0V2FpdE1zIiwiaW1wbGljaXRXYWl0Iiwic2V0SW1wbGljaXRXYWl0IiwicGFyc2VUaW1lb3V0QXJndW1lbnQiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwic2V0TmV3Q29tbWFuZFRpbWVvdXQiLCJtYW5hZ2VkRHJpdmVycyIsImxlbmd0aCIsImRyaXZlciIsIl8iLCJpc0Z1bmN0aW9uIiwiaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uIiwiY29uZEZuIiwid3JhcHBlZENvbmRGbiIsImFyZ3MiLCJjbGVhck5ld0NvbW1hbmRUaW1lb3V0Iiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImxvZ2dlciIsImR1cmF0aW9uIiwicGFyc2VJbnQiLCJpc05hTiIsIlVua25vd25FcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxXQUFXLEdBQUcsQ0FBcEI7O0FBTU8sU0FBU0MsWUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7QUFLbEMs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QyxNQUFGLEVBQVU7QUFDdEMsV0FBSzVCLEdBQUwsQ0FBU0MsS0FBVCxDQUFnQixpQkFBZ0IsS0FBS2MsY0FBZSxtQkFBcEQ7O0FBQ0EsVUFBSWMsYUFBYSxHQUFHLE9BQU8sR0FBR0MsSUFBVixLQUFtQjtBQUVyQyxjQUFNLEtBQUtDLHNCQUFMLEVBQU47QUFFQSxlQUFPLE1BQU1ILE1BQU0sQ0FBQyxHQUFHRSxJQUFKLENBQW5CO0FBQ0QsT0FMRDs7QUFNQSxhQUFPLE1BQU0sZ0NBQWlCRCxhQUFqQixFQUFnQztBQUMzQ0csUUFBQUEsTUFBTSxFQUFFLEtBQUtqQixjQUQ4QjtBQUUzQ2tCLFFBQUFBLFVBQVUsRUFBRSxHQUYrQjtBQUczQ0MsUUFBQUEsTUFBTSxFQUFFLEtBQUtsQztBQUg4QixPQUFoQyxDQUFiO0FBS0Q7O0FBRURrQixJQUFBQSxvQkFBb0IsQ0FBRXhCLEVBQUYsRUFBTTtBQUN4QixVQUFJeUMsUUFBUSxHQUFHQyxRQUFRLENBQUMxQyxFQUFELEVBQUssRUFBTCxDQUF2Qjs7QUFDQSxVQUFJK0IsZ0JBQUVZLEtBQUYsQ0FBUUYsUUFBUixLQUFxQkEsUUFBUSxHQUFHL0MsV0FBcEMsRUFBaUQ7QUFDL0MsY0FBTSxJQUFJK0IsaUJBQU9tQixZQUFYLENBQXlCLDBCQUF5QjVDLEVBQUcsR0FBckQsQ0FBTjtBQUNEOztBQUNELGFBQU95QyxRQUFQO0FBQ0Q7O0FBeklnQzs7QUE0SW5DLFNBQU81QyxlQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCB7d2FpdEZvckNvbmRpdGlvbn0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cbmNvbnN0IE1JTl9USU1FT1VUID0gMDtcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2V9IEJhc2VcbiAqIEByZXR1cm5zIHtUaW1lb3V0QmFzZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRpbWVvdXRNaXhpbiAoQmFzZSkge1xuXG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SVRpbWVvdXRDb21tYW5kc31cbiAgICovXG4gIGNsYXNzIFRpbWVvdXRDb21tYW5kcyBleHRlbmRzIEJhc2Uge1xuICAgIGFzeW5jIHRpbWVvdXRzICh0eXBlLCBtcywgc2NyaXB0LCBwYWdlTG9hZCwgaW1wbGljaXQpIHtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHR5cGUpICYmIHV0aWwuaGFzVmFsdWUobXMpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgICAgIGBNSlNPTldQIHRpbWVvdXQgYXJndW1lbnRzOiAke0pTT04uc3RyaW5naWZ5KHt0eXBlLCBtc30pfX1gLFxuICAgICAgICApO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2NvbW1hbmQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5uZXdDb21tYW5kVGltZW91dChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAnaW1wbGljaXQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXRNSlNPTldQKG1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlICdwYWdlIGxvYWQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZFRpbWVvdXRNSlNPTldQKG1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zY3JpcHRUaW1lb3V0TUpTT05XUChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYCcke3R5cGV9JyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIE1KU09OV1AgdGltZW91dGAsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE90aGVyd2lzZSBhc3N1bWUgaXQgaXMgVzNDIHByb3RvY29sXG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBzY3JpcHQsXG4gICAgICAgICAgcGFnZUxvYWQsXG4gICAgICAgICAgaW1wbGljaXQsXG4gICAgICAgIH0pfX1gLFxuICAgICAgKTtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHNjcmlwdCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zY3JpcHRUaW1lb3V0VzNDKHNjcmlwdCk7XG4gICAgICB9XG4gICAgICBpZiAodXRpbC5oYXNWYWx1ZShwYWdlTG9hZCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZFRpbWVvdXRXM0MocGFnZUxvYWQpO1xuICAgICAgfVxuICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoaW1wbGljaXQpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0VzNDKGltcGxpY2l0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBnZXRUaW1lb3V0cyAoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb21tYW5kOiB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMsXG4gICAgICAgIGltcGxpY2l0OiB0aGlzLmltcGxpY2l0V2FpdE1zLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBpbXBsaWNpdFxuICAgIGFzeW5jIGltcGxpY2l0V2FpdFczQyAobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0KG1zKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbXBsaWNpdFdhaXRNSlNPTldQIChtcykge1xuICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXQobXMpO1xuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdCAobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0SW1wbGljaXRXYWl0KHRoaXMucGFyc2VUaW1lb3V0QXJndW1lbnQobXMpKTtcbiAgICB9XG5cbiAgICAvLyBwYWdlTG9hZFxuICAgIGFzeW5jIHBhZ2VMb2FkVGltZW91dFczQyAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgcGFnZUxvYWRUaW1lb3V0TUpTT05XUCAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgLy8gc2NyaXB0XG4gICAgYXN5bmMgc2NyaXB0VGltZW91dFczQyAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3Igc2NyaXB0LicpO1xuICAgIH1cblxuICAgIGFzeW5jIHNjcmlwdFRpbWVvdXRNSlNPTldQIChtcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBzY3JpcHQuJyk7XG4gICAgfVxuXG4gICAgLy8gY29tbWFuZFxuICAgIGFzeW5jIG5ld0NvbW1hbmRUaW1lb3V0IChtcykge1xuICAgICAgdGhpcy5zZXROZXdDb21tYW5kVGltZW91dCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG4gICAgfVxuXG4gICAgc2V0SW1wbGljaXRXYWl0IChtcykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgICB0aGlzLmltcGxpY2l0V2FpdE1zID0gbXM7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0IGltcGxpY2l0IHdhaXQgdG8gJHttc31tc2ApO1xuICAgICAgaWYgKHRoaXMubWFuYWdlZERyaXZlcnMgJiYgdGhpcy5tYW5hZ2VkRHJpdmVycy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoJ1NldHRpbmcgaW1wbGljaXQgd2FpdCBvbiBtYW5hZ2VkIGRyaXZlcnMnKTtcbiAgICAgICAgZm9yIChsZXQgZHJpdmVyIG9mIHRoaXMubWFuYWdlZERyaXZlcnMpIHtcbiAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGRyaXZlci5zZXRJbXBsaWNpdFdhaXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0SW1wbGljaXRXYWl0KG1zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXROZXdDb21tYW5kVGltZW91dCAobXMpIHtcbiAgICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9IG1zO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldCBuZXcgY29tbWFuZCB0aW1lb3V0IHRvICR7bXN9bXNgKTtcbiAgICAgIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdTZXR0aW5nIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdEZvckNvbmRpdGlvbiAoY29uZEZuKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgV2FpdGluZyB1cCB0byAke3RoaXMuaW1wbGljaXRXYWl0TXN9IG1zIGZvciBjb25kaXRpb25gKTtcbiAgICAgIGxldCB3cmFwcGVkQ29uZEZuID0gYXN5bmMgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgLy8gcmVzZXQgY29tbWFuZCB0aW1lb3V0XG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgICAgIHJldHVybiBhd2FpdCBjb25kRm4oLi4uYXJncyk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGF3YWl0IHdhaXRGb3JDb25kaXRpb24od3JhcHBlZENvbmRGbiwge1xuICAgICAgICB3YWl0TXM6IHRoaXMuaW1wbGljaXRXYWl0TXMsXG4gICAgICAgIGludGVydmFsTXM6IDUwMCxcbiAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHBhcnNlVGltZW91dEFyZ3VtZW50IChtcykge1xuICAgICAgbGV0IGR1cmF0aW9uID0gcGFyc2VJbnQobXMsIDEwKTtcbiAgICAgIGlmIChfLmlzTmFOKGR1cmF0aW9uKSB8fCBkdXJhdGlvbiA8IE1JTl9USU1FT1VUKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkVycm9yKGBJbnZhbGlkIHRpbWVvdXQgdmFsdWUgJyR7bXN9J2ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGR1cmF0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBUaW1lb3V0Q29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kc30gSVRpbWVvdXRDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8SVRpbWVvdXRDb21tYW5kcz59IFRpbWVvdXRCYXNlXG4gKi9cbiJdfQ==
@@ -0,0 +1,235 @@
1
+ export type Capabilities = import('@appium/types').Capabilities;
2
+ export type W3CCapabilities = import('@appium/types').W3CCapabilities;
3
+ export type Driver = import('@appium/types').Driver;
4
+ export type Core = import('@appium/types').Core;
5
+ export type DriverOpts = import('@appium/types').DriverOpts;
6
+ export type EventHistory = import('@appium/types').EventHistory;
7
+ export type AppiumLogger = import('@appium/types').AppiumLogger;
8
+ /**
9
+ * @implements {Core}
10
+ */
11
+ export class DriverCore implements Core {
12
+ /**
13
+ * Make the basedriver version available so for any driver which inherits from this package, we
14
+ * know which version of basedriver it inherited from
15
+ */
16
+ static baseVersion: any;
17
+ constructor(opts?: import("@appium/types").DriverOpts, shouldValidateCaps?: boolean);
18
+ /**
19
+ * @type {string?}
20
+ */
21
+ sessionId: string | null;
22
+ /**
23
+ * @type {DriverOpts & Capabilities}
24
+ */
25
+ opts: import("@appium/types").DriverOpts & Partial<import("@wdio/types/build/Capabilities").Capabilities & import("@wdio/types/build/Capabilities").AppiumCapabilities & {
26
+ [x: string]: any;
27
+ }>;
28
+ /**
29
+ * @type {DriverOpts}
30
+ */
31
+ initialOpts: DriverOpts;
32
+ /**
33
+ * @type {Capabilities}
34
+ */
35
+ caps: Capabilities;
36
+ /**
37
+ * @type {W3CCapabilities}
38
+ */
39
+ originalCaps: W3CCapabilities;
40
+ helpers: import("@appium/types").DriverHelpers;
41
+ /**
42
+ * basePath is used for several purposes, for example in setting up
43
+ * proxying to other drivers, since we need to know what the base path
44
+ * of any incoming request might look like. We set it to the default
45
+ * initially but it is automatically updated during any actual program
46
+ * execution by the routeConfiguringFunction, which is necessarily run as
47
+ * the entrypoint for any Appium server
48
+ */
49
+ basePath: string;
50
+ relaxedSecurityEnabled: boolean;
51
+ /** @type {string[]} */
52
+ allowInsecure: string[];
53
+ /** @type {string[]} */
54
+ denyInsecure: string[];
55
+ newCommandTimeoutMs: number;
56
+ implicitWaitMs: number;
57
+ /** @type {string[]} */
58
+ locatorStrategies: string[];
59
+ /** @type {string[]} */
60
+ webLocatorStrategies: string[];
61
+ /** @type {Driver[]} */
62
+ managedDrivers: Driver[];
63
+ /** @type {NodeJS.Timeout?} */
64
+ noCommandTimer: NodeJS.Timeout | null;
65
+ /** @type {EventHistory} */
66
+ _eventHistory: EventHistory;
67
+ _constraints: import("@appium/types").Constraints;
68
+ /** @type {NodeJS.EventEmitter} */
69
+ eventEmitter: NodeJS.EventEmitter;
70
+ /**
71
+ * @type {AppiumLogger}
72
+ */
73
+ _log: AppiumLogger;
74
+ /**
75
+ * @protected
76
+ */
77
+ protected shutdownUnexpectedly: boolean;
78
+ /**
79
+ * @type {boolean}
80
+ * @protected
81
+ */
82
+ protected shouldValidateCaps: boolean;
83
+ /**
84
+ * @protected
85
+ */
86
+ protected commandsQueueGuard: AsyncLock;
87
+ /**
88
+ * settings should be instantiated by drivers which extend BaseDriver, but
89
+ * we set it to an empty DeviceSettings instance here to make sure that the
90
+ * default settings are applied even if an extending driver doesn't utilize
91
+ * the settings functionality itself
92
+ */
93
+ settings: DeviceSettings<Record<string, unknown>>;
94
+ get log(): import("@appium/types").AppiumLogger;
95
+ /**
96
+ * Set a callback handler if needed to execute a custom piece of code
97
+ * when the driver is shut down unexpectedly. Multiple calls to this method
98
+ * will cause the handler to be executed mutiple times
99
+ *
100
+ * @param {(...args: any[]) => void} handler The code to be executed on unexpected shutdown.
101
+ * The function may accept one argument, which is the actual error instance, which
102
+ * caused the driver to shut down.
103
+ */
104
+ onUnexpectedShutdown(handler: (...args: any[]) => void): void;
105
+ /**
106
+ * This property is used by AppiumDriver to store the data of the
107
+ * specific driver sessions. This data can be later used to adjust
108
+ * properties for driver instances running in parallel.
109
+ * Override it in inherited driver classes if necessary.
110
+ *
111
+ * @return {Record<string,unknown>} Driver properties mapping
112
+ */
113
+ get driverData(): Record<string, unknown>;
114
+ /**
115
+ * This property controls the way {#executeCommand} method
116
+ * handles new driver commands received from the client.
117
+ * Override it for inherited classes only in special cases.
118
+ *
119
+ * @return {boolean} If the returned value is true (default) then all the commands
120
+ * received by the particular driver instance are going to be put into the queue,
121
+ * so each following command will not be executed until the previous command
122
+ * execution is completed. False value disables that queue, so each driver command
123
+ * is executed independently and does not wait for anything.
124
+ */
125
+ get isCommandsQueueEnabled(): boolean;
126
+ get eventHistory(): import("@appium/types").EventHistory;
127
+ /**
128
+ * API method for driver developers to log timings for important events
129
+ * @param {string} eventName
130
+ */
131
+ logEvent(eventName: string): void;
132
+ /**
133
+ * Overridden in appium driver, but here so that individual drivers can be
134
+ * tested with clients that poll
135
+ */
136
+ getStatus(): Promise<{}>;
137
+ set desiredCapConstraints(arg: import("@appium/types").Constraints);
138
+ get desiredCapConstraints(): import("@appium/types").Constraints;
139
+ /**
140
+ * method required by MJSONWP in order to determine whether it should
141
+ * respond with an invalid session response
142
+ * @param {string} [sessionId]
143
+ * @returns {boolean}
144
+ */
145
+ sessionExists(sessionId?: string | undefined): boolean;
146
+ /**
147
+ * method required by MJSONWP in order to determine if the command should
148
+ * be proxied directly to the driver
149
+ * @param {string} sessionId
150
+ * @returns {this | import('@appium/types').Driver}
151
+ */
152
+ driverForSession(sessionId: string): import("@appium/types").Driver | DriverCore;
153
+ /**
154
+ *
155
+ * @param {Capabilities} caps
156
+ */
157
+ logExtraCaps(caps: Partial<import("@wdio/types/build/Capabilities").Capabilities & import("@wdio/types/build/Capabilities").AppiumCapabilities & {
158
+ [x: string]: any;
159
+ }>): void;
160
+ /**
161
+ *
162
+ * @param {Capabilities} caps
163
+ * @returns {boolean}
164
+ */
165
+ validateDesiredCaps(caps: Capabilities): boolean;
166
+ isMjsonwpProtocol(): boolean;
167
+ isW3CProtocol(): boolean;
168
+ setProtocolMJSONWP(): void;
169
+ protocol: string | undefined;
170
+ setProtocolW3C(): void;
171
+ /**
172
+ * Check whether a given feature is enabled via its name
173
+ *
174
+ * @param {string} name - name of feature/command
175
+ *
176
+ * @returns {Boolean}
177
+ */
178
+ isFeatureEnabled(name: string): boolean;
179
+ /**
180
+ * Assert that a given feature is enabled and throw a helpful error if it's
181
+ * not
182
+ *
183
+ * @param {string} name - name of feature/command
184
+ */
185
+ ensureFeatureEnabled(name: string): void;
186
+ /**
187
+ *
188
+ * @param {string} strategy
189
+ * @param {boolean} [webContext]
190
+ */
191
+ validateLocatorStrategy(strategy: string, webContext?: boolean | undefined): void;
192
+ /**
193
+ *
194
+ * @param {string} [sessionId]
195
+ * @returns {boolean}
196
+ */
197
+ proxyActive(sessionId?: string | undefined): boolean;
198
+ /**
199
+ *
200
+ * @param {string} sessionId
201
+ * @returns {[string, RegExp][]}
202
+ */
203
+ getProxyAvoidList(sessionId: string): [string, RegExp][];
204
+ /**
205
+ *
206
+ * @param {string} [sessionId]
207
+ * @returns {boolean}
208
+ */
209
+ canProxy(sessionId?: string | undefined): boolean;
210
+ /**
211
+ * Whether a given command route (expressed as method and url) should not be
212
+ * proxied according to this driver
213
+ *
214
+ * @param {string} sessionId - the current sessionId (in case the driver runs
215
+ * multiple session ids and requires it). This is not used in this method but
216
+ * should be made available to overridden methods.
217
+ * @param {import('@appium/types').HTTPMethod} method - HTTP method of the route
218
+ * @param {string} url - url of the route
219
+ * @param {any} [body] - webdriver request body
220
+ *
221
+ * @returns {boolean} - whether the route should be avoided
222
+ */
223
+ proxyRouteIsAvoided(sessionId: string, method: import('@appium/types').HTTPMethod, url: string, body?: any): boolean;
224
+ /**
225
+ *
226
+ * @param {Driver} driver
227
+ */
228
+ addManagedDriver(driver: Driver): void;
229
+ getManagedDrivers(): import("@appium/types").Driver[];
230
+ clearNewCommandTimeout(): Promise<void>;
231
+ }
232
+ import { EventEmitter } from "events";
233
+ import AsyncLock from "async-lock";
234
+ import DeviceSettings from "./device-settings";
235
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/core.js"],"names":[],"mappings":"2BAyea,OAAO,eAAe,EAAE,YAAY;8BACpC,OAAO,eAAe,EAAE,eAAe;qBACvC,OAAO,eAAe,EAAE,MAAM;mBAC9B,OAAO,eAAe,EAAE,IAAI;yBAC5B,OAAO,eAAe,EAAE,UAAU;2BAClC,OAAO,eAAe,EAAE,YAAY;2BACpC,OAAO,eAAe,EAAE,YAAY;AAzdjD;;GAEG;AACH;IAEE;;;OAGG;IACH,wBAAoC;IAqGpC,qFAqBC;IAxHD;;MAEE;IACF,WAFS,MAAM,QAEE;IAEjB;;MAEE;IACF;;OAAK;IAEL;;MAEE;IACF,aAFS,UAAU,CAEP;IAEZ;;MAEE;IACF,MAFS,YAAY,CAEhB;IAEL;;MAEE;IACF,cAFS,eAAe,CAEX;IAEb,+CAAkB;IAElB;;;;;;;MAOE;IACF,iBAA6B;IAE7B,gCAA+B;IAE/B,uBAAuB;IACvB,eADW,MAAM,EAAE,CACA;IAEnB,uBAAuB;IACvB,cADW,MAAM,EAAE,CACD;IAElB,4BAA6C;IAE7C,uBAAmB;IAEnB,uBAAuB;IACvB,mBADW,MAAM,EAAE,CACI;IAEvB,uBAAuB;IACvB,sBADW,MAAM,EAAE,CACO;IAE1B,uBAAuB;IACvB,gBADW,MAAM,EAAE,CACC;IAEpB,8BAA8B;IAC9B,gBADW,OAAO,OAAO,QACH;IAEtB,2BAA2B;IAC3B,eADW,YAAY,CACQ;IAE/B,kDAAyD;IAGzD,kCAAkC;IAClC,cADW,mBAAmB,CACI;IAElC;;MAEE;IACF,MAFS,YAAY,CAEhB;IAEL;;MAEE;IACF,wCAA6B;IAE7B;;;MAGE;IACF,8BAHS,OAAO,CAGG;IAEnB;;MAEE;IACF,wCAAqC;IAErC;;;;;MAKE;IACF,kDAAgC;IAyBhC,gDAEC;IAED;;;;;;;;MAQE;IACF,wCAJoB,GAAG,EAAE,KAAK,IAAI,QAMjC;IAED;;;;;;;MAOE;IACF,0CAEC;IAED;;;;;;;;;;MAUE;IACF,sCAEC;IAMD,yDAEC;IAED;;;MAGE;IACF,oBAFU,MAAM,QAgBf;IAED;;;MAGE;IACF,yBAEC;IAGD,oEAWC;IAED,iEAEC;IAED;;;;;MAKE;IACF,+CAFY,OAAO,CAKlB;IAED;;;;;MAKE;IACF,4BAHU,MAAM,+CAKf;IAED;;;MAGE;IACF;;cAWC;IAED;;;;MAIE;IACF,0BAHU,YAAY,GACV,OAAO,CAqBlB;IAED,6BAEC;IAED,yBAEC;IAED,2BAEC;IADC,6BAAiC;IAGnC,uBAEC;IAED;;;;;;MAME;IACF,uBAJU,MAAM,WAuBf;IAED;;;;;MAKE;IACF,2BAFU,MAAM,QAYf;IAED;;;;MAIE;IACF,kCAHU,MAAM,0CAoBf;IAED;;;;MAIE;IACF,6CAFY,OAAO,CAIlB;IAED;;;;MAIE;IACF,6BAHU,MAAM,GACJ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAI7B;IAED;;;;MAIE;IACF,0CAFY,OAAO,CAIlB;IAED;;;;;;;;;;;;MAYE;IACF,+BATU,MAAM,UAGN,OAAO,eAAe,EAAE,UAAU,OAClC,MAAM,SACN,GAAG,GAED,OAAO,CAuBlB;IAED;;;MAGE;IACF,yBAFU,MAAM,QAIf;IAED,sDAEC;IAED,wCAKC;CACF"}