@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,45 +5,38 @@ 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.LogMixin = LogMixin;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
12
- var _logger = _interopRequireDefault(require("../logger"));
13
-
14
12
  var _lodash = _interopRequireDefault(require("lodash"));
15
13
 
16
- const commands = {},
17
- helpers = {},
18
- extensions = {};
19
- exports.helpers = helpers;
20
- exports.commands = commands;
21
- extensions.supportedLogTypes = {};
22
-
23
- commands.getLogTypes = async function getLogTypes() {
24
- _logger.default.debug('Retrieving supported log types');
14
+ function LogMixin(Base) {
15
+ class LogCommands extends Base {
16
+ supportedLogTypes;
25
17
 
26
- return _lodash.default.keys(this.supportedLogTypes);
27
- };
18
+ async getLogTypes() {
19
+ this.log.debug('Retrieving supported log types');
20
+ return _lodash.default.keys(this.supportedLogTypes);
21
+ }
28
22
 
29
- commands.getLog = async function getLog(logType) {
30
- _logger.default.debug(`Retrieving '${logType}' logs`);
23
+ async getLog(logType) {
24
+ this.log.debug(`Retrieving '${logType}' logs`);
31
25
 
32
- if (!(await this.getLogTypes()).includes(logType)) {
33
- const logsTypesWithDescriptions = _lodash.default.reduce(this.supportedLogTypes, (acc, value, key) => {
34
- acc[key] = value.description;
35
- return acc;
36
- }, {});
26
+ if (!(await this.getLogTypes()).includes(logType)) {
27
+ const logsTypesWithDescriptions = _lodash.default.reduce(this.supportedLogTypes, (acc, value, key) => {
28
+ acc[key] = value.description;
29
+ return acc;
30
+ }, {});
37
31
 
38
- throw new Error(`Unsupported log type '${logType}'. ` + `Supported types: ${JSON.stringify(logsTypesWithDescriptions)}`);
39
- }
32
+ throw new Error(`Unsupported log type '${logType}'. ` + `Supported types: ${JSON.stringify(logsTypesWithDescriptions)}`);
33
+ }
40
34
 
41
- return await this.supportedLogTypes[logType].getter(this);
42
- };
43
-
44
- Object.assign(extensions, commands, helpers);
45
- var _default = extensions;
46
- exports.default = _default;require('source-map-support').install();
35
+ return await this.supportedLogTypes[logType].getter(this);
36
+ }
47
37
 
38
+ }
48
39
 
49
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwic3VwcG9ydGVkTG9nVHlwZXMiLCJnZXRMb2dUeXBlcyIsImxvZyIsImRlYnVnIiwiXyIsImtleXMiLCJnZXRMb2ciLCJsb2dUeXBlIiwiaW5jbHVkZXMiLCJsb2dzVHlwZXNXaXRoRGVzY3JpcHRpb25zIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJrZXkiLCJkZXNjcmlwdGlvbiIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldHRlciIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7QUFBQSxNQUFxQkMsT0FBTyxHQUFHLEVBQS9CO0FBQUEsTUFBbUNDLFVBQVUsR0FBRyxFQUFoRDs7O0FBVUFBLFVBQVUsQ0FBQ0MsaUJBQVgsR0FBK0IsRUFBL0I7O0FBR0FILFFBQVEsQ0FBQ0ksV0FBVCxHQUF1QixlQUFlQSxXQUFmLEdBQThCO0FBQ25EQyxrQkFBSUMsS0FBSixDQUFVLGdDQUFWOztBQUNBLFNBQU9DLGdCQUFFQyxJQUFGLENBQU8sS0FBS0wsaUJBQVosQ0FBUDtBQUNELENBSEQ7O0FBS0FILFFBQVEsQ0FBQ1MsTUFBVCxHQUFrQixlQUFlQSxNQUFmLENBQXVCQyxPQUF2QixFQUFnQztBQUNoREwsa0JBQUlDLEtBQUosQ0FBVyxlQUFjSSxPQUFRLFFBQWpDOztBQUVBLE1BQUksQ0FBQyxDQUFDLE1BQU0sS0FBS04sV0FBTCxFQUFQLEVBQTJCTyxRQUEzQixDQUFvQ0QsT0FBcEMsQ0FBTCxFQUFtRDtBQUNqRCxVQUFNRSx5QkFBeUIsR0FBR0wsZ0JBQUVNLE1BQUYsQ0FBUyxLQUFLVixpQkFBZCxFQUFpQyxDQUFDVyxHQUFELEVBQU1DLEtBQU4sRUFBYUMsR0FBYixLQUFxQjtBQUN0RkYsTUFBQUEsR0FBRyxDQUFDRSxHQUFELENBQUgsR0FBV0QsS0FBSyxDQUFDRSxXQUFqQjtBQUNBLGFBQU9ILEdBQVA7QUFDRCxLQUhpQyxFQUcvQixFQUgrQixDQUFsQzs7QUFJQSxVQUFNLElBQUlJLEtBQUosQ0FBVyx5QkFBd0JSLE9BQVEsS0FBakMsR0FDYixvQkFBbUJTLElBQUksQ0FBQ0MsU0FBTCxDQUFlUix5QkFBZixDQUEwQyxFQUQxRCxDQUFOO0FBRUQ7O0FBRUQsU0FBTyxNQUFNLEtBQUtULGlCQUFMLENBQXVCTyxPQUF2QixFQUFnQ1csTUFBaEMsQ0FBdUMsSUFBdkMsQ0FBYjtBQUNELENBYkQ7O0FBZUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjckIsVUFBZCxFQUEwQkYsUUFBMUIsRUFBb0NDLE9BQXBDO2VBRWVDLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG4vLyBvdmVycmlkZSBpbiBzdWItY2xhc3Nlcywgd2l0aCBhcHByb3ByaWF0ZSBsb2dzXG4vLyBpbiB0aGUgZm9ybSBvZlxuLy8gICB7XG4vLyAgICAgdHlwZToge1xuLy8gICAgICAgZGVzY3JpcHRpb246ICdzb21lIHVzZWZ1bCB0ZXh0Jyxcbi8vICAgICAgIGdldHRlcjogKCkgPT4ge30sIC8vIHNvbWUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB0byBnZXQgdGhlIGxvZ3Ncbi8vICAgICB9XG4vLyAgIH1cbmV4dGVuc2lvbnMuc3VwcG9ydGVkTG9nVHlwZXMgPSB7fTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLmdldExvZ1R5cGVzID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9nVHlwZXMgKCkge1xuICBsb2cuZGVidWcoJ1JldHJpZXZpbmcgc3VwcG9ydGVkIGxvZyB0eXBlcycpO1xuICByZXR1cm4gXy5rZXlzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMpO1xufTtcblxuY29tbWFuZHMuZ2V0TG9nID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9nIChsb2dUeXBlKSB7XG4gIGxvZy5kZWJ1ZyhgUmV0cmlldmluZyAnJHtsb2dUeXBlfScgbG9nc2ApO1xuXG4gIGlmICghKGF3YWl0IHRoaXMuZ2V0TG9nVHlwZXMoKSkuaW5jbHVkZXMobG9nVHlwZSkpIHtcbiAgICBjb25zdCBsb2dzVHlwZXNXaXRoRGVzY3JpcHRpb25zID0gXy5yZWR1Y2UodGhpcy5zdXBwb3J0ZWRMb2dUeXBlcywgKGFjYywgdmFsdWUsIGtleSkgPT4ge1xuICAgICAgYWNjW2tleV0gPSB2YWx1ZS5kZXNjcmlwdGlvbjtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbG9nIHR5cGUgJyR7bG9nVHlwZX0nLiBgICtcbiAgICAgIGBTdXBwb3J0ZWQgdHlwZXM6ICR7SlNPTi5zdHJpbmdpZnkobG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyl9YCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5zdXBwb3J0ZWRMb2dUeXBlc1tsb2dUeXBlXS5nZXR0ZXIodGhpcyk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLiJ9
40
+ return LogCommands;
41
+ }
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyJdLCJuYW1lcyI6WyJMb2dNaXhpbiIsIkJhc2UiLCJMb2dDb21tYW5kcyIsInN1cHBvcnRlZExvZ1R5cGVzIiwiZ2V0TG9nVHlwZXMiLCJsb2ciLCJkZWJ1ZyIsIl8iLCJrZXlzIiwiZ2V0TG9nIiwibG9nVHlwZSIsImluY2x1ZGVzIiwibG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyIsInJlZHVjZSIsImFjYyIsInZhbHVlIiwia2V5IiwiZGVzY3JpcHRpb24iLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXR0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0FBT08sU0FBU0EsUUFBVCxDQUFtQkMsSUFBbkIsRUFBeUI7QUFJOUIsUUFBTUMsV0FBTixTQUEwQkQsSUFBMUIsQ0FBK0I7QUFLN0JFLElBQUFBLGlCQUFpQjs7QUFFQSxVQUFYQyxXQUFXLEdBQUk7QUFDbkIsV0FBS0MsR0FBTCxDQUFTQyxLQUFULENBQWUsZ0NBQWY7QUFDQSxhQUFPQyxnQkFBRUMsSUFBRixDQUFPLEtBQUtMLGlCQUFaLENBQVA7QUFDRDs7QUFLVyxVQUFOTSxNQUFNLENBQUVDLE9BQUYsRUFBVztBQUNyQixXQUFLTCxHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsZUFBY0ksT0FBUSxRQUF0Qzs7QUFFQSxVQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUtOLFdBQUwsRUFBUCxFQUEyQk8sUUFBM0IsQ0FBb0NELE9BQXBDLENBQUwsRUFBbUQ7QUFDakQsY0FBTUUseUJBQXlCLEdBQUdMLGdCQUFFTSxNQUFGLENBQ2hDLEtBQUtWLGlCQUQyQixFQUVoQyxDQUFDVyxHQUFELEVBQU1DLEtBQU4sRUFBYUMsR0FBYixLQUFxQjtBQUNuQkYsVUFBQUEsR0FBRyxDQUFDRSxHQUFELENBQUgsR0FBV0QsS0FBSyxDQUFDRSxXQUFqQjtBQUNBLGlCQUFPSCxHQUFQO0FBQ0QsU0FMK0IsRUFNaEMsRUFOZ0MsQ0FBbEM7O0FBUUEsY0FBTSxJQUFJSSxLQUFKLENBQ0gseUJBQXdCUixPQUFRLEtBQWpDLEdBQ0csb0JBQW1CUyxJQUFJLENBQUNDLFNBQUwsQ0FBZVIseUJBQWYsQ0FBMEMsRUFGNUQsQ0FBTjtBQUlEOztBQUVELGFBQU8sTUFBTSxLQUFLVCxpQkFBTCxDQUF1Qk8sT0FBdkIsRUFBZ0NXLE1BQWhDLENBQXVDLElBQXZDLENBQWI7QUFDRDs7QUFsQzRCOztBQW9DL0IsU0FBT25CLFdBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge0ZpbmRCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7TG9nQmFzZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExvZ01peGluIChCYXNlKSB7XG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SUxvZ0NvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgTG9nQ29tbWFuZHMgZXh0ZW5kcyBCYXNlIHtcbiAgICAvKipcbiAgICAgKiBYWFg6IGR1YmlvdXNcbiAgICAgKiBAdHlwZSB7UmVjb3JkPHN0cmluZyxMb2dUeXBlPERyaXZlcj4+fVxuICAgICAqL1xuICAgIHN1cHBvcnRlZExvZ1R5cGVzO1xuXG4gICAgYXN5bmMgZ2V0TG9nVHlwZXMgKCkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ1JldHJpZXZpbmcgc3VwcG9ydGVkIGxvZyB0eXBlcycpO1xuICAgICAgcmV0dXJuIF8ua2V5cyh0aGlzLnN1cHBvcnRlZExvZ1R5cGVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAdGhpcyB7RHJpdmVyfVxuICAgICAqL1xuICAgIGFzeW5jIGdldExvZyAobG9nVHlwZSkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFJldHJpZXZpbmcgJyR7bG9nVHlwZX0nIGxvZ3NgKTtcblxuICAgICAgaWYgKCEoYXdhaXQgdGhpcy5nZXRMb2dUeXBlcygpKS5pbmNsdWRlcyhsb2dUeXBlKSkge1xuICAgICAgICBjb25zdCBsb2dzVHlwZXNXaXRoRGVzY3JpcHRpb25zID0gXy5yZWR1Y2UoXG4gICAgICAgICAgdGhpcy5zdXBwb3J0ZWRMb2dUeXBlcyxcbiAgICAgICAgICAoYWNjLCB2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IHZhbHVlLmRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICB9LFxuICAgICAgICAgIHt9LFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuc3VwcG9ydGVkIGxvZyB0eXBlICcke2xvZ1R5cGV9Jy4gYCArXG4gICAgICAgICAgICBgU3VwcG9ydGVkIHR5cGVzOiAke0pTT04uc3RyaW5naWZ5KGxvZ3NUeXBlc1dpdGhEZXNjcmlwdGlvbnMpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzW2xvZ1R5cGVdLmdldHRlcih0aGlzKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIExvZ0NvbW1hbmRzO1xufVxuXG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzfSBJTG9nQ29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9maW5kJykuRmluZEJhc2V9IEZpbmRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRmluZENvbW1hbmRzICYgSUxvZ0NvbW1hbmRzPn0gTG9nQmFzZVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dUeXBlPFQ+fSBMb2dUeXBlXG4gKi9cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @param {SettingsBase} Base
3
+ * @returns {SessionBase}
4
+ */
5
+ export function SessionMixin(Base: SettingsBase): SessionBase;
6
+ export type ISessionCommands = import('@appium/types').SessionCommands;
7
+ export type SingularSessionData = import('@appium/types').SingularSessionData;
8
+ export type MultiSessionData = import('@appium/types').MultiSessionData;
9
+ export type SettingsBase = import('./settings').SettingsBase;
10
+ export type SessionBase = import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & import('@appium/types').EventCommands & import('@appium/types').FindCommands & import('@appium/types').LogCommands & import('@appium/types').SettingsCommands & ISessionCommands>;
11
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/session.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH,mCAHW,YAAY,GACV,WAAW,CAmCvB;+BAGY,OAAO,eAAe,EAAE,eAAe;kCACvC,OAAO,eAAe,EAAE,mBAAmB;+BAC3C,OAAO,eAAe,EAAE,gBAAgB;2BACxC,OAAO,YAAY,EAAE,YAAY;0BACjC,OAAO,WAAW,EAAE,cAAc,CAAC,OAAO,eAAe,EAAE,eAAe,GAAG,OAAO,eAAe,EAAE,aAAa,GAAG,OAAO,eAAe,EAAE,YAAY,GAAG,OAAO,eAAe,EAAE,WAAW,GAAG,OAAO,eAAe,EAAE,gBAAgB,GAAG,gBAAgB,CAAC"}
@@ -5,176 +5,39 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
9
- Object.defineProperty(exports, "promoteAppiumOptions", {
10
- enumerable: true,
11
- get: function () {
12
- return _capabilities.promoteAppiumOptions;
13
- }
14
- });
8
+ exports.SessionMixin = SessionMixin;
15
9
 
16
10
  require("source-map-support/register");
17
11
 
18
12
  var _lodash = _interopRequireDefault(require("lodash"));
19
13
 
20
- var _logger = _interopRequireDefault(require("../logger"));
21
-
22
- var _protocol = require("../../protocol");
23
-
24
- var _support = require("@appium/support");
25
-
26
- var _capabilities = require("../capabilities");
27
-
28
- let commands = {};
29
-
30
- commands.createSession = async function createSession(jsonwpDesiredCapabilities, jsonwpRequiredCaps, w3cCapabilities) {
31
- if (this.sessionId !== null) {
32
- throw new _protocol.errors.SessionNotCreatedError('Cannot create a new session ' + 'while one is in progress');
33
- }
34
-
35
- _logger.default.debug();
36
-
37
- if (!w3cCapabilities) {
38
- throw new _protocol.errors.SessionNotCreatedError('Appium only supports W3C-style capability objects. ' + 'Your client is sending an older capabilities format. Please update your client library.');
39
- }
40
-
41
- if (jsonwpDesiredCapabilities) {
42
- _logger.default.warn('Appium received (M)JSONWP desired capabilities in alongside the W3C capabilities; they will be ignored');
43
- }
44
-
45
- this.setProtocolW3C();
46
- this.originalCaps = _lodash.default.cloneDeep(w3cCapabilities);
47
-
48
- _logger.default.debug(`Creating session with W3C capabilities: ${JSON.stringify(w3cCapabilities, null, 2)}`);
49
-
50
- let caps;
51
-
52
- try {
53
- caps = (0, _capabilities.processCapabilities)(w3cCapabilities, this.desiredCapConstraints, this.shouldValidateCaps);
54
-
55
- if (caps[_capabilities.APPIUM_OPTS_CAP]) {
56
- _logger.default.debug(`Found ${_capabilities.PREFIXED_APPIUM_OPTS_CAP} capability present; will promote items inside to caps`);
57
-
58
- caps = (0, _capabilities.promoteAppiumOptions)(caps);
59
- }
60
-
61
- caps = fixCaps(caps, this.desiredCapConstraints);
62
- } catch (e) {
63
- throw new _protocol.errors.SessionNotCreatedError(e.message);
64
- }
65
-
66
- this.validateDesiredCaps(caps);
67
- this.sessionId = _support.util.uuidV4();
68
- this.caps = caps;
69
- this.opts = _lodash.default.cloneDeep(this.initialOpts);
70
- Object.assign(this.opts, this.caps);
71
-
72
- if (this.opts.noReset && this.opts.fullReset) {
73
- throw new Error("The 'noReset' and 'fullReset' capabilities are mutually " + 'exclusive and should not both be set to true. You ' + "probably meant to just use 'fullReset' on its own");
74
- }
75
-
76
- if (this.opts.noReset === true) {
77
- this.opts.fullReset = false;
78
- }
79
-
80
- if (this.opts.fullReset === true) {
81
- this.opts.noReset = false;
82
- }
83
-
84
- this.opts.fastReset = !this.opts.fullReset && !this.opts.noReset;
85
- this.opts.skipUninstall = this.opts.fastReset || this.opts.noReset;
86
-
87
- if (typeof this.opts.app === 'string' && this.opts.app.trim() === '') {
88
- this.opts.app = null;
89
- }
14
+ function SessionMixin(Base) {
15
+ class SessionCommands extends Base {
16
+ async getSessions() {
17
+ let ret = [];
90
18
 
91
- if (!_lodash.default.isUndefined(this.caps.newCommandTimeout)) {
92
- this.newCommandTimeoutMs = this.caps.newCommandTimeout * 1000;
93
- }
94
-
95
- _logger.default.info(`Session created with session id: ${this.sessionId}`);
96
-
97
- return [this.sessionId, caps];
98
- };
99
-
100
- commands.getSessions = async function getSessions() {
101
- let ret = [];
102
-
103
- if (this.sessionId) {
104
- ret.push({
105
- id: this.sessionId,
106
- capabilities: this.caps
107
- });
108
- }
109
-
110
- return ret;
111
- };
112
-
113
- commands.getSession = async function getSession() {
114
- if (this.caps.eventTimings) {
115
- return Object.assign({}, this.caps, {
116
- events: this.eventHistory
117
- });
118
- }
119
-
120
- return this.caps;
121
- };
122
-
123
- commands.deleteSession = async function deleteSession() {
124
- this.clearNewCommandTimeout();
125
-
126
- if (this.isCommandsQueueEnabled && this.commandsQueueGuard.isBusy()) {
127
- for (const key of _lodash.default.keys(this.commandsQueueGuard.queues)) {
128
- this.commandsQueueGuard.queues[key] = [];
129
- }
130
- }
131
-
132
- this.sessionId = null;
133
- };
134
-
135
- function fixCaps(originalCaps, desiredCapConstraints = {}) {
136
- let caps = _lodash.default.clone(originalCaps);
137
-
138
- let booleanCaps = _lodash.default.keys(_lodash.default.pickBy(desiredCapConstraints, k => k.isBoolean === true));
139
-
140
- for (let cap of booleanCaps) {
141
- let value = originalCaps[cap];
142
-
143
- if (_lodash.default.isString(value)) {
144
- value = value.toLowerCase();
145
-
146
- if (value === 'true' || value === 'false') {
147
- _logger.default.warn(`Capability '${cap}' changed from string to boolean. This may cause unexpected behavior`);
148
-
149
- caps[cap] = value === 'true';
19
+ if (this.sessionId) {
20
+ ret.push({
21
+ id: this.sessionId,
22
+ capabilities: this.caps
23
+ });
150
24
  }
151
- }
152
- }
153
-
154
- let intCaps = _lodash.default.keys(_lodash.default.pickBy(desiredCapConstraints, k => k.isNumber === true));
155
25
 
156
- for (let cap of intCaps) {
157
- let value = originalCaps[cap];
158
-
159
- if (_lodash.default.isString(value) && !isNaN(value)) {
160
- value = value.trim();
161
- let newValue = parseInt(value, 10);
26
+ return ret;
27
+ }
162
28
 
163
- if (value !== `${newValue}`) {
164
- newValue = parseFloat(value);
29
+ async getSession() {
30
+ if (this.caps.eventTimings) {
31
+ return { ...this.caps,
32
+ events: this.eventHistory
33
+ };
165
34
  }
166
35
 
167
- _logger.default.warn(`Capability '${cap}' changed from string ('${value}') to integer (${newValue}). This may cause unexpected behavior`);
168
-
169
- caps[cap] = newValue;
36
+ return this.caps;
170
37
  }
38
+
171
39
  }
172
40
 
173
- return caps;
41
+ return SessionCommands;
174
42
  }
175
-
176
- var _default = commands;
177
- exports.default = _default;require('source-map-support').install();
178
-
179
-
180
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJjcmVhdGVTZXNzaW9uIiwianNvbndwRGVzaXJlZENhcGFiaWxpdGllcyIsImpzb253cFJlcXVpcmVkQ2FwcyIsInczY0NhcGFiaWxpdGllcyIsInNlc3Npb25JZCIsImVycm9ycyIsIlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IiLCJsb2ciLCJkZWJ1ZyIsIndhcm4iLCJzZXRQcm90b2NvbFczQyIsIm9yaWdpbmFsQ2FwcyIsIl8iLCJjbG9uZURlZXAiLCJKU09OIiwic3RyaW5naWZ5IiwiY2FwcyIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsInNob3VsZFZhbGlkYXRlQ2FwcyIsIkFQUElVTV9PUFRTX0NBUCIsIlBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCIsImZpeENhcHMiLCJlIiwibWVzc2FnZSIsInZhbGlkYXRlRGVzaXJlZENhcHMiLCJ1dGlsIiwidXVpZFY0Iiwib3B0cyIsImluaXRpYWxPcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwibm9SZXNldCIsImZ1bGxSZXNldCIsIkVycm9yIiwiZmFzdFJlc2V0Iiwic2tpcFVuaW5zdGFsbCIsImFwcCIsInRyaW0iLCJpc1VuZGVmaW5lZCIsIm5ld0NvbW1hbmRUaW1lb3V0IiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImluZm8iLCJnZXRTZXNzaW9ucyIsInJldCIsInB1c2giLCJpZCIsImNhcGFiaWxpdGllcyIsImdldFNlc3Npb24iLCJldmVudFRpbWluZ3MiLCJldmVudHMiLCJldmVudEhpc3RvcnkiLCJkZWxldGVTZXNzaW9uIiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsImlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQiLCJjb21tYW5kc1F1ZXVlR3VhcmQiLCJpc0J1c3kiLCJrZXkiLCJrZXlzIiwicXVldWVzIiwiY2xvbmUiLCJib29sZWFuQ2FwcyIsInBpY2tCeSIsImsiLCJpc0Jvb2xlYW4iLCJjYXAiLCJ2YWx1ZSIsImlzU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJpbnRDYXBzIiwiaXNOdW1iZXIiLCJpc05hTiIsIm5ld1ZhbHVlIiwicGFyc2VJbnQiLCJwYXJzZUZsb2F0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFFBQVEsR0FBRyxFQUFmOztBQUlBQSxRQUFRLENBQUNDLGFBQVQsR0FBeUIsZUFBZUEsYUFBZixDQUE4QkMseUJBQTlCLEVBQXlEQyxrQkFBekQsRUFBNkVDLGVBQTdFLEVBQThGO0FBQ3JILE1BQUksS0FBS0MsU0FBTCxLQUFtQixJQUF2QixFQUE2QjtBQUMzQixVQUFNLElBQUlDLGlCQUFPQyxzQkFBWCxDQUFrQyxpQ0FDQSwwQkFEbEMsQ0FBTjtBQUVEOztBQUVEQyxrQkFBSUMsS0FBSjs7QUFFQSxNQUFJLENBQUNMLGVBQUwsRUFBc0I7QUFDcEIsVUFBTSxJQUFJRSxpQkFBT0Msc0JBQVgsQ0FBa0Msd0RBQ3RDLHlGQURJLENBQU47QUFFRDs7QUFFRCxNQUFJTCx5QkFBSixFQUErQjtBQUM3Qk0sb0JBQUlFLElBQUosQ0FBUyx3R0FBVDtBQUNEOztBQUVELE9BQUtDLGNBQUw7QUFFQSxPQUFLQyxZQUFMLEdBQW9CQyxnQkFBRUMsU0FBRixDQUFZVixlQUFaLENBQXBCOztBQUNBSSxrQkFBSUMsS0FBSixDQUFXLDJDQUEwQ00sSUFBSSxDQUFDQyxTQUFMLENBQWVaLGVBQWYsRUFBZ0MsSUFBaEMsRUFBc0MsQ0FBdEMsQ0FBeUMsRUFBOUY7O0FBR0EsTUFBSWEsSUFBSjs7QUFDQSxNQUFJO0FBQ0ZBLElBQUFBLElBQUksR0FBRyx1Q0FBb0JiLGVBQXBCLEVBQXFDLEtBQUtjLHFCQUExQyxFQUFpRSxLQUFLQyxrQkFBdEUsQ0FBUDs7QUFDQSxRQUFJRixJQUFJLENBQUNHLDZCQUFELENBQVIsRUFBMkI7QUFDekJaLHNCQUFJQyxLQUFKLENBQVcsU0FBUVksc0NBQXlCLHdEQUE1Qzs7QUFDQUosTUFB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QUNEO0FBQ0Y7QUFDRjs7QUFHRCxNQUFJRyxPQUFPLEdBQUd4RCxnQkFBRTZDLElBQUYsQ0FBTzdDLGdCQUFFaUQsTUFBRixDQUFTNUMscUJBQVQsRUFBaUM2QyxDQUFELElBQU9BLENBQUMsQ0FBQ08sUUFBRixLQUFlLElBQXRELENBQVAsQ0FBZDs7QUFDQSxPQUFLLElBQUlMLEdBQVQsSUFBZ0JJLE9BQWhCLEVBQXlCO0FBQ3ZCLFFBQUlILEtBQUssR0FBR3RELFlBQVksQ0FBQ3FELEdBQUQsQ0FBeEI7O0FBQ0EsUUFBSXBELGdCQUFFc0QsUUFBRixDQUFXRCxLQUFYLEtBQXFCLENBQUNLLEtBQUssQ0FBQ0wsS0FBRCxDQUEvQixFQUF3QztBQUN0Q0EsTUFBQUEsS0FBSyxHQUFHQSxLQUFLLENBQUM1QixJQUFOLEVBQVI7QUFDQSxVQUFJa0MsUUFBUSxHQUFHQyxRQUFRLENBQUNQLEtBQUQsRUFBUSxFQUFSLENBQXZCOztBQUNBLFVBQUlBLEtBQUssS0FBTSxHQUFFTSxRQUFTLEVBQTFCLEVBQTZCO0FBQzNCQSxRQUFBQSxRQUFRLEdBQUdFLFVBQVUsQ0FBQ1IsS0FBRCxDQUFyQjtBQUNEOztBQUNEMUQsc0JBQUlFLElBQUosQ0FBVSxlQUFjdUQsR0FBSSwyQkFBMEJDLEtBQU0sa0JBQWlCTSxRQUFTLHVDQUF0Rjs7QUFDQXZELE1BQUFBLElBQUksQ0FBQ2dELEdBQUQsQ0FBSixHQUFZTyxRQUFaO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPdkQsSUFBUDtBQUNEOztlQUVjakIsUSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IHByb2Nlc3NDYXBhYmlsaXRpZXMsIHByb21vdGVBcHBpdW1PcHRpb25zLCBBUFBJVU1fT1BUU19DQVAsIFBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCB9IGZyb20gJy4uL2NhcGFiaWxpdGllcyc7XG5cbmxldCBjb21tYW5kcyA9IHt9O1xuXG4vLyBUT0RPOiBSZW1vdmUganNvbndwRGVzaXJlZENhcGFiaWxpdGllcyBhbmQganNvbndwUmVxdWlyZWRDYXBzIGNvbXBsZXRlbHlcbi8vICAgICAgIHNpbmNlIEFwcGl1bSAyLjAgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoZW0uXG5jb21tYW5kcy5jcmVhdGVTZXNzaW9uID0gYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2Vzc2lvbiAoanNvbndwRGVzaXJlZENhcGFiaWxpdGllcywganNvbndwUmVxdWlyZWRDYXBzLCB3M2NDYXBhYmlsaXRpZXMpIHtcbiAgaWYgKHRoaXMuc2Vzc2lvbklkICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKCdDYW5ub3QgY3JlYXRlIGEgbmV3IHNlc3Npb24gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aGlsZSBvbmUgaXMgaW4gcHJvZ3Jlc3MnKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZygpO1xuXG4gIGlmICghdzNjQ2FwYWJpbGl0aWVzKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5TZXNzaW9uTm90Q3JlYXRlZEVycm9yKCdBcHBpdW0gb25seSBzdXBwb3J0cyBXM0Mtc3R5bGUgY2FwYWJpbGl0eSBvYmplY3RzLiAnICtcbiAgICAgICdZb3VyIGNsaWVudCBpcyBzZW5kaW5nIGFuIG9sZGVyIGNhcGFiaWxpdGllcyBmb3JtYXQuIFBsZWFzZSB1cGRhdGUgeW91ciBjbGllbnQgbGlicmFyeS4nKTtcbiAgfVxuXG4gIGlmIChqc29ud3BEZXNpcmVkQ2FwYWJpbGl0aWVzKSB7XG4gICAgbG9nLndhcm4oJ0FwcGl1bSByZWNlaXZlZCAoTSlKU09OV1AgZGVzaXJlZCBjYXBhYmlsaXRpZXMgaW4gYWxvbmdzaWRlIHRoZSBXM0MgY2FwYWJpbGl0aWVzOyB0aGV5IHdpbGwgYmUgaWdub3JlZCcpO1xuICB9XG5cbiAgdGhpcy5zZXRQcm90b2NvbFczQygpO1xuXG4gIHRoaXMub3JpZ2luYWxDYXBzID0gXy5jbG9uZURlZXAodzNjQ2FwYWJpbGl0aWVzKTtcbiAgbG9nLmRlYnVnKGBDcmVhdGluZyBzZXNzaW9uIHdpdGggVzNDIGNhcGFiaWxpdGllczogJHtKU09OLnN0cmluZ2lmeSh3M2NDYXBhYmlsaXRpZXMsIG51bGwsIDIpfWApO1xuXG5cbiAgbGV0IGNhcHM7XG4gIHRyeSB7XG4gICAgY2FwcyA9IHByb2Nlc3NDYXBhYmlsaXRpZXModzNjQ2FwYWJpbGl0aWVzLCB0aGlzLmRlc2lyZWRDYXBDb25zdHJhaW50cywgdGhpcy5zaG91bGRWYWxpZGF0ZUNhcHMpO1xuICAgIGlmIChjYXBzW0FQUElVTV9PUFRTX0NBUF0pIHtcbiAgICAgIGxvZy5kZWJ1ZyhgRm91bmQgJHtQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVB9IGNhcGFiaWxpdHkgcHJlc2VudDsgd2lsbCBwcm9tb3RlIGl0ZW1zIGluc2lkZSB0byBjYXBzYCk7XG4gICAgICBjYXBzID0gcHJvbW90ZUFwcGl1bU9wdGlvbnMoY2Fwcyk7XG4gICAgfVxuICAgIGNhcHMgPSBmaXhDYXBzKGNhcHMsIHRoaXMuZGVzaXJlZENhcENvbnN0cmFpbnRzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihlLm1lc3NhZ2UpO1xuICB9XG5cbiAgdGhpcy52YWxpZGF0ZURlc2lyZWRDYXBzKGNhcHMpO1xuXG4gIHRoaXMuc2Vzc2lvbklkID0gdXRpbC51dWlkVjQoKTtcbiAgdGhpcy5jYXBzID0gY2FwcztcbiAgdGhpcy5vcHRzID0gXy5jbG9uZURlZXAodGhpcy5pbml0aWFsT3B0cyk7XG5cbiAgLy8gbWVyZ2UgY2FwcyBvbnRvIG9wdHMgc28gd2UgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB3aGF0J3Mgd2hlcmVcbiAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdHMsIHRoaXMuY2Fwcyk7XG5cbiAgLy8gZGVhbCB3aXRoIHJlc2V0c1xuICAvLyBzb21lIHBlb3BsZSBsaWtlIHRvIGRvIHdlaXJkIHRoaW5ncyBieSBzZXR0aW5nIG5vUmVzZXQgYW5kIGZ1bGxSZXNldFxuICAvLyBib3RoIHRvIHRydWUsIGJ1dCB0aGlzIGlzIG1pc2d1aWRlZCBhbmQgc3RyYW5nZSwgc28gZXJyb3IgaGVyZSBpbnN0ZWFkXG4gIGlmICh0aGlzLm9wdHMubm9SZXNldCAmJiB0aGlzLm9wdHMuZnVsbFJlc2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdub1Jlc2V0JyBhbmQgJ2Z1bGxSZXNldCcgY2FwYWJpbGl0aWVzIGFyZSBtdXR1YWxseSBcIiArXG4gICAgICAgICAgICAgICAgICAgICdleGNsdXNpdmUgYW5kIHNob3VsZCBub3QgYm90aCBiZSBzZXQgdG8gdHJ1ZS4gWW91ICcgK1xuICAgICAgICAgICAgICAgICAgICBcInByb2JhYmx5IG1lYW50IHRvIGp1c3QgdXNlICdmdWxsUmVzZXQnIG9uIGl0cyBvd25cIik7XG4gIH1cbiAgaWYgKHRoaXMub3B0cy5ub1Jlc2V0ID09PSB0cnVlKSB7XG4gICAgdGhpcy5vcHRzLmZ1bGxSZXNldCA9IGZhbHNlO1xuICB9XG4gIGlmICh0aGlzLm9wdHMuZnVsbFJlc2V0ID09PSB0cnVlKSB7XG4gICAgdGhpcy5vcHRzLm5vUmVzZXQgPSBmYWxzZTtcbiAgfVxuICB0aGlzLm9wdHMuZmFzdFJlc2V0ID0gIXRoaXMub3B0cy5mdWxsUmVzZXQgJiYgIXRoaXMub3B0cy5ub1Jlc2V0O1xuICB0aGlzLm9wdHMuc2tpcFVuaW5zdGFsbCA9IHRoaXMub3B0cy5mYXN0UmVzZXQgfHwgdGhpcy5vcHRzLm5vUmVzZXQ7XG5cbiAgLy8gUHJldmVudHMgZW1wdHkgc3RyaW5nIGNhcHMgc28gd2UgZG9uJ3QgbmVlZCB0byB0ZXN0IGl0IGV2ZXJ5d2hlcmVcbiAgaWYgKHR5cGVvZiB0aGlzLm9wdHMuYXBwID09PSAnc3RyaW5nJyAmJiB0aGlzLm9wdHMuYXBwLnRyaW0oKSA9PT0gJycpIHtcbiAgICB0aGlzLm9wdHMuYXBwID0gbnVsbDtcbiAgfVxuXG4gIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLmNhcHMubmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgdGhpcy5uZXdDb21tYW5kVGltZW91dE1zID0gKHRoaXMuY2Fwcy5uZXdDb21tYW5kVGltZW91dCAqIDEwMDApO1xuICB9XG5cbiAgbG9nLmluZm8oYFNlc3Npb24gY3JlYXRlZCB3aXRoIHNlc3Npb24gaWQ6ICR7dGhpcy5zZXNzaW9uSWR9YCk7XG5cbiAgcmV0dXJuIFt0aGlzLnNlc3Npb25JZCwgY2Fwc107XG59O1xuXG5jb21tYW5kcy5nZXRTZXNzaW9ucyA9IGFzeW5jIGZ1bmN0aW9uIGdldFNlc3Npb25zICgpIHtcbiAgbGV0IHJldCA9IFtdO1xuXG4gIGlmICh0aGlzLnNlc3Npb25JZCkge1xuICAgIHJldC5wdXNoKHtcbiAgICAgIGlkOiB0aGlzLnNlc3Npb25JZCxcbiAgICAgIGNhcGFiaWxpdGllczogdGhpcy5jYXBzXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcblxuY29tbWFuZHMuZ2V0U2Vzc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFNlc3Npb24gKCkge1xuICBpZiAodGhpcy5jYXBzLmV2ZW50VGltaW5ncykge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNhcHMsIHtldmVudHM6IHRoaXMuZXZlbnRIaXN0b3J5fSk7XG4gIH1cbiAgcmV0dXJuIHRoaXMuY2Fwcztcbn07XG5cbmNvbW1hbmRzLmRlbGV0ZVNlc3Npb24gPSBhc3luYyBmdW5jdGlvbiBkZWxldGVTZXNzaW9uICgvKiBzZXNzaW9uSWQgKi8pIHtcbiAgdGhpcy5jbGVhck5ld0NvbW1hbmRUaW1lb3V0KCk7XG4gIGlmICh0aGlzLmlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgJiYgdGhpcy5jb21tYW5kc1F1ZXVlR3VhcmQuaXNCdXN5KCkpIHtcbiAgICAvLyBzaW1wbGUgaGFjayB0byByZWxlYXNlIHBlbmRpbmcgY29tbWFuZHMgaWYgdGhleSBleGlzdFxuICAgIGZvciAoY29uc3Qga2V5IG9mIF8ua2V5cyh0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5xdWV1ZXMpKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzUXVldWVHdWFyZC5xdWV1ZXNba2V5XSA9IFtdO1xuICAgIH1cbiAgfVxuICB0aGlzLnNlc3Npb25JZCA9IG51bGw7XG59O1xuXG5mdW5jdGlvbiBmaXhDYXBzIChvcmlnaW5hbENhcHMsIGRlc2lyZWRDYXBDb25zdHJhaW50cyA9IHt9KSB7XG4gIGxldCBjYXBzID0gXy5jbG9uZShvcmlnaW5hbENhcHMpO1xuXG4gIC8vIGJvb2xlYW4gY2FwYWJpbGl0aWVzIGNhbiBiZSBwYXNzZWQgaW4gYXMgc3RyaW5ncyAnZmFsc2UnIGFuZCAndHJ1ZSdcbiAgLy8gd2hpY2ggd2Ugd2FudCB0byB0cmFuc2xhdGUgaW50byBib29sZWFuIHZhbHVlc1xuICBsZXQgYm9vbGVhbkNhcHMgPSBfLmtleXMoXy5waWNrQnkoZGVzaXJlZENhcENvbnN0cmFpbnRzLCAoaykgPT4gay5pc0Jvb2xlYW4gPT09IHRydWUpKTtcbiAgZm9yIChsZXQgY2FwIG9mIGJvb2xlYW5DYXBzKSB7XG4gICAgbGV0IHZhbHVlID0gb3JpZ2luYWxDYXBzW2NhcF07XG4gICAgaWYgKF8uaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJ2ZhbHNlJykge1xuICAgICAgICBsb2cud2FybihgQ2FwYWJpbGl0eSAnJHtjYXB9JyBjaGFuZ2VkIGZyb20gc3RyaW5nIHRvIGJvb2xlYW4uIFRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3JgKTtcbiAgICAgICAgY2Fwc1tjYXBdID0gKHZhbHVlID09PSAndHJ1ZScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGludCBjYXBhYmlsaXRpZXMgYXJlIG9mdGVuIHNlbnQgaW4gYXMgc3RyaW5ncyBieSBmcmFtZXdvcmtzXG4gIGxldCBpbnRDYXBzID0gXy5rZXlzKF8ucGlja0J5KGRlc2lyZWRDYXBDb25zdHJhaW50cywgKGspID0+IGsuaXNOdW1iZXIgPT09IHRydWUpKTtcbiAgZm9yIChsZXQgY2FwIG9mIGludENhcHMpIHtcbiAgICBsZXQgdmFsdWUgPSBvcmlnaW5hbENhcHNbY2FwXTtcbiAgICBpZiAoXy5pc1N0cmluZyh2YWx1ZSkgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7XG4gICAgICBsZXQgbmV3VmFsdWUgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgICAgaWYgKHZhbHVlICE9PSBgJHtuZXdWYWx1ZX1gKSB7XG4gICAgICAgIG5ld1ZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBsb2cud2FybihgQ2FwYWJpbGl0eSAnJHtjYXB9JyBjaGFuZ2VkIGZyb20gc3RyaW5nICgnJHt2YWx1ZX0nKSB0byBpbnRlZ2VyICgke25ld1ZhbHVlfSkuIFRoaXMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3JgKTtcbiAgICAgIGNhcHNbY2FwXSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjYXBzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbmV4cG9ydCB7IHByb21vdGVBcHBpdW1PcHRpb25zIH07XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwibmFtZXMiOlsiU2Vzc2lvbk1peGluIiwiQmFzZSIsIlNlc3Npb25Db21tYW5kcyIsImdldFNlc3Npb25zIiwicmV0Iiwic2Vzc2lvbklkIiwicHVzaCIsImlkIiwiY2FwYWJpbGl0aWVzIiwiY2FwcyIsImdldFNlc3Npb24iLCJldmVudFRpbWluZ3MiLCJldmVudHMiLCJldmVudEhpc3RvcnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0FBTU8sU0FBU0EsWUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7QUFJbEMsUUFBTUMsZUFBTixTQUE4QkQsSUFBOUIsQ0FBbUM7QUFJaEIsVUFBWEUsV0FBVyxHQUFJO0FBQ25CLFVBQUlDLEdBQUcsR0FBRyxFQUFWOztBQUVBLFVBQUksS0FBS0MsU0FBVCxFQUFvQjtBQUNsQkQsUUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQVM7QUFDUEMsVUFBQUEsRUFBRSxFQUFFLEtBQUtGLFNBREY7QUFFUEcsVUFBQUEsWUFBWSxFQUFFLEtBQUtDO0FBRlosU0FBVDtBQUlEOztBQUVELGFBQU9MLEdBQVA7QUFDRDs7QUFLZSxVQUFWTSxVQUFVLEdBQUk7QUFDbEIsVUFBSSxLQUFLRCxJQUFMLENBQVVFLFlBQWQsRUFBNEI7QUFDMUIsZUFBTyxFQUFDLEdBQUcsS0FBS0YsSUFBVDtBQUFlRyxVQUFBQSxNQUFNLEVBQUUsS0FBS0M7QUFBNUIsU0FBUDtBQUNEOztBQUNELGFBQU8sS0FBS0osSUFBWjtBQUNEOztBQXpCZ0M7O0FBNEJuQyxTQUFPUCxlQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVxdWlyZS1hd2FpdCAqL1xuLy8gQHRzLWNoZWNrXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIEBwYXJhbSB7U2V0dGluZ3NCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7U2Vzc2lvbkJhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXNzaW9uTWl4aW4gKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJU2Vzc2lvbkNvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgU2Vzc2lvbkNvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8TXVsdGlTZXNzaW9uRGF0YVtdPn1cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTZXNzaW9ucyAoKSB7XG4gICAgICBsZXQgcmV0ID0gW107XG5cbiAgICAgIGlmICh0aGlzLnNlc3Npb25JZCkge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgaWQ6IHRoaXMuc2Vzc2lvbklkLFxuICAgICAgICAgIGNhcGFiaWxpdGllczogdGhpcy5jYXBzLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxTaW5ndWxhclNlc3Npb25EYXRhPn1cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTZXNzaW9uICgpIHtcbiAgICAgIGlmICh0aGlzLmNhcHMuZXZlbnRUaW1pbmdzKSB7XG4gICAgICAgIHJldHVybiB7Li4udGhpcy5jYXBzLCBldmVudHM6IHRoaXMuZXZlbnRIaXN0b3J5fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmNhcHM7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNlc3Npb25Db21tYW5kcztcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2Vzc2lvbkNvbW1hbmRzfSBJU2Vzc2lvbkNvbW1hbmRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2luZ3VsYXJTZXNzaW9uRGF0YX0gU2luZ3VsYXJTZXNzaW9uRGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLk11bHRpU2Vzc2lvbkRhdGF9IE11bHRpU2Vzc2lvbkRhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2V0dGluZ3MnKS5TZXR0aW5nc0Jhc2V9IFNldHRpbmdzQmFzZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVGltZW91dENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXZlbnRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkZpbmRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2V0dGluZ3NDb21tYW5kcyAmIElTZXNzaW9uQ29tbWFuZHM+fSBTZXNzaW9uQmFzZVxuICovXG4iXX0=
@@ -0,0 +1,10 @@
1
+ /**
2
+ *
3
+ * @param {ReturnType<import('./log').LogMixin>} Base
4
+ * @returns {SettingsBase}
5
+ */
6
+ export function SettingsMixin(Base: ReturnType<typeof import("./log").LogMixin>): SettingsBase;
7
+ export type ISettingsCommands = import('@appium/types').SettingsCommands;
8
+ export type LogBase = import('./log').LogBase;
9
+ export type SettingsBase = import('../driver').BaseDriverBase<import('@appium/types').TimeoutCommands & import('@appium/types').EventCommands & import('@appium/types').FindCommands & import('@appium/types').LogCommands & ISettingsCommands>;
10
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/settings.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,oCAHW,2CAAoC,GAClC,YAAY,CAyBxB;gCAGY,OAAO,eAAe,EAAE,gBAAgB;sBACxC,OAAO,OAAO,EAAE,OAAO;2BACvB,OAAO,WAAW,EAAE,cAAc,CAAC,OAAO,eAAe,EAAE,eAAe,GAAG,OAAO,eAAe,EAAE,aAAa,GAAG,OAAO,eAAe,EAAE,YAAY,GAAG,OAAO,eAAe,EAAE,WAAW,GAAG,iBAAiB,CAAC"}
@@ -1,36 +1,32 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports.default = void 0;
6
+ exports.SettingsMixin = SettingsMixin;
9
7
 
10
8
  require("source-map-support/register");
11
9
 
12
- var _logger = _interopRequireDefault(require("../logger"));
10
+ function SettingsMixin(Base) {
11
+ class SettingsCommands extends Base {
12
+ async updateSettings(newSettings) {
13
+ if (!this.settings) {
14
+ this.log.errorAndThrow('Cannot update settings; settings object not found');
15
+ }
13
16
 
14
- let commands = {};
17
+ return await this.settings.update(newSettings);
18
+ }
15
19
 
16
- commands.updateSettings = async function updateSettings(newSettings) {
17
- if (!this.settings) {
18
- _logger.default.errorAndThrow('Cannot update settings; settings object not found');
19
- }
20
+ async getSettings() {
21
+ if (!this.settings) {
22
+ this.log.errorAndThrow('Cannot get settings; settings object not found');
23
+ }
20
24
 
21
- return await this.settings.update(newSettings);
22
- };
25
+ return await this.settings.getSettings();
26
+ }
23
27
 
24
- commands.getSettings = async function getSettings() {
25
- if (!this.settings) {
26
- _logger.default.errorAndThrow('Cannot get settings; settings object not found');
27
28
  }
28
29
 
29
- return await this.settings.getSettings();
30
- };
31
-
32
- var _default = commands;
33
- exports.default = _default;require('source-map-support').install();
34
-
35
-
36
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3NldHRpbmdzLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwidXBkYXRlU2V0dGluZ3MiLCJuZXdTZXR0aW5ncyIsInNldHRpbmdzIiwibG9nIiwiZXJyb3JBbmRUaHJvdyIsInVwZGF0ZSIsImdldFNldHRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBLElBQUlBLFFBQVEsR0FBRyxFQUFmOztBQUVBQSxRQUFRLENBQUNDLGNBQVQsR0FBMEIsZUFBZUEsY0FBZixDQUErQkMsV0FBL0IsRUFBNEM7QUFDcEUsTUFBSSxDQUFDLEtBQUtDLFFBQVYsRUFBb0I7QUFDbEJDLG9CQUFJQyxhQUFKLENBQWtCLG1EQUFsQjtBQUNEOztBQUNELFNBQU8sTUFBTSxLQUFLRixRQUFMLENBQWNHLE1BQWQsQ0FBcUJKLFdBQXJCLENBQWI7QUFDRCxDQUxEOztBQU9BRixRQUFRLENBQUNPLFdBQVQsR0FBdUIsZUFBZUEsV0FBZixHQUE4QjtBQUNuRCxNQUFJLENBQUMsS0FBS0osUUFBVixFQUFvQjtBQUNsQkMsb0JBQUlDLGFBQUosQ0FBa0IsZ0RBQWxCO0FBQ0Q7O0FBQ0QsU0FBTyxNQUFNLEtBQUtGLFFBQUwsQ0FBY0ksV0FBZCxFQUFiO0FBQ0QsQ0FMRDs7ZUFPZVAsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcblxubGV0IGNvbW1hbmRzID0ge307XG5cbmNvbW1hbmRzLnVwZGF0ZVNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gdXBkYXRlU2V0dGluZ3MgKG5ld1NldHRpbmdzKSB7XG4gIGlmICghdGhpcy5zZXR0aW5ncykge1xuICAgIGxvZy5lcnJvckFuZFRocm93KCdDYW5ub3QgdXBkYXRlIHNldHRpbmdzOyBzZXR0aW5ncyBvYmplY3Qgbm90IGZvdW5kJyk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0dGluZ3MudXBkYXRlKG5ld1NldHRpbmdzKTtcbn07XG5cbmNvbW1hbmRzLmdldFNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gZ2V0U2V0dGluZ3MgKCkge1xuICBpZiAoIXRoaXMuc2V0dGluZ3MpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdygnQ2Fubm90IGdldCBzZXR0aW5nczsgc2V0dGluZ3Mgb2JqZWN0IG5vdCBmb3VuZCcpO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldHRpbmdzLmdldFNldHRpbmdzKCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4ifQ==
30
+ return SettingsCommands;
31
+ }
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3NldHRpbmdzLmpzIl0sIm5hbWVzIjpbIlNldHRpbmdzTWl4aW4iLCJCYXNlIiwiU2V0dGluZ3NDb21tYW5kcyIsInVwZGF0ZVNldHRpbmdzIiwibmV3U2V0dGluZ3MiLCJzZXR0aW5ncyIsImxvZyIsImVycm9yQW5kVGhyb3ciLCJ1cGRhdGUiLCJnZXRTZXR0aW5ncyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBT08sU0FBU0EsYUFBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFJbkMsUUFBTUMsZ0JBQU4sU0FBK0JELElBQS9CLENBQW9DO0FBRWQsVUFBZEUsY0FBYyxDQUFFQyxXQUFGLEVBQWU7QUFDakMsVUFBSSxDQUFDLEtBQUtDLFFBQVYsRUFBb0I7QUFDbEIsYUFBS0MsR0FBTCxDQUFTQyxhQUFULENBQXVCLG1EQUF2QjtBQUNEOztBQUNELGFBQU8sTUFBTSxLQUFLRixRQUFMLENBQWNHLE1BQWQsQ0FBcUJKLFdBQXJCLENBQWI7QUFDRDs7QUFFZ0IsVUFBWEssV0FBVyxHQUFJO0FBQ25CLFVBQUksQ0FBQyxLQUFLSixRQUFWLEVBQW9CO0FBQ2xCLGFBQUtDLEdBQUwsQ0FBU0MsYUFBVCxDQUF1QixnREFBdkI7QUFDRDs7QUFDRCxhQUFPLE1BQU0sS0FBS0YsUUFBTCxDQUFjSSxXQUFkLEVBQWI7QUFDRDs7QUFkaUM7O0FBa0JwQyxTQUFPUCxnQkFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7UmV0dXJuVHlwZTxpbXBvcnQoJy4vbG9nJykuTG9nTWl4aW4+fSBCYXNlXG4gKiBAcmV0dXJucyB7U2V0dGluZ3NCYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gU2V0dGluZ3NNaXhpbiAoQmFzZSkge1xuICAvKipcbiAgICogQGltcGxlbWVudHMge0lTZXR0aW5nc0NvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgU2V0dGluZ3NDb21tYW5kcyBleHRlbmRzIEJhc2Uge1xuXG4gICAgYXN5bmMgdXBkYXRlU2V0dGluZ3MgKG5ld1NldHRpbmdzKSB7XG4gICAgICBpZiAoIXRoaXMuc2V0dGluZ3MpIHtcbiAgICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnQ2Fubm90IHVwZGF0ZSBzZXR0aW5nczsgc2V0dGluZ3Mgb2JqZWN0IG5vdCBmb3VuZCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0dGluZ3MudXBkYXRlKG5ld1NldHRpbmdzKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRTZXR0aW5ncyAoKSB7XG4gICAgICBpZiAoIXRoaXMuc2V0dGluZ3MpIHtcbiAgICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnQ2Fubm90IGdldCBzZXR0aW5nczsgc2V0dGluZ3Mgb2JqZWN0IG5vdCBmb3VuZCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0U2V0dGluZ3MoKTtcbiAgICB9XG5cbiAgfVxuXG4gIHJldHVybiBTZXR0aW5nc0NvbW1hbmRzO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5TZXR0aW5nc0NvbW1hbmRzfSBJU2V0dGluZ3NDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9sb2cnKS5Mb2dCYXNlfSBMb2dCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRmluZENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuTG9nQ29tbWFuZHMgJiBJU2V0dGluZ3NDb21tYW5kcz59IFNldHRpbmdzQmFzZVxuICovXG4iXX0=
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @param {import('../driver').BaseDriverBase} Base
3
+ * @returns {TimeoutBase}
4
+ */
5
+ export function TimeoutMixin(Base: import('../driver').BaseDriverBase): TimeoutBase;
6
+ export type ITimeoutCommands = import('@appium/types').TimeoutCommands;
7
+ export type TimeoutBase = import('../driver').BaseDriverBase<ITimeoutCommands>;
8
+ //# sourceMappingURL=timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../../lib/basedriver/commands/timeout.js"],"names":[],"mappings":"AAWA;;;GAGG;AACH,mCAHW,OAAO,WAAW,EAAE,cAAc,GAChC,WAAW,CAoJvB;+BAGY,OAAO,eAAe,EAAE,eAAe;0BACvC,OAAO,WAAW,EAAE,cAAc,CAAC,gBAAgB,CAAC"}