oxygen-cli 1.22.0 → 1.99.0-alpha.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 (232) hide show
  1. package/CHANGELOG.md +0 -50
  2. package/build/core/OxygenCore.js +56 -145
  3. package/build/errors/OxygenError.js +5 -15
  4. package/build/errors/helper.js +45 -49
  5. package/build/index.js +14 -6
  6. package/build/lib/cli-util.js +19 -19
  7. package/build/lib/cli.js +4 -2
  8. package/build/lib/parallel-launcher.js +333 -0
  9. package/build/lib/param-manager.js +66 -47
  10. package/build/lib/util.js +38 -9
  11. package/build/ox_modules/index.js +1 -97
  12. package/build/ox_modules/module-assert.js +19 -9
  13. package/build/ox_modules/module-dns.js +220 -0
  14. package/build/ox_modules/module-http.js +39 -51
  15. package/build/ox_modules/module-shell.js +19 -75
  16. package/build/ox_modules/module-utils.js +1 -108
  17. package/build/ox_modules/utils.js +1 -357
  18. package/build/reporter/FileReporterBase.js +5 -5
  19. package/build/reporter/ReportAggregator.js +127 -4
  20. package/build/runners/WorkerProcess.js +15 -28
  21. package/build/runners/index.js +2 -6
  22. package/build/runners/oxygen/OxygenWorker.js +8 -8
  23. package/build/runners/oxygen/index.js +17 -18
  24. package/build/runners/oxygen/worker.js +10 -8
  25. package/package.json +12 -46
  26. package/build/lib/img-merge.js +0 -163
  27. package/build/ox_modules/module-db.js +0 -146
  28. package/build/ox_modules/module-email.js +0 -212
  29. package/build/ox_modules/module-eyes.js +0 -189
  30. package/build/ox_modules/module-mailinator.js +0 -207
  31. package/build/ox_modules/module-mob/commands/alertAccept.js +0 -35
  32. package/build/ox_modules/module-mob/commands/alertDismiss.js +0 -35
  33. package/build/ox_modules/module-mob/commands/assertAlert.js +0 -56
  34. package/build/ox_modules/module-mob/commands/assertText.js +0 -45
  35. package/build/ox_modules/module-mob/commands/assertTitle.js +0 -43
  36. package/build/ox_modules/module-mob/commands/assertValue.js +0 -66
  37. package/build/ox_modules/module-mob/commands/back.js +0 -27
  38. package/build/ox_modules/module-mob/commands/clear.js +0 -40
  39. package/build/ox_modules/module-mob/commands/click.js +0 -35
  40. package/build/ox_modules/module-mob/commands/clickHidden.js +0 -52
  41. package/build/ox_modules/module-mob/commands/clickLong.js +0 -34
  42. package/build/ox_modules/module-mob/commands/clickMultipleTimes.js +0 -37
  43. package/build/ox_modules/module-mob/commands/closeApp.js +0 -27
  44. package/build/ox_modules/module-mob/commands/debug.js +0 -26
  45. package/build/ox_modules/module-mob/commands/dragAndDrop.js +0 -38
  46. package/build/ox_modules/module-mob/commands/enableNetwork.js +0 -75
  47. package/build/ox_modules/module-mob/commands/execute.js +0 -32
  48. package/build/ox_modules/module-mob/commands/findElement.js +0 -36
  49. package/build/ox_modules/module-mob/commands/findElements.js +0 -39
  50. package/build/ox_modules/module-mob/commands/getAlertText.js +0 -31
  51. package/build/ox_modules/module-mob/commands/getAppiumLogs.js +0 -26
  52. package/build/ox_modules/module-mob/commands/getBrowserLogs.js +0 -66
  53. package/build/ox_modules/module-mob/commands/getCurrentActivity.js +0 -26
  54. package/build/ox_modules/module-mob/commands/getCurrentPackage.js +0 -26
  55. package/build/ox_modules/module-mob/commands/getDeviceLogs.js +0 -57
  56. package/build/ox_modules/module-mob/commands/getDeviceTime.js +0 -27
  57. package/build/ox_modules/module-mob/commands/getLocation.js +0 -32
  58. package/build/ox_modules/module-mob/commands/getSource.js +0 -26
  59. package/build/ox_modules/module-mob/commands/getText.js +0 -36
  60. package/build/ox_modules/module-mob/commands/getTitle.js +0 -24
  61. package/build/ox_modules/module-mob/commands/getUrl.js +0 -28
  62. package/build/ox_modules/module-mob/commands/getValue.js +0 -50
  63. package/build/ox_modules/module-mob/commands/getWindowHandles.js +0 -27
  64. package/build/ox_modules/module-mob/commands/hideKeyboard.js +0 -33
  65. package/build/ox_modules/module-mob/commands/index.js +0 -594
  66. package/build/ox_modules/module-mob/commands/installApp.js +0 -28
  67. package/build/ox_modules/module-mob/commands/isAppInstalled.js +0 -28
  68. package/build/ox_modules/module-mob/commands/isCheckable.js +0 -31
  69. package/build/ox_modules/module-mob/commands/isChecked.js +0 -31
  70. package/build/ox_modules/module-mob/commands/isClickable.js +0 -31
  71. package/build/ox_modules/module-mob/commands/isExist.js +0 -36
  72. package/build/ox_modules/module-mob/commands/isSelected.js +0 -36
  73. package/build/ox_modules/module-mob/commands/isVisible.js +0 -36
  74. package/build/ox_modules/module-mob/commands/isWebViewContext.js +0 -27
  75. package/build/ox_modules/module-mob/commands/launchApp.js +0 -26
  76. package/build/ox_modules/module-mob/commands/longPressKeyCode.js +0 -30
  77. package/build/ox_modules/module-mob/commands/open.js +0 -43
  78. package/build/ox_modules/module-mob/commands/pause.js +0 -27
  79. package/build/ox_modules/module-mob/commands/removeApp.js +0 -28
  80. package/build/ox_modules/module-mob/commands/resetApp.js +0 -26
  81. package/build/ox_modules/module-mob/commands/scrollIntoElement.js +0 -86
  82. package/build/ox_modules/module-mob/commands/scrollIntoView.js +0 -40
  83. package/build/ox_modules/module-mob/commands/select.js +0 -54
  84. package/build/ox_modules/module-mob/commands/selectFrame.js +0 -53
  85. package/build/ox_modules/module-mob/commands/selectWindow.js +0 -149
  86. package/build/ox_modules/module-mob/commands/sendKeys.js +0 -84
  87. package/build/ox_modules/module-mob/commands/setContext.js +0 -28
  88. package/build/ox_modules/module-mob/commands/setNativeContext.js +0 -26
  89. package/build/ox_modules/module-mob/commands/setTimeout.js +0 -33
  90. package/build/ox_modules/module-mob/commands/setWebViewContext.js +0 -39
  91. package/build/ox_modules/module-mob/commands/shake.js +0 -27
  92. package/build/ox_modules/module-mob/commands/smsClickLink.js +0 -32
  93. package/build/ox_modules/module-mob/commands/smsGetText.js +0 -45
  94. package/build/ox_modules/module-mob/commands/swipe.js +0 -58
  95. package/build/ox_modules/module-mob/commands/swipeElement.js +0 -58
  96. package/build/ox_modules/module-mob/commands/swipeScreen.js +0 -56
  97. package/build/ox_modules/module-mob/commands/takeScreenshot.js +0 -27
  98. package/build/ox_modules/module-mob/commands/tap.js +0 -34
  99. package/build/ox_modules/module-mob/commands/type.js +0 -67
  100. package/build/ox_modules/module-mob/commands/unlockPattern.js +0 -92
  101. package/build/ox_modules/module-mob/commands/waitForExist.js +0 -29
  102. package/build/ox_modules/module-mob/commands/waitForInteractable.js +0 -42
  103. package/build/ox_modules/module-mob/commands/waitForVisible.js +0 -28
  104. package/build/ox_modules/module-mob.js +0 -699
  105. package/build/ox_modules/module-pdf.js +0 -328
  106. package/build/ox_modules/module-proxy.js +0 -324
  107. package/build/ox_modules/module-serial.js +0 -187
  108. package/build/ox_modules/module-soap.js +0 -260
  109. package/build/ox_modules/module-twilio.js +0 -192
  110. package/build/ox_modules/module-web/commands/alertAccept.js +0 -35
  111. package/build/ox_modules/module-web/commands/alertDismiss.js +0 -35
  112. package/build/ox_modules/module-web/commands/assertAlert.js +0 -55
  113. package/build/ox_modules/module-web/commands/assertExist.js +0 -28
  114. package/build/ox_modules/module-web/commands/assertSelectedLabel.js +0 -51
  115. package/build/ox_modules/module-web/commands/assertSelectedValue.js +0 -45
  116. package/build/ox_modules/module-web/commands/assertText.js +0 -45
  117. package/build/ox_modules/module-web/commands/assertTextNotPresent.js +0 -56
  118. package/build/ox_modules/module-web/commands/assertTextPresent.js +0 -52
  119. package/build/ox_modules/module-web/commands/assertTitle.js +0 -42
  120. package/build/ox_modules/module-web/commands/assertValue.js +0 -44
  121. package/build/ox_modules/module-web/commands/back.js +0 -27
  122. package/build/ox_modules/module-web/commands/clear.js +0 -41
  123. package/build/ox_modules/module-web/commands/click.js +0 -112
  124. package/build/ox_modules/module-web/commands/clickHidden.js +0 -79
  125. package/build/ox_modules/module-web/commands/closeWindow.js +0 -25
  126. package/build/ox_modules/module-web/commands/debug.js +0 -25
  127. package/build/ox_modules/module-web/commands/deleteCookies.js +0 -22
  128. package/build/ox_modules/module-web/commands/deselect.js +0 -34
  129. package/build/ox_modules/module-web/commands/doubleClick.js +0 -65
  130. package/build/ox_modules/module-web/commands/dragAndDrop.js +0 -36
  131. package/build/ox_modules/module-web/commands/execute.js +0 -36
  132. package/build/ox_modules/module-web/commands/fileBrowse.js +0 -72
  133. package/build/ox_modules/module-web/commands/findElement.js +0 -35
  134. package/build/ox_modules/module-web/commands/findElements.js +0 -38
  135. package/build/ox_modules/module-web/commands/fullscreenWindow.js +0 -24
  136. package/build/ox_modules/module-web/commands/getAlertText.js +0 -30
  137. package/build/ox_modules/module-web/commands/getAttribute.js +0 -38
  138. package/build/ox_modules/module-web/commands/getBrowserLogs.js +0 -34
  139. package/build/ox_modules/module-web/commands/getCookies.js +0 -23
  140. package/build/ox_modules/module-web/commands/getCssValue.js +0 -38
  141. package/build/ox_modules/module-web/commands/getElementCount.js +0 -29
  142. package/build/ox_modules/module-web/commands/getHTML.js +0 -30
  143. package/build/ox_modules/module-web/commands/getSource.js +0 -26
  144. package/build/ox_modules/module-web/commands/getText.js +0 -36
  145. package/build/ox_modules/module-web/commands/getTitle.js +0 -22
  146. package/build/ox_modules/module-web/commands/getUrl.js +0 -26
  147. package/build/ox_modules/module-web/commands/getValue.js +0 -43
  148. package/build/ox_modules/module-web/commands/getWindowHandles.js +0 -26
  149. package/build/ox_modules/module-web/commands/getWindowSize.js +0 -26
  150. package/build/ox_modules/module-web/commands/getXMLPageSource.js +0 -51
  151. package/build/ox_modules/module-web/commands/index.js +0 -634
  152. package/build/ox_modules/module-web/commands/isAlertPresent.js +0 -31
  153. package/build/ox_modules/module-web/commands/isChecked.js +0 -30
  154. package/build/ox_modules/module-web/commands/isExist.js +0 -36
  155. package/build/ox_modules/module-web/commands/isSelected.js +0 -35
  156. package/build/ox_modules/module-web/commands/isVisible.js +0 -36
  157. package/build/ox_modules/module-web/commands/makeVisible.js +0 -74
  158. package/build/ox_modules/module-web/commands/maximizeWindow.js +0 -24
  159. package/build/ox_modules/module-web/commands/minimizeWindow.js +0 -24
  160. package/build/ox_modules/module-web/commands/newWindow.js +0 -27
  161. package/build/ox_modules/module-web/commands/open.js +0 -42
  162. package/build/ox_modules/module-web/commands/pause.js +0 -26
  163. package/build/ox_modules/module-web/commands/point.js +0 -37
  164. package/build/ox_modules/module-web/commands/pointJS.js +0 -56
  165. package/build/ox_modules/module-web/commands/refresh.js +0 -26
  166. package/build/ox_modules/module-web/commands/rightClick.js +0 -61
  167. package/build/ox_modules/module-web/commands/rightClickActions.js +0 -57
  168. package/build/ox_modules/module-web/commands/scrollToElement.js +0 -33
  169. package/build/ox_modules/module-web/commands/select.js +0 -55
  170. package/build/ox_modules/module-web/commands/selectFrame.js +0 -52
  171. package/build/ox_modules/module-web/commands/selectWindow.js +0 -148
  172. package/build/ox_modules/module-web/commands/sendKeys.js +0 -56
  173. package/build/ox_modules/module-web/commands/setAutoWaitForAngular.js +0 -33
  174. package/build/ox_modules/module-web/commands/setTimeout.js +0 -33
  175. package/build/ox_modules/module-web/commands/setWindowSize.js +0 -29
  176. package/build/ox_modules/module-web/commands/takeScreenshot.js +0 -37
  177. package/build/ox_modules/module-web/commands/type.js +0 -52
  178. package/build/ox_modules/module-web/commands/waitForAngular.js +0 -83
  179. package/build/ox_modules/module-web/commands/waitForExist.js +0 -28
  180. package/build/ox_modules/module-web/commands/waitForInteractable.js +0 -31
  181. package/build/ox_modules/module-web/commands/waitForNotExist.js +0 -57
  182. package/build/ox_modules/module-web/commands/waitForNotText.js +0 -45
  183. package/build/ox_modules/module-web/commands/waitForNotValue.js +0 -45
  184. package/build/ox_modules/module-web/commands/waitForText.js +0 -45
  185. package/build/ox_modules/module-web/commands/waitForValue.js +0 -45
  186. package/build/ox_modules/module-web/commands/waitForVisible.js +0 -28
  187. package/build/ox_modules/module-web/commands/waitForWindow.js +0 -118
  188. package/build/ox_modules/module-web.js +0 -909
  189. package/build/ox_modules/module-win/commands/assertText.js +0 -41
  190. package/build/ox_modules/module-win/commands/assertTitle.js +0 -38
  191. package/build/ox_modules/module-win/commands/assertValue.js +0 -62
  192. package/build/ox_modules/module-win/commands/back.js +0 -21
  193. package/build/ox_modules/module-win/commands/clear.js +0 -34
  194. package/build/ox_modules/module-win/commands/click.js +0 -25
  195. package/build/ox_modules/module-win/commands/clickLong.js +0 -30
  196. package/build/ox_modules/module-win/commands/clickMultipleTimes.js +0 -33
  197. package/build/ox_modules/module-win/commands/findElement.js +0 -31
  198. package/build/ox_modules/module-win/commands/findElements.js +0 -31
  199. package/build/ox_modules/module-win/commands/getAppiumLogs.js +0 -22
  200. package/build/ox_modules/module-win/commands/getCurrentWindowHandle.js +0 -25
  201. package/build/ox_modules/module-win/commands/getLocation.js +0 -26
  202. package/build/ox_modules/module-win/commands/getSource.js +0 -22
  203. package/build/ox_modules/module-win/commands/getText.js +0 -32
  204. package/build/ox_modules/module-win/commands/getValue.js +0 -46
  205. package/build/ox_modules/module-win/commands/getWindowHandles.js +0 -25
  206. package/build/ox_modules/module-win/commands/index.js +0 -298
  207. package/build/ox_modules/module-win/commands/isCheckable.js +0 -26
  208. package/build/ox_modules/module-win/commands/isChecked.js +0 -26
  209. package/build/ox_modules/module-win/commands/isClickable.js +0 -26
  210. package/build/ox_modules/module-win/commands/isExist.js +0 -32
  211. package/build/ox_modules/module-win/commands/isSelected.js +0 -26
  212. package/build/ox_modules/module-win/commands/isVisible.js +0 -32
  213. package/build/ox_modules/module-win/commands/open.js +0 -24
  214. package/build/ox_modules/module-win/commands/pause.js +0 -23
  215. package/build/ox_modules/module-win/commands/rightClick.js +0 -30
  216. package/build/ox_modules/module-win/commands/selectWindow.js +0 -97
  217. package/build/ox_modules/module-win/commands/sendKeys.js +0 -50
  218. package/build/ox_modules/module-win/commands/setTimeout.js +0 -29
  219. package/build/ox_modules/module-win/commands/takeScreenshot.js +0 -26
  220. package/build/ox_modules/module-win/commands/tap.js +0 -29
  221. package/build/ox_modules/module-win/commands/type.js +0 -38
  222. package/build/ox_modules/module-win/commands/waitForExist.js +0 -25
  223. package/build/ox_modules/module-win/commands/waitForInteractable.js +0 -43
  224. package/build/ox_modules/module-win/commands/waitForVisible.js +0 -24
  225. package/build/ox_modules/module-win.js +0 -367
  226. package/build/ox_services/service-devtools/submodule-network.js +0 -338
  227. package/build/ox_services/service-devtools.js +0 -83
  228. package/build/runners/cucumber/CucumberEventListener.js +0 -181
  229. package/build/runners/cucumber/CucumberReporter.js +0 -277
  230. package/build/runners/cucumber/CucumberWorker.js +0 -337
  231. package/build/runners/cucumber/index.js +0 -159
  232. package/build/runners/cucumber/worker.js +0 -184
@@ -1,45 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Gets SMS text on Android phone.
16
- * @description `SMSPopup` application must be installed and running on the device to use this command.
17
- * https://github.com/oxygenhq/android-smspopup/releases
18
- * @function smsGetText
19
- * @param {Number=} timeout - Time in milliseconds to wait for sms popup. Default is 60 seconds.
20
- * @return {String} - SMS text.
21
- * @for android
22
- * @example <caption>[javascript] Usage example</caption>
23
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
24
- * mob.click("id=sendSmS");// Clicks an element.
25
- * var a = mob.smsGetText(60000);//Gets SMS text on Android phone.
26
- */
27
- module.exports = async function (timeout) {
28
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
29
- await this.helpers.assertContext(this.helpers.contextList.android);
30
- var locSms = 'id=android:id/message';
31
- var locSmsClose = 'id=android:id/button2';
32
- await this.waitForExist(locSms, timeout);
33
- var sms = await this.findElement(locSms);
34
- var text = null;
35
-
36
- if (sms) {
37
- text = sms.getText();
38
- } // timeout doesn't really matter here since if popup is open close button will always exist
39
-
40
-
41
- await this.waitForExist(locSmsClose);
42
- await this.click(locSmsClose);
43
- return text;
44
- };
45
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc21zR2V0VGV4dC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJhc3NlcnRDb250ZXh0IiwiY29udGV4dExpc3QiLCJhbmRyb2lkIiwibG9jU21zIiwibG9jU21zQ2xvc2UiLCJ3YWl0Rm9yRXhpc3QiLCJzbXMiLCJmaW5kRWxlbWVudCIsInRleHQiLCJnZXRUZXh0IiwiY2xpY2siXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QjtBQUNyQyxPQUFLQyxPQUFMLENBQWFDLHFCQUFiLENBQW1DRixPQUFuQyxFQUE0QyxTQUE1QztBQUNBLFFBQU0sS0FBS0MsT0FBTCxDQUFhRSxhQUFiLENBQTJCLEtBQUtGLE9BQUwsQ0FBYUcsV0FBYixDQUF5QkMsT0FBcEQsQ0FBTjtBQUVBLE1BQUlDLE1BQU0sR0FBRyx1QkFBYjtBQUNBLE1BQUlDLFdBQVcsR0FBRyx1QkFBbEI7QUFFQSxRQUFNLEtBQUtDLFlBQUwsQ0FBa0JGLE1BQWxCLEVBQTBCTixPQUExQixDQUFOO0FBRUEsTUFBSVMsR0FBRyxHQUFHLE1BQU0sS0FBS0MsV0FBTCxDQUFpQkosTUFBakIsQ0FBaEI7QUFFQSxNQUFJSyxJQUFJLEdBQUcsSUFBWDs7QUFDQSxNQUFJRixHQUFKLEVBQVM7QUFDTEUsSUFBQUEsSUFBSSxHQUFHRixHQUFHLENBQUNHLE9BQUosRUFBUDtBQUNILEdBZG9DLENBZXJDOzs7QUFDQSxRQUFNLEtBQUtKLFlBQUwsQ0FBa0JELFdBQWxCLENBQU47QUFDQSxRQUFNLEtBQUtNLEtBQUwsQ0FBV04sV0FBWCxDQUFOO0FBQ0EsU0FBT0ksSUFBUDtBQUNILENBbkJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgR2V0cyBTTVMgdGV4dCBvbiBBbmRyb2lkIHBob25lLlxyXG4gKiBAZGVzY3JpcHRpb24gYFNNU1BvcHVwYCBhcHBsaWNhdGlvbiBtdXN0IGJlIGluc3RhbGxlZCBhbmQgcnVubmluZyBvbiB0aGUgZGV2aWNlIHRvIHVzZSB0aGlzIGNvbW1hbmQuXHJcbiAqICAgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vb3h5Z2VuaHEvYW5kcm9pZC1zbXNwb3B1cC9yZWxlYXNlc1xyXG4gKiBAZnVuY3Rpb24gc21zR2V0VGV4dFxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lIGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciBzbXMgcG9wdXAuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQHJldHVybiB7U3RyaW5nfSAtIFNNUyB0ZXh0LlxyXG4gKiBAZm9yIGFuZHJvaWRcclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIG1vYi5pbml0KGNhcHMpOy8vU3RhcnRzIGEgbW9iaWxlIHNlc3Npb24gYW5kIG9wZW5zIGFwcCBmcm9tIGRlc2lyZWQgY2FwYWJpbGl0aWVzXHJcbiAqIG1vYi5jbGljayhcImlkPXNlbmRTbVNcIik7Ly8gQ2xpY2tzIGFuIGVsZW1lbnQuXHJcbiAqIHZhciBhID0gbW9iLnNtc0dldFRleHQoNjAwMDApOy8vR2V0cyBTTVMgdGV4dCBvbiBBbmRyb2lkIHBob25lLlxyXG4qL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKHRpbWVvdXQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5hc3NlcnRDb250ZXh0KHRoaXMuaGVscGVycy5jb250ZXh0TGlzdC5hbmRyb2lkKTtcclxuXHJcbiAgICB2YXIgbG9jU21zID0gJ2lkPWFuZHJvaWQ6aWQvbWVzc2FnZSc7XHJcbiAgICB2YXIgbG9jU21zQ2xvc2UgPSAnaWQ9YW5kcm9pZDppZC9idXR0b24yJztcclxuXHJcbiAgICBhd2FpdCB0aGlzLndhaXRGb3JFeGlzdChsb2NTbXMsIHRpbWVvdXQpO1xyXG5cclxuICAgIHZhciBzbXMgPSBhd2FpdCB0aGlzLmZpbmRFbGVtZW50KGxvY1Ntcyk7XHJcblxyXG4gICAgdmFyIHRleHQgPSBudWxsO1xyXG4gICAgaWYgKHNtcykge1xyXG4gICAgICAgIHRleHQgPSBzbXMuZ2V0VGV4dCgpO1xyXG4gICAgfVxyXG4gICAgLy8gdGltZW91dCBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgaGVyZSBzaW5jZSBpZiBwb3B1cCBpcyBvcGVuIGNsb3NlIGJ1dHRvbiB3aWxsIGFsd2F5cyBleGlzdFxyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yRXhpc3QobG9jU21zQ2xvc2UpO1xyXG4gICAgYXdhaXQgdGhpcy5jbGljayhsb2NTbXNDbG9zZSk7XHJcbiAgICByZXR1cm4gdGV4dDtcclxufTtcclxuIl19
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Perform a swipe on an element.
16
- * @function swipe
17
- * @param {String|Element} locator - Locator of the element to swipe on.
18
- * @param {Number=} xoffset - Horizontal offset (positive - scroll right, negative - scroll left). Default is 0.
19
- * @param {Number=} yoffset - Vertical offset (positive - scroll down, negative - scroll up). Default is 30.
20
- * @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
21
- * @param {Number=} duration - Duration of swipe. Default is 3000 (3sec)
22
- * @for android, ios
23
- * @example <caption>[javascript] Usage example</caption>
24
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
25
- * mob.swipe("id=Element",-60,0,150);//Perform a swipe on the screen or an element.
26
- */
27
- module.exports = async function (locator, xoffset = 0, yoffset = 30, timeout, duration = 3000) {
28
- this.helpers.assertArgument(locator, 'locator');
29
- this.helpers.assertArgumentNumber(xoffset, 'xoffset');
30
- this.helpers.assertArgumentNumber(yoffset, 'yoffset');
31
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
32
- this.helpers.assertArgumentNumber(duration, 'duration');
33
- await this.helpers.assertContext(this.helpers.contextList.android, this.helpers.contextList.ios);
34
- var el = await this.helpers.getElement(locator, false, timeout);
35
- const location = await el.getLocation();
36
- return await this.driver.touchPerform([{
37
- action: 'press',
38
- options: {
39
- x: location.x,
40
- y: location.y
41
- }
42
- }, {
43
- action: 'wait',
44
- options: {
45
- ms: duration
46
- }
47
- }, {
48
- action: 'moveTo',
49
- options: {
50
- x: xoffset,
51
- y: yoffset
52
- }
53
- }, {
54
- action: 'release',
55
- options: {}
56
- }]);
57
- };
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc3dpcGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImxvY2F0b3IiLCJ4b2Zmc2V0IiwieW9mZnNldCIsInRpbWVvdXQiLCJkdXJhdGlvbiIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImFzc2VydEFyZ3VtZW50TnVtYmVyIiwiYXNzZXJ0QXJndW1lbnRUaW1lb3V0IiwiYXNzZXJ0Q29udGV4dCIsImNvbnRleHRMaXN0IiwiYW5kcm9pZCIsImlvcyIsImVsIiwiZ2V0RWxlbWVudCIsImxvY2F0aW9uIiwiZ2V0TG9jYXRpb24iLCJkcml2ZXIiLCJ0b3VjaFBlcmZvcm0iLCJhY3Rpb24iLCJvcHRpb25zIiwieCIsInkiLCJtcyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLGdCQUFlQyxPQUFmLEVBQXdCQyxPQUFPLEdBQUcsQ0FBbEMsRUFBcUNDLE9BQU8sR0FBRyxFQUEvQyxFQUFtREMsT0FBbkQsRUFBNERDLFFBQVEsR0FBRyxJQUF2RSxFQUE2RTtBQUMxRixPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJOLE9BQTVCLEVBQXFDLFNBQXJDO0FBQ0EsT0FBS0ssT0FBTCxDQUFhRSxvQkFBYixDQUFrQ04sT0FBbEMsRUFBMkMsU0FBM0M7QUFDQSxPQUFLSSxPQUFMLENBQWFFLG9CQUFiLENBQWtDTCxPQUFsQyxFQUEyQyxTQUEzQztBQUNBLE9BQUtHLE9BQUwsQ0FBYUcscUJBQWIsQ0FBbUNMLE9BQW5DLEVBQTRDLFNBQTVDO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxvQkFBYixDQUFrQ0gsUUFBbEMsRUFBNEMsVUFBNUM7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUksYUFBYixDQUEyQixLQUFLSixPQUFMLENBQWFLLFdBQWIsQ0FBeUJDLE9BQXBELEVBQTZELEtBQUtOLE9BQUwsQ0FBYUssV0FBYixDQUF5QkUsR0FBdEYsQ0FBTjtBQUVBLE1BQUlDLEVBQUUsR0FBRyxNQUFNLEtBQUtSLE9BQUwsQ0FBYVMsVUFBYixDQUF3QmQsT0FBeEIsRUFBaUMsS0FBakMsRUFBd0NHLE9BQXhDLENBQWY7QUFFQSxRQUFNWSxRQUFRLEdBQUcsTUFBTUYsRUFBRSxDQUFDRyxXQUFILEVBQXZCO0FBRUEsU0FBTyxNQUFNLEtBQUtDLE1BQUwsQ0FBWUMsWUFBWixDQUF5QixDQUNsQztBQUNJQyxJQUFBQSxNQUFNLEVBQUUsT0FEWjtBQUVJQyxJQUFBQSxPQUFPLEVBQUU7QUFDTEMsTUFBQUEsQ0FBQyxFQUFFTixRQUFRLENBQUNNLENBRFA7QUFFTEMsTUFBQUEsQ0FBQyxFQUFFUCxRQUFRLENBQUNPO0FBRlA7QUFGYixHQURrQyxFQVFsQztBQUNJSCxJQUFBQSxNQUFNLEVBQUUsTUFEWjtBQUVJQyxJQUFBQSxPQUFPLEVBQUU7QUFDTEcsTUFBQUEsRUFBRSxFQUFFbkI7QUFEQztBQUZiLEdBUmtDLEVBY2xDO0FBQ0llLElBQUFBLE1BQU0sRUFBRSxRQURaO0FBRUlDLElBQUFBLE9BQU8sRUFBRTtBQUNMQyxNQUFBQSxDQUFDLEVBQUVwQixPQURFO0FBRUxxQixNQUFBQSxDQUFDLEVBQUVwQjtBQUZFO0FBRmIsR0Fka0MsRUFxQmxDO0FBQ0lpQixJQUFBQSxNQUFNLEVBQUUsU0FEWjtBQUVJQyxJQUFBQSxPQUFPLEVBQUU7QUFGYixHQXJCa0MsQ0FBekIsQ0FBYjtBQTBCSCxDQXRDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFBlcmZvcm0gYSBzd2lwZSBvbiBhbiBlbGVtZW50LlxyXG4gKiBAZnVuY3Rpb24gc3dpcGVcclxuICogQHBhcmFtIHtTdHJpbmd8RWxlbWVudH0gbG9jYXRvciAtIExvY2F0b3Igb2YgdGhlIGVsZW1lbnQgdG8gc3dpcGUgb24uXHJcbiAqIEBwYXJhbSB7TnVtYmVyPX0geG9mZnNldCAtIEhvcml6b250YWwgb2Zmc2V0IChwb3NpdGl2ZSAtIHNjcm9sbCByaWdodCwgbmVnYXRpdmUgLSBzY3JvbGwgbGVmdCkuIERlZmF1bHQgaXMgMC5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB5b2Zmc2V0IC0gVmVydGljYWwgb2Zmc2V0IChwb3NpdGl2ZSAtIHNjcm9sbCBkb3duLCBuZWdhdGl2ZSAtIHNjcm9sbCB1cCkuIERlZmF1bHQgaXMgMzAuXHJcbiAqIEBwYXJhbSB7TnVtYmVyPX0gdGltZW91dCAtIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0IGlzIDYwIHNlY29uZHMuXHJcbiAqIEBwYXJhbSB7TnVtYmVyPX0gZHVyYXRpb24gLSBEdXJhdGlvbiBvZiBzd2lwZS4gRGVmYXVsdCBpcyAzMDAwICgzc2VjKVxyXG4gKiBAZm9yIGFuZHJvaWQsIGlvc1xyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogbW9iLmluaXQoY2Fwcyk7Ly9TdGFydHMgYSBtb2JpbGUgc2Vzc2lvbiBhbmQgb3BlbnMgYXBwIGZyb20gZGVzaXJlZCBjYXBhYmlsaXRpZXNcclxuICogbW9iLnN3aXBlKFwiaWQ9RWxlbWVudFwiLC02MCwwLDE1MCk7Ly9QZXJmb3JtIGEgc3dpcGUgb24gdGhlIHNjcmVlbiBvciBhbiBlbGVtZW50LlxyXG4qL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKGxvY2F0b3IsIHhvZmZzZXQgPSAwLCB5b2Zmc2V0ID0gMzAsIHRpbWVvdXQsIGR1cmF0aW9uID0gMzAwMCkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50KGxvY2F0b3IsICdsb2NhdG9yJyk7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnROdW1iZXIoeG9mZnNldCwgJ3hvZmZzZXQnKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE51bWJlcih5b2Zmc2V0LCAneW9mZnNldCcpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50VGltZW91dCh0aW1lb3V0LCAndGltZW91dCcpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyKGR1cmF0aW9uLCAnZHVyYXRpb24nKTtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5hc3NlcnRDb250ZXh0KHRoaXMuaGVscGVycy5jb250ZXh0TGlzdC5hbmRyb2lkLCB0aGlzLmhlbHBlcnMuY29udGV4dExpc3QuaW9zKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgY29uc3QgbG9jYXRpb24gPSBhd2FpdCBlbC5nZXRMb2NhdGlvbigpO1xyXG5cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRyaXZlci50b3VjaFBlcmZvcm0oW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAncHJlc3MnLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICB4OiBsb2NhdGlvbi54LFxyXG4gICAgICAgICAgICAgICAgeTogbG9jYXRpb24ueSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAnd2FpdCcsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIG1zOiBkdXJhdGlvbixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAnbW92ZVRvJyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgeDogeG9mZnNldCxcclxuICAgICAgICAgICAgICAgIHk6IHlvZmZzZXQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFjdGlvbjogJ3JlbGVhc2UnLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7fSxcclxuICAgICAgICB9LFxyXG4gICAgXSk7XHJcbn07XHJcbiJdfQ==
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-2018 CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Perform swipe on the element.
16
- * @function swipeElement
17
- * @param {String} locator - Locator of the element to swipe on.
18
- * @param {Number=} xoffset - Horizontal offset (positive - scroll right, negative - scroll left). Default is 0.
19
- * @param {Number=} yoffset - Vertical offset (positive - scroll down, negative - scroll up). Default is 30.
20
- * @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
21
- * @param {Number=} duration - Duration of swipe. Default is 3000 (3sec)
22
- * @for android, ios
23
- * @example <caption>[javascript] Usage example</caption>
24
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
25
- * mob.swipeElement("id=Element",-60,0,150);//Perform a swipe on the screen or an element.
26
- */
27
- module.exports = async function (locator, xoffset = 0, yoffset = 30, timeout, duration = 3000) {
28
- this.helpers.assertArgument(locator, 'locator');
29
- this.helpers.assertArgumentNumber(xoffset, 'xoffset');
30
- this.helpers.assertArgumentNumber(yoffset, 'yoffset');
31
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
32
- this.helpers.assertArgumentNumber(duration, 'duration');
33
- await this.helpers.assertContext(this.helpers.contextList.android, this.helpers.contextList.ios);
34
- var el = await this.helpers.getElement(locator, false, timeout);
35
- const location = await el.getLocation();
36
- return await this.driver.touchPerform([{
37
- action: 'press',
38
- options: {
39
- x: location.x,
40
- y: location.y
41
- }
42
- }, {
43
- action: 'wait',
44
- options: {
45
- ms: duration
46
- }
47
- }, {
48
- action: 'moveTo',
49
- options: {
50
- x: xoffset,
51
- y: yoffset
52
- }
53
- }, {
54
- action: 'release',
55
- options: {}
56
- }]);
57
- };
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc3dpcGVFbGVtZW50LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJsb2NhdG9yIiwieG9mZnNldCIsInlvZmZzZXQiLCJ0aW1lb3V0IiwiZHVyYXRpb24iLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnQiLCJhc3NlcnRBcmd1bWVudE51bWJlciIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImFzc2VydENvbnRleHQiLCJjb250ZXh0TGlzdCIsImFuZHJvaWQiLCJpb3MiLCJlbCIsImdldEVsZW1lbnQiLCJsb2NhdGlvbiIsImdldExvY2F0aW9uIiwiZHJpdmVyIiwidG91Y2hQZXJmb3JtIiwiYWN0aW9uIiwib3B0aW9ucyIsIngiLCJ5IiwibXMiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBTyxHQUFHLENBQWxDLEVBQXFDQyxPQUFPLEdBQUcsRUFBL0MsRUFBbURDLE9BQW5ELEVBQTREQyxRQUFRLEdBQUcsSUFBdkUsRUFBNkU7QUFDMUYsT0FBS0MsT0FBTCxDQUFhQyxjQUFiLENBQTRCTixPQUE1QixFQUFxQyxTQUFyQztBQUNBLE9BQUtLLE9BQUwsQ0FBYUUsb0JBQWIsQ0FBa0NOLE9BQWxDLEVBQTJDLFNBQTNDO0FBQ0EsT0FBS0ksT0FBTCxDQUFhRSxvQkFBYixDQUFrQ0wsT0FBbEMsRUFBMkMsU0FBM0M7QUFDQSxPQUFLRyxPQUFMLENBQWFHLHFCQUFiLENBQW1DTCxPQUFuQyxFQUE0QyxTQUE1QztBQUNBLE9BQUtFLE9BQUwsQ0FBYUUsb0JBQWIsQ0FBa0NILFFBQWxDLEVBQTRDLFVBQTVDO0FBQ0EsUUFBTSxLQUFLQyxPQUFMLENBQWFJLGFBQWIsQ0FBMkIsS0FBS0osT0FBTCxDQUFhSyxXQUFiLENBQXlCQyxPQUFwRCxFQUE2RCxLQUFLTixPQUFMLENBQWFLLFdBQWIsQ0FBeUJFLEdBQXRGLENBQU47QUFFQSxNQUFJQyxFQUFFLEdBQUcsTUFBTSxLQUFLUixPQUFMLENBQWFTLFVBQWIsQ0FBd0JkLE9BQXhCLEVBQWlDLEtBQWpDLEVBQXdDRyxPQUF4QyxDQUFmO0FBRUEsUUFBTVksUUFBUSxHQUFHLE1BQU1GLEVBQUUsQ0FBQ0csV0FBSCxFQUF2QjtBQUVBLFNBQU8sTUFBTSxLQUFLQyxNQUFMLENBQVlDLFlBQVosQ0FBeUIsQ0FDbEM7QUFDSUMsSUFBQUEsTUFBTSxFQUFFLE9BRFo7QUFFSUMsSUFBQUEsT0FBTyxFQUFFO0FBQ0xDLE1BQUFBLENBQUMsRUFBRU4sUUFBUSxDQUFDTSxDQURQO0FBRUxDLE1BQUFBLENBQUMsRUFBRVAsUUFBUSxDQUFDTztBQUZQO0FBRmIsR0FEa0MsRUFRbEM7QUFDSUgsSUFBQUEsTUFBTSxFQUFFLE1BRFo7QUFFSUMsSUFBQUEsT0FBTyxFQUFFO0FBQ0xHLE1BQUFBLEVBQUUsRUFBRW5CO0FBREM7QUFGYixHQVJrQyxFQWNsQztBQUNJZSxJQUFBQSxNQUFNLEVBQUUsUUFEWjtBQUVJQyxJQUFBQSxPQUFPLEVBQUU7QUFDTEMsTUFBQUEsQ0FBQyxFQUFFcEIsT0FERTtBQUVMcUIsTUFBQUEsQ0FBQyxFQUFFcEI7QUFGRTtBQUZiLEdBZGtDLEVBcUJsQztBQUNJaUIsSUFBQUEsTUFBTSxFQUFFLFNBRFo7QUFFSUMsSUFBQUEsT0FBTyxFQUFFO0FBRmIsR0FyQmtDLENBQXpCLENBQWI7QUEwQkgsQ0F0Q0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBQZXJmb3JtIHN3aXBlIG9uIHRoZSBlbGVtZW50LlxyXG4gKiBAZnVuY3Rpb24gc3dpcGVFbGVtZW50XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhdG9yIC0gTG9jYXRvciBvZiB0aGUgZWxlbWVudCB0byBzd2lwZSBvbi5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB4b2Zmc2V0IC0gSG9yaXpvbnRhbCBvZmZzZXQgKHBvc2l0aXZlIC0gc2Nyb2xsIHJpZ2h0LCBuZWdhdGl2ZSAtIHNjcm9sbCBsZWZ0KS4gRGVmYXVsdCBpcyAwLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHlvZmZzZXQgLSBWZXJ0aWNhbCBvZmZzZXQgKHBvc2l0aXZlIC0gc2Nyb2xsIGRvd24sIG5lZ2F0aXZlIC0gc2Nyb2xsIHVwKS4gRGVmYXVsdCBpcyAzMC5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQHBhcmFtIHtOdW1iZXI9fSBkdXJhdGlvbiAtIER1cmF0aW9uIG9mIHN3aXBlLiBEZWZhdWx0IGlzIDMwMDAgKDNzZWMpXHJcbiAqIEBmb3IgYW5kcm9pZCwgaW9zXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdChjYXBzKTsvL1N0YXJ0cyBhIG1vYmlsZSBzZXNzaW9uIGFuZCBvcGVucyBhcHAgZnJvbSBkZXNpcmVkIGNhcGFiaWxpdGllc1xyXG4gKiBtb2Iuc3dpcGVFbGVtZW50KFwiaWQ9RWxlbWVudFwiLC02MCwwLDE1MCk7Ly9QZXJmb3JtIGEgc3dpcGUgb24gdGhlIHNjcmVlbiBvciBhbiBlbGVtZW50LlxyXG4qL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKGxvY2F0b3IsIHhvZmZzZXQgPSAwLCB5b2Zmc2V0ID0gMzAsIHRpbWVvdXQsIGR1cmF0aW9uID0gMzAwMCkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50KGxvY2F0b3IsICdsb2NhdG9yJyk7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnROdW1iZXIoeG9mZnNldCwgJ3hvZmZzZXQnKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE51bWJlcih5b2Zmc2V0LCAneW9mZnNldCcpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50VGltZW91dCh0aW1lb3V0LCAndGltZW91dCcpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyKGR1cmF0aW9uLCAnZHVyYXRpb24nKTtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5hc3NlcnRDb250ZXh0KHRoaXMuaGVscGVycy5jb250ZXh0TGlzdC5hbmRyb2lkLCB0aGlzLmhlbHBlcnMuY29udGV4dExpc3QuaW9zKTtcclxuXHJcbiAgICB2YXIgZWwgPSBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcblxyXG4gICAgY29uc3QgbG9jYXRpb24gPSBhd2FpdCBlbC5nZXRMb2NhdGlvbigpO1xyXG5cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRyaXZlci50b3VjaFBlcmZvcm0oW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAncHJlc3MnLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICB4OiBsb2NhdGlvbi54LFxyXG4gICAgICAgICAgICAgICAgeTogbG9jYXRpb24ueSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAnd2FpdCcsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIG1zOiBkdXJhdGlvbixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAnbW92ZVRvJyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgeDogeG9mZnNldCxcclxuICAgICAgICAgICAgICAgIHk6IHlvZmZzZXQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFjdGlvbjogJ3JlbGVhc2UnLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7fSxcclxuICAgICAgICB9LFxyXG4gICAgXSk7XHJcbn07XHJcbiJdfQ==
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Perform a swipe on the screen.
16
- * @function swipeScreen
17
- * @param {Number=} x1 - Starting X position (top-left screen corner is the origin)
18
- * @param {Number=} y1 - Starting Y position.
19
- * @param {Number} x1 - Ending X position.
20
- * @param {Number} y1 - Ending Y position.
21
- * @param {Number=} duration - Duration of swipe. Default is 3000 (3sec)
22
- * @for android, ios
23
- * @example <caption>[javascript] Usage example</caption>
24
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
25
- * mob.swipeScreen(0, 0, 0, 900);//Perform a swipe on the screen
26
- */
27
- module.exports = async function (x1 = 0, y1 = 0, x2, y2, duration = 3000) {
28
- this.helpers.assertArgumentNumber(x1, 'x1');
29
- this.helpers.assertArgumentNumber(y1, 'y1');
30
- this.helpers.assertArgumentNumber(x2, 'x2');
31
- this.helpers.assertArgumentNumber(y2, 'y2');
32
- this.helpers.assertArgumentNumber(duration, 'duration');
33
- await this.helpers.assertContext(this.helpers.contextList.android, this.helpers.contextList.ios);
34
- await this.driver.touchPerform([{
35
- action: 'press',
36
- options: {
37
- x: x1,
38
- y: y1
39
- }
40
- }, {
41
- action: 'wait',
42
- options: {
43
- ms: duration
44
- }
45
- }, {
46
- action: 'moveTo',
47
- options: {
48
- x: x2,
49
- y: y2
50
- }
51
- }, {
52
- action: 'release',
53
- options: {}
54
- }]);
55
- };
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvc3dpcGVTY3JlZW4uanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIngxIiwieTEiLCJ4MiIsInkyIiwiZHVyYXRpb24iLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnROdW1iZXIiLCJhc3NlcnRDb250ZXh0IiwiY29udGV4dExpc3QiLCJhbmRyb2lkIiwiaW9zIiwiZHJpdmVyIiwidG91Y2hQZXJmb3JtIiwiYWN0aW9uIiwib3B0aW9ucyIsIngiLCJ5IiwibXMiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsRUFBRSxHQUFHLENBQXBCLEVBQXVCQyxFQUFFLEdBQUcsQ0FBNUIsRUFBK0JDLEVBQS9CLEVBQW1DQyxFQUFuQyxFQUF1Q0MsUUFBUSxHQUFHLElBQWxELEVBQXdEO0FBQ3JFLE9BQUtDLE9BQUwsQ0FBYUMsb0JBQWIsQ0FBa0NOLEVBQWxDLEVBQXNDLElBQXRDO0FBQ0EsT0FBS0ssT0FBTCxDQUFhQyxvQkFBYixDQUFrQ0wsRUFBbEMsRUFBc0MsSUFBdEM7QUFDQSxPQUFLSSxPQUFMLENBQWFDLG9CQUFiLENBQWtDSixFQUFsQyxFQUFzQyxJQUF0QztBQUNBLE9BQUtHLE9BQUwsQ0FBYUMsb0JBQWIsQ0FBa0NILEVBQWxDLEVBQXNDLElBQXRDO0FBQ0EsT0FBS0UsT0FBTCxDQUFhQyxvQkFBYixDQUFrQ0YsUUFBbEMsRUFBNEMsVUFBNUM7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUUsYUFBYixDQUEyQixLQUFLRixPQUFMLENBQWFHLFdBQWIsQ0FBeUJDLE9BQXBELEVBQTZELEtBQUtKLE9BQUwsQ0FBYUcsV0FBYixDQUF5QkUsR0FBdEYsQ0FBTjtBQUVBLFFBQU0sS0FBS0MsTUFBTCxDQUFZQyxZQUFaLENBQXlCLENBQzNCO0FBQ0lDLElBQUFBLE1BQU0sRUFBRSxPQURaO0FBRUlDLElBQUFBLE9BQU8sRUFBRTtBQUNMQyxNQUFBQSxDQUFDLEVBQUVmLEVBREU7QUFFTGdCLE1BQUFBLENBQUMsRUFBRWY7QUFGRTtBQUZiLEdBRDJCLEVBUTNCO0FBQ0lZLElBQUFBLE1BQU0sRUFBRSxNQURaO0FBRUlDLElBQUFBLE9BQU8sRUFBRTtBQUNMRyxNQUFBQSxFQUFFLEVBQUViO0FBREM7QUFGYixHQVIyQixFQWMzQjtBQUNJUyxJQUFBQSxNQUFNLEVBQUUsUUFEWjtBQUVJQyxJQUFBQSxPQUFPLEVBQUU7QUFDTEMsTUFBQUEsQ0FBQyxFQUFFYixFQURFO0FBRUxjLE1BQUFBLENBQUMsRUFBRWI7QUFGRTtBQUZiLEdBZDJCLEVBcUIzQjtBQUNJVSxJQUFBQSxNQUFNLEVBQUUsU0FEWjtBQUVJQyxJQUFBQSxPQUFPLEVBQUU7QUFGYixHQXJCMkIsQ0FBekIsQ0FBTjtBQTBCSCxDQWxDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFBlcmZvcm0gYSBzd2lwZSBvbiB0aGUgc2NyZWVuLlxyXG4gKiBAZnVuY3Rpb24gc3dpcGVTY3JlZW5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB4MSAtIFN0YXJ0aW5nIFggcG9zaXRpb24gKHRvcC1sZWZ0IHNjcmVlbiBjb3JuZXIgaXMgdGhlIG9yaWdpbilcclxuICogQHBhcmFtIHtOdW1iZXI9fSB5MSAtIFN0YXJ0aW5nIFkgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7TnVtYmVyfSB4MSAtIEVuZGluZyBYIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge051bWJlcn0geTEgLSBFbmRpbmcgWSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtOdW1iZXI9fSBkdXJhdGlvbiAtIER1cmF0aW9uIG9mIHN3aXBlLiBEZWZhdWx0IGlzIDMwMDAgKDNzZWMpXHJcbiAqIEBmb3IgYW5kcm9pZCwgaW9zXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdChjYXBzKTsvL1N0YXJ0cyBhIG1vYmlsZSBzZXNzaW9uIGFuZCBvcGVucyBhcHAgZnJvbSBkZXNpcmVkIGNhcGFiaWxpdGllc1xyXG4gKiBtb2Iuc3dpcGVTY3JlZW4oMCwgMCwgMCwgOTAwKTsvL1BlcmZvcm0gYSBzd2lwZSBvbiB0aGUgc2NyZWVuXHJcbiovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24oeDEgPSAwLCB5MSA9IDAsIHgyLCB5MiwgZHVyYXRpb24gPSAzMDAwKSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnROdW1iZXIoeDEsICd4MScpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyKHkxLCAneTEnKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE51bWJlcih4MiwgJ3gyJyk7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnROdW1iZXIoeTIsICd5MicpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyKGR1cmF0aW9uLCAnZHVyYXRpb24nKTtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5hc3NlcnRDb250ZXh0KHRoaXMuaGVscGVycy5jb250ZXh0TGlzdC5hbmRyb2lkLCB0aGlzLmhlbHBlcnMuY29udGV4dExpc3QuaW9zKTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmRyaXZlci50b3VjaFBlcmZvcm0oW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAncHJlc3MnLFxyXG4gICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICB4OiB4MSxcclxuICAgICAgICAgICAgICAgIHk6IHkxXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAnd2FpdCcsXHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIG1zOiBkdXJhdGlvbixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uOiAnbW92ZVRvJyxcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgeDogeDIsXHJcbiAgICAgICAgICAgICAgICB5OiB5MlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhY3Rpb246ICdyZWxlYXNlJyxcclxuICAgICAgICAgICAgb3B0aW9uczoge31cclxuICAgICAgICB9XHJcbiAgICBdKTtcclxufTtcclxuIl19
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @function takeScreenshot
16
- * @summary Take a screenshot of the current page or screen and return it as base64 encoded string.
17
- * @return {String} Screenshot image encoded as a base64 string.
18
- * @for android, ios, hybrid, web
19
- * @example <caption>[javascript] Usage example</caption>
20
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
21
- * var ss = mob.takeScreenshot();//Take a screenshot of the current page or screen and return it as base64 encoded string.
22
- * require("fs").writeFileSync("c:\\screenshot.png", ss, 'base64');
23
- */
24
- module.exports = async function () {
25
- return await this.driver.takeScreenshot();
26
- };
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvdGFrZVNjcmVlbnNob3QuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImRyaXZlciIsInRha2VTY3JlZW5zaG90Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsa0JBQWlCO0FBQzlCLFNBQU8sTUFBTSxLQUFLQyxNQUFMLENBQVlDLGNBQVosRUFBYjtBQUNILENBRkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAZnVuY3Rpb24gdGFrZVNjcmVlbnNob3RcclxuICogQHN1bW1hcnkgVGFrZSBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcGFnZSBvciBzY3JlZW4gYW5kIHJldHVybiBpdCBhcyBiYXNlNjQgZW5jb2RlZCBzdHJpbmcuXHJcbiAqIEByZXR1cm4ge1N0cmluZ30gU2NyZWVuc2hvdCBpbWFnZSBlbmNvZGVkIGFzIGEgYmFzZTY0IHN0cmluZy5cclxuICogQGZvciBhbmRyb2lkLCBpb3MsIGh5YnJpZCwgd2ViXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdChjYXBzKTsvL1N0YXJ0cyBhIG1vYmlsZSBzZXNzaW9uIGFuZCBvcGVucyBhcHAgZnJvbSBkZXNpcmVkIGNhcGFiaWxpdGllc1xyXG4gKiB2YXIgc3MgPSBtb2IudGFrZVNjcmVlbnNob3QoKTsvL1Rha2UgYSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IHBhZ2Ugb3Igc2NyZWVuIGFuZCByZXR1cm4gaXQgYXMgYmFzZTY0IGVuY29kZWQgc3RyaW5nLlxyXG4gKiByZXF1aXJlKFwiZnNcIikud3JpdGVGaWxlU3luYyhcImM6XFxcXHNjcmVlbnNob3QucG5nXCIsIHNzLCAnYmFzZTY0Jyk7XHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKCkge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZHJpdmVyLnRha2VTY3JlZW5zaG90KCk7XHJcbn07XHJcbiJdfQ==
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Perform tap at the specified coordinate.
16
- * @function tap
17
- * @param {Number} x - x offset.
18
- * @param {Number} y - y offset.
19
- * @for android, ios
20
- * @example <caption>[javascript] Usage example</caption>
21
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
22
- * mob.tap(60,300);//Perform tap at the specified coordinate.
23
- */
24
- module.exports = async function (x, y) {
25
- this.helpers.assertArgumentNumberNonNegative(x, 'x');
26
- this.helpers.assertArgumentNumberNonNegative(y, 'y');
27
- await this.helpers.assertContext(this.helpers.contextList.android, this.helpers.contextList.ios);
28
- await this.driver.touchAction({
29
- action: 'tap',
30
- x: x,
31
- y: y
32
- });
33
- };
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvdGFwLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJ4IiwieSIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlIiwiYXNzZXJ0Q29udGV4dCIsImNvbnRleHRMaXN0IiwiYW5kcm9pZCIsImlvcyIsImRyaXZlciIsInRvdWNoQWN0aW9uIiwiYWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLENBQWYsRUFBa0JDLENBQWxCLEVBQXFCO0FBQ2xDLE9BQUtDLE9BQUwsQ0FBYUMsK0JBQWIsQ0FBNkNILENBQTdDLEVBQWdELEdBQWhEO0FBQ0EsT0FBS0UsT0FBTCxDQUFhQywrQkFBYixDQUE2Q0YsQ0FBN0MsRUFBZ0QsR0FBaEQ7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUUsYUFBYixDQUEyQixLQUFLRixPQUFMLENBQWFHLFdBQWIsQ0FBeUJDLE9BQXBELEVBQTZELEtBQUtKLE9BQUwsQ0FBYUcsV0FBYixDQUF5QkUsR0FBdEYsQ0FBTjtBQUVBLFFBQU0sS0FBS0MsTUFBTCxDQUFZQyxXQUFaLENBQXdCO0FBQzFCQyxJQUFBQSxNQUFNLEVBQUUsS0FEa0I7QUFFMUJWLElBQUFBLENBQUMsRUFBRUEsQ0FGdUI7QUFHMUJDLElBQUFBLENBQUMsRUFBRUE7QUFIdUIsR0FBeEIsQ0FBTjtBQUtILENBVkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBQZXJmb3JtIHRhcCBhdCB0aGUgc3BlY2lmaWVkIGNvb3JkaW5hdGUuXHJcbiAqIEBmdW5jdGlvbiB0YXBcclxuICogQHBhcmFtIHtOdW1iZXJ9IHggLSB4IG9mZnNldC5cclxuICogQHBhcmFtIHtOdW1iZXJ9IHkgLSB5IG9mZnNldC5cclxuICogQGZvciBhbmRyb2lkLCBpb3NcclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIG1vYi5pbml0KGNhcHMpOy8vU3RhcnRzIGEgbW9iaWxlIHNlc3Npb24gYW5kIG9wZW5zIGFwcCBmcm9tIGRlc2lyZWQgY2FwYWJpbGl0aWVzXHJcbiAqIG1vYi50YXAoNjAsMzAwKTsvL1BlcmZvcm0gdGFwIGF0IHRoZSBzcGVjaWZpZWQgY29vcmRpbmF0ZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24oeCwgeSkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUoeCwgJ3gnKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlKHksICd5Jyk7XHJcbiAgICBhd2FpdCB0aGlzLmhlbHBlcnMuYXNzZXJ0Q29udGV4dCh0aGlzLmhlbHBlcnMuY29udGV4dExpc3QuYW5kcm9pZCwgdGhpcy5oZWxwZXJzLmNvbnRleHRMaXN0Lmlvcyk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5kcml2ZXIudG91Y2hBY3Rpb24oe1xyXG4gICAgICAgIGFjdGlvbjogJ3RhcCcsXHJcbiAgICAgICAgeDogeCxcclxuICAgICAgICB5OiB5XHJcbiAgICB9KTtcclxufTtcclxuIl19
@@ -1,67 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Send a sequence of key strokes to an element (clears value before).
16
- * @description Refer to [Key Codes](https://w3c.github.io/webdriver/#keyboard-actions)
17
- * for the list of supported raw keyboard key codes.
18
- * @function type
19
- * @param {String|Element} locator - An element locator.
20
- * @param {String} value - The value to type.
21
- * @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
22
- * @for android, ios, hybrid, web
23
- * @example <caption>[javascript] Usage example</caption>
24
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
25
- * mob.type('id=TextArea', 'hello world\uE007');
26
- */
27
- module.exports = async function (locator, value, timeout) {
28
- this.helpers.assertArgument(value, 'value');
29
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
30
- var el = await this.helpers.getElement(locator, true, timeout);
31
-
32
- try {
33
- if (this.driver && this.driver.capabilities && this.driver.capabilities.entityType && this.driver.capabilities.entityType === 'appium_driver') {
34
- let saveValue;
35
-
36
- if (value) {
37
- if (Array.isArray(value)) {
38
- saveValue = value;
39
- } else if (typeof value === 'string') {
40
- saveValue = [value.toString()];
41
- } else if (value.toString) {
42
- saveValue = [value.toString()];
43
- }
44
- } // native app
45
-
46
-
47
- await el.sendKeys(saveValue);
48
- } else {
49
- // remote_web_driver (mob browser)
50
- await el.setValue(value.toString());
51
- }
52
- } catch (e) {
53
- if (e && e.message && e.message.includes('java.lang.NullPointerException')) {
54
- await this.driver.execute((el, val) => {
55
- el.focus();
56
- el.value = val;
57
- }, el, value);
58
- } else {
59
- if (e.name === 'invalid element state') {
60
- throw new this.OxError(this.errHelper.errorCode.ELEMENT_STATE_ERROR, e.message);
61
- }
62
-
63
- throw e;
64
- }
65
- }
66
- };
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvdHlwZS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibG9jYXRvciIsInZhbHVlIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudCIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImVsIiwiZ2V0RWxlbWVudCIsImRyaXZlciIsImNhcGFiaWxpdGllcyIsImVudGl0eVR5cGUiLCJzYXZlVmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJ0b1N0cmluZyIsInNlbmRLZXlzIiwic2V0VmFsdWUiLCJlIiwibWVzc2FnZSIsImluY2x1ZGVzIiwiZXhlY3V0ZSIsInZhbCIsImZvY3VzIiwibmFtZSIsIk94RXJyb3IiLCJlcnJIZWxwZXIiLCJlcnJvckNvZGUiLCJFTEVNRU5UX1NUQVRFX0VSUk9SIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsZ0JBQWVDLE9BQWYsRUFBd0JDLEtBQXhCLEVBQStCQyxPQUEvQixFQUF3QztBQUNyRCxPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJILEtBQTVCLEVBQW1DLE9BQW5DO0FBQ0EsT0FBS0UsT0FBTCxDQUFhRSxxQkFBYixDQUFtQ0gsT0FBbkMsRUFBNEMsU0FBNUM7QUFFQSxNQUFJSSxFQUFFLEdBQUcsTUFBTSxLQUFLSCxPQUFMLENBQWFJLFVBQWIsQ0FBd0JQLE9BQXhCLEVBQWlDLElBQWpDLEVBQXVDRSxPQUF2QyxDQUFmOztBQUVBLE1BQUk7QUFFQSxRQUNJLEtBQUtNLE1BQUwsSUFDQSxLQUFLQSxNQUFMLENBQVlDLFlBRFosSUFFQSxLQUFLRCxNQUFMLENBQVlDLFlBQVosQ0FBeUJDLFVBRnpCLElBR0EsS0FBS0YsTUFBTCxDQUFZQyxZQUFaLENBQXlCQyxVQUF6QixLQUF3QyxlQUo1QyxFQUtFO0FBQ0UsVUFBSUMsU0FBSjs7QUFFQSxVQUFJVixLQUFKLEVBQVc7QUFDUCxZQUFJVyxLQUFLLENBQUNDLE9BQU4sQ0FBY1osS0FBZCxDQUFKLEVBQTBCO0FBQ3RCVSxVQUFBQSxTQUFTLEdBQUdWLEtBQVo7QUFDSCxTQUZELE1BRU8sSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQ2xDVSxVQUFBQSxTQUFTLEdBQUcsQ0FBQ1YsS0FBSyxDQUFDYSxRQUFOLEVBQUQsQ0FBWjtBQUNILFNBRk0sTUFFQSxJQUFJYixLQUFLLENBQUNhLFFBQVYsRUFBb0I7QUFDdkJILFVBQUFBLFNBQVMsR0FBRyxDQUFDVixLQUFLLENBQUNhLFFBQU4sRUFBRCxDQUFaO0FBQ0g7QUFDSixPQVhILENBYUU7OztBQUNBLFlBQU1SLEVBQUUsQ0FBQ1MsUUFBSCxDQUFZSixTQUFaLENBQU47QUFDSCxLQXBCRCxNQW9CTztBQUNIO0FBQ0EsWUFBTUwsRUFBRSxDQUFDVSxRQUFILENBQVlmLEtBQUssQ0FBQ2EsUUFBTixFQUFaLENBQU47QUFDSDtBQUNKLEdBMUJELENBMEJFLE9BQU9HLENBQVAsRUFBVTtBQUNSLFFBQ0lBLENBQUMsSUFDREEsQ0FBQyxDQUFDQyxPQURGLElBRUFELENBQUMsQ0FBQ0MsT0FBRixDQUFVQyxRQUFWLENBQW1CLGdDQUFuQixDQUhKLEVBSUU7QUFFRSxZQUFNLEtBQUtYLE1BQUwsQ0FBWVksT0FBWixDQUFvQixDQUFDZCxFQUFELEVBQUtlLEdBQUwsS0FBYTtBQUNuQ2YsUUFBQUEsRUFBRSxDQUFDZ0IsS0FBSDtBQUNBaEIsUUFBQUEsRUFBRSxDQUFDTCxLQUFILEdBQVdvQixHQUFYO0FBQ0gsT0FISyxFQUdIZixFQUhHLEVBR0NMLEtBSEQsQ0FBTjtBQUtILEtBWEQsTUFXTztBQUNILFVBQUlnQixDQUFDLENBQUNNLElBQUYsS0FBVyx1QkFBZixFQUF3QztBQUNwQyxjQUFNLElBQUksS0FBS0MsT0FBVCxDQUFpQixLQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBeUJDLG1CQUExQyxFQUErRFYsQ0FBQyxDQUFDQyxPQUFqRSxDQUFOO0FBQ0g7O0FBQ0QsWUFBTUQsQ0FBTjtBQUNIO0FBQ0o7QUFDSixDQW5ERCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFNlbmQgYSBzZXF1ZW5jZSBvZiBrZXkgc3Ryb2tlcyB0byBhbiBlbGVtZW50IChjbGVhcnMgdmFsdWUgYmVmb3JlKS5cclxuICogQGRlc2NyaXB0aW9uIFJlZmVyIHRvIFtLZXkgQ29kZXNdKGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvI2tleWJvYXJkLWFjdGlvbnMpXHJcbiAqICAgICAgICAgICAgICBmb3IgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIHJhdyBrZXlib2FyZCBrZXkgY29kZXMuXHJcbiAqIEBmdW5jdGlvbiB0eXBlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0eXBlLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAZm9yIGFuZHJvaWQsIGlvcywgaHlicmlkLCB3ZWJcclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIG1vYi5pbml0KGNhcHMpOy8vU3RhcnRzIGEgbW9iaWxlIHNlc3Npb24gYW5kIG9wZW5zIGFwcCBmcm9tIGRlc2lyZWQgY2FwYWJpbGl0aWVzXHJcbiAqIG1vYi50eXBlKCdpZD1UZXh0QXJlYScsICdoZWxsbyB3b3JsZFxcdUUwMDcnKTtcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24obG9jYXRvciwgdmFsdWUsIHRpbWVvdXQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudCh2YWx1ZSwgJ3ZhbHVlJyk7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnRUaW1lb3V0KHRpbWVvdXQsICd0aW1lb3V0Jyk7XHJcblxyXG4gICAgdmFyIGVsID0gYXdhaXQgdGhpcy5oZWxwZXJzLmdldEVsZW1lbnQobG9jYXRvciwgdHJ1ZSwgdGltZW91dCk7XHJcblxyXG4gICAgdHJ5IHtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmRyaXZlciAmJlxyXG4gICAgICAgICAgICB0aGlzLmRyaXZlci5jYXBhYmlsaXRpZXMgJiZcclxuICAgICAgICAgICAgdGhpcy5kcml2ZXIuY2FwYWJpbGl0aWVzLmVudGl0eVR5cGUgJiZcclxuICAgICAgICAgICAgdGhpcy5kcml2ZXIuY2FwYWJpbGl0aWVzLmVudGl0eVR5cGUgPT09ICdhcHBpdW1fZHJpdmVyJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBsZXQgc2F2ZVZhbHVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBzYXZlVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHNhdmVWYWx1ZSA9IFt2YWx1ZS50b1N0cmluZygpXTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUudG9TdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBzYXZlVmFsdWUgPSBbdmFsdWUudG9TdHJpbmcoKV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIG5hdGl2ZSBhcHBcclxuICAgICAgICAgICAgYXdhaXQgZWwuc2VuZEtleXMoc2F2ZVZhbHVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyByZW1vdGVfd2ViX2RyaXZlciAobW9iIGJyb3dzZXIpXHJcbiAgICAgICAgICAgIGF3YWl0IGVsLnNldFZhbHVlKHZhbHVlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGUgJiZcclxuICAgICAgICAgICAgZS5tZXNzYWdlICYmXHJcbiAgICAgICAgICAgIGUubWVzc2FnZS5pbmNsdWRlcygnamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uJylcclxuICAgICAgICApIHtcclxuXHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLmV4ZWN1dGUoKGVsLCB2YWwpID0+IHtcclxuICAgICAgICAgICAgICAgIGVsLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICBlbC52YWx1ZSA9IHZhbDtcclxuICAgICAgICAgICAgfSwgZWwsIHZhbHVlKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGUubmFtZSA9PT0gJ2ludmFsaWQgZWxlbWVudCBzdGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyB0aGlzLk94RXJyb3IodGhpcy5lcnJIZWxwZXIuZXJyb3JDb2RlLkVMRU1FTlRfU1RBVEVfRVJST1IsIGUubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbiJdfQ==
@@ -1,92 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Unlocks a pattern lock
16
- * @function unlockPattern
17
- * @param {String|Element} locator - Element locator for the pattern lock.
18
- * @param {Number} cols - Number of columns in the pattern.
19
- * @param {Number} rows - Number of rows in the pattern.
20
- * @param {String} pattern - Pattern sequence. Pins are hexadecimal and case sensitive. See example.
21
- * @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
22
- * @example <caption>Pattern pins are treated similarly as the numbers of a phone dial. E.g. 3x4 pattern:</caption>
23
- * 1 2 3
24
- * 4 5 6
25
- * 7 8 9
26
- * a b c
27
- * @for android
28
- */
29
- module.exports = async function (locator, cols, rows, pattern, timeout) {
30
- this.helpers.assertArgument(locator, 'locator');
31
- this.helpers.assertArgumentNumberNonNegative(cols, 'cols');
32
- this.helpers.assertArgumentNumberNonNegative(rows, 'rows');
33
- this.helpers.assertArgumentNonEmptyString(pattern, 'pattern');
34
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
35
- await this.helpers.assertContext(this.helpers.contextList.android);
36
- var el = await this.helpers.getElement(locator, false, timeout);
37
- var loc = await el.getLocation();
38
- var locX = loc.x;
39
- var locY = loc.y;
40
- var cellSize = await el.getSize();
41
- var cellW = Math.round(cellSize.width / cols);
42
- var cellH = Math.round(cellSize.height / rows);
43
- var pinToCellIndexMap = {};
44
- var pinCounter = 1;
45
- var cellCoords = [];
46
-
47
- for (var r = 0; r < rows; r++) {
48
- for (var c = 0; c < cols; c++) {
49
- // populate coordinates for each cell
50
- cellCoords.push({
51
- x: locX + (cellW * c + cellW / 2),
52
- y: locY + (cellH * r + cellH / 2)
53
- }); // create mapping between pattern "pins" (hexadecimal numbers) and indices in cellCoords
54
-
55
- pinToCellIndexMap[pinCounter.toString(16)] = pinCounter - 1;
56
- pinCounter++;
57
- }
58
- }
59
-
60
- var actions = []; // initial press for the first pin
61
-
62
- var cellIndex = pinToCellIndexMap[pattern[0]];
63
- var coord = cellCoords[cellIndex];
64
- var curCoordX = coord.x;
65
- var curCoordY = coord.y;
66
- actions.push({
67
- action: 'press',
68
- x: curCoordX,
69
- y: curCoordY
70
- }); // moveTo actions for the rest of the pins
71
-
72
- for (var pin of pattern.substring(1)) {
73
- cellIndex = pinToCellIndexMap[pin];
74
- var nextCoord = cellCoords[cellIndex];
75
- var offsetX = Math.abs(curCoordX - nextCoord.x);
76
- var offsetY = Math.abs(curCoordY - nextCoord.y);
77
- offsetX = curCoordX < nextCoord.x ? offsetX : -offsetX;
78
- offsetY = curCoordY < nextCoord.y ? offsetY : -offsetY;
79
- curCoordX = nextCoord.x;
80
- curCoordY = nextCoord.y;
81
- actions.push({
82
- action: 'moveTo',
83
- x: offsetX,
84
- y: offsetY
85
- });
86
- } // final release action
87
-
88
-
89
- actions.push('release');
90
- await this.driver.touchAction(actions);
91
- };
92
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvdW5sb2NrUGF0dGVybi5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibG9jYXRvciIsImNvbHMiLCJyb3dzIiwicGF0dGVybiIsInRpbWVvdXQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnQiLCJhc3NlcnRBcmd1bWVudE51bWJlck5vbk5lZ2F0aXZlIiwiYXNzZXJ0QXJndW1lbnROb25FbXB0eVN0cmluZyIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImFzc2VydENvbnRleHQiLCJjb250ZXh0TGlzdCIsImFuZHJvaWQiLCJlbCIsImdldEVsZW1lbnQiLCJsb2MiLCJnZXRMb2NhdGlvbiIsImxvY1giLCJ4IiwibG9jWSIsInkiLCJjZWxsU2l6ZSIsImdldFNpemUiLCJjZWxsVyIsIk1hdGgiLCJyb3VuZCIsIndpZHRoIiwiY2VsbEgiLCJoZWlnaHQiLCJwaW5Ub0NlbGxJbmRleE1hcCIsInBpbkNvdW50ZXIiLCJjZWxsQ29vcmRzIiwiciIsImMiLCJwdXNoIiwidG9TdHJpbmciLCJhY3Rpb25zIiwiY2VsbEluZGV4IiwiY29vcmQiLCJjdXJDb29yZFgiLCJjdXJDb29yZFkiLCJhY3Rpb24iLCJwaW4iLCJzdWJzdHJpbmciLCJuZXh0Q29vcmQiLCJvZmZzZXRYIiwiYWJzIiwib2Zmc2V0WSIsImRyaXZlciIsInRvdWNoQWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLGdCQUFlQyxPQUFmLEVBQXdCQyxJQUF4QixFQUE4QkMsSUFBOUIsRUFBb0NDLE9BQXBDLEVBQTZDQyxPQUE3QyxFQUFzRDtBQUNuRSxPQUFLQyxPQUFMLENBQWFDLGNBQWIsQ0FBNEJOLE9BQTVCLEVBQXFDLFNBQXJDO0FBQ0EsT0FBS0ssT0FBTCxDQUFhRSwrQkFBYixDQUE2Q04sSUFBN0MsRUFBbUQsTUFBbkQ7QUFDQSxPQUFLSSxPQUFMLENBQWFFLCtCQUFiLENBQTZDTCxJQUE3QyxFQUFtRCxNQUFuRDtBQUNBLE9BQUtHLE9BQUwsQ0FBYUcsNEJBQWIsQ0FBMENMLE9BQTFDLEVBQW1ELFNBQW5EO0FBQ0EsT0FBS0UsT0FBTCxDQUFhSSxxQkFBYixDQUFtQ0wsT0FBbkMsRUFBNEMsU0FBNUM7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUssYUFBYixDQUEyQixLQUFLTCxPQUFMLENBQWFNLFdBQWIsQ0FBeUJDLE9BQXBELENBQU47QUFFQSxNQUFJQyxFQUFFLEdBQUcsTUFBTSxLQUFLUixPQUFMLENBQWFTLFVBQWIsQ0FBd0JkLE9BQXhCLEVBQWlDLEtBQWpDLEVBQXdDSSxPQUF4QyxDQUFmO0FBRUEsTUFBSVcsR0FBRyxHQUFHLE1BQU1GLEVBQUUsQ0FBQ0csV0FBSCxFQUFoQjtBQUNBLE1BQUlDLElBQUksR0FBR0YsR0FBRyxDQUFDRyxDQUFmO0FBQ0EsTUFBSUMsSUFBSSxHQUFHSixHQUFHLENBQUNLLENBQWY7QUFFQSxNQUFJQyxRQUFRLEdBQUcsTUFBTVIsRUFBRSxDQUFDUyxPQUFILEVBQXJCO0FBQ0EsTUFBSUMsS0FBSyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0osUUFBUSxDQUFDSyxLQUFULEdBQWlCekIsSUFBNUIsQ0FBWjtBQUNBLE1BQUkwQixLQUFLLEdBQUdILElBQUksQ0FBQ0MsS0FBTCxDQUFXSixRQUFRLENBQUNPLE1BQVQsR0FBa0IxQixJQUE3QixDQUFaO0FBRUEsTUFBSTJCLGlCQUFpQixHQUFHLEVBQXhCO0FBQ0EsTUFBSUMsVUFBVSxHQUFHLENBQWpCO0FBQ0EsTUFBSUMsVUFBVSxHQUFHLEVBQWpCOztBQUNBLE9BQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBRzlCLElBQXBCLEVBQTBCOEIsQ0FBQyxFQUEzQixFQUErQjtBQUMzQixTQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdoQyxJQUFwQixFQUEwQmdDLENBQUMsRUFBM0IsRUFBK0I7QUFDM0I7QUFDQUYsTUFBQUEsVUFBVSxDQUFDRyxJQUFYLENBQWdCO0FBQUVoQixRQUFBQSxDQUFDLEVBQUVELElBQUksSUFBSU0sS0FBSyxHQUFHVSxDQUFSLEdBQVlWLEtBQUssR0FBQyxDQUF0QixDQUFUO0FBQW1DSCxRQUFBQSxDQUFDLEVBQUVELElBQUksSUFBSVEsS0FBSyxHQUFHSyxDQUFSLEdBQVlMLEtBQUssR0FBQyxDQUF0QjtBQUExQyxPQUFoQixFQUYyQixDQUczQjs7QUFDQUUsTUFBQUEsaUJBQWlCLENBQUNDLFVBQVUsQ0FBQ0ssUUFBWCxDQUFvQixFQUFwQixDQUFELENBQWpCLEdBQTZDTCxVQUFVLEdBQUcsQ0FBMUQ7QUFDQUEsTUFBQUEsVUFBVTtBQUNiO0FBQ0o7O0FBRUQsTUFBSU0sT0FBTyxHQUFHLEVBQWQsQ0EvQm1FLENBaUNuRTs7QUFDQSxNQUFJQyxTQUFTLEdBQUdSLGlCQUFpQixDQUFDMUIsT0FBTyxDQUFDLENBQUQsQ0FBUixDQUFqQztBQUNBLE1BQUltQyxLQUFLLEdBQUdQLFVBQVUsQ0FBQ00sU0FBRCxDQUF0QjtBQUNBLE1BQUlFLFNBQVMsR0FBR0QsS0FBSyxDQUFDcEIsQ0FBdEI7QUFDQSxNQUFJc0IsU0FBUyxHQUFHRixLQUFLLENBQUNsQixDQUF0QjtBQUNBZ0IsRUFBQUEsT0FBTyxDQUFDRixJQUFSLENBQWE7QUFBRU8sSUFBQUEsTUFBTSxFQUFFLE9BQVY7QUFBbUJ2QixJQUFBQSxDQUFDLEVBQUdxQixTQUF2QjtBQUFrQ25CLElBQUFBLENBQUMsRUFBRW9CO0FBQXJDLEdBQWIsRUF0Q21FLENBd0NuRTs7QUFDQSxPQUFLLElBQUlFLEdBQVQsSUFBZ0J2QyxPQUFPLENBQUN3QyxTQUFSLENBQWtCLENBQWxCLENBQWhCLEVBQXNDO0FBQ2xDTixJQUFBQSxTQUFTLEdBQUdSLGlCQUFpQixDQUFDYSxHQUFELENBQTdCO0FBQ0EsUUFBSUUsU0FBUyxHQUFHYixVQUFVLENBQUNNLFNBQUQsQ0FBMUI7QUFFQSxRQUFJUSxPQUFPLEdBQUdyQixJQUFJLENBQUNzQixHQUFMLENBQVNQLFNBQVMsR0FBR0ssU0FBUyxDQUFDMUIsQ0FBL0IsQ0FBZDtBQUNBLFFBQUk2QixPQUFPLEdBQUd2QixJQUFJLENBQUNzQixHQUFMLENBQVNOLFNBQVMsR0FBR0ksU0FBUyxDQUFDeEIsQ0FBL0IsQ0FBZDtBQUNBeUIsSUFBQUEsT0FBTyxHQUFHTixTQUFTLEdBQUdLLFNBQVMsQ0FBQzFCLENBQXRCLEdBQTBCMkIsT0FBMUIsR0FBb0MsQ0FBQ0EsT0FBL0M7QUFDQUUsSUFBQUEsT0FBTyxHQUFHUCxTQUFTLEdBQUdJLFNBQVMsQ0FBQ3hCLENBQXRCLEdBQTBCMkIsT0FBMUIsR0FBb0MsQ0FBQ0EsT0FBL0M7QUFFQVIsSUFBQUEsU0FBUyxHQUFHSyxTQUFTLENBQUMxQixDQUF0QjtBQUNBc0IsSUFBQUEsU0FBUyxHQUFHSSxTQUFTLENBQUN4QixDQUF0QjtBQUVBZ0IsSUFBQUEsT0FBTyxDQUFDRixJQUFSLENBQWE7QUFBRU8sTUFBQUEsTUFBTSxFQUFFLFFBQVY7QUFBb0J2QixNQUFBQSxDQUFDLEVBQUUyQixPQUF2QjtBQUFnQ3pCLE1BQUFBLENBQUMsRUFBRTJCO0FBQW5DLEtBQWI7QUFDSCxHQXREa0UsQ0F3RG5FOzs7QUFDQVgsRUFBQUEsT0FBTyxDQUFDRixJQUFSLENBQWEsU0FBYjtBQUVBLFFBQU0sS0FBS2MsTUFBTCxDQUFZQyxXQUFaLENBQXdCYixPQUF4QixDQUFOO0FBQ0gsQ0E1REQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAc3VtbWFyeSBVbmxvY2tzIGEgcGF0dGVybiBsb2NrXHJcbiAqIEBmdW5jdGlvbiB1bmxvY2tQYXR0ZXJuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBFbGVtZW50IGxvY2F0b3IgZm9yIHRoZSBwYXR0ZXJuIGxvY2suXHJcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb2xzIC0gTnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIHBhdHRlcm4uXHJcbiAqIEBwYXJhbSB7TnVtYmVyfSByb3dzIC0gTnVtYmVyIG9mIHJvd3MgaW4gdGhlIHBhdHRlcm4uXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gUGF0dGVybiBzZXF1ZW5jZS4gUGlucyBhcmUgaGV4YWRlY2ltYWwgYW5kIGNhc2Ugc2Vuc2l0aXZlLiBTZWUgZXhhbXBsZS5cclxuICogQHBhcmFtIHtOdW1iZXI9fSB0aW1lb3V0IC0gVGltZW91dCBpbiBtaWxsaXNlY29uZHMuIERlZmF1bHQgaXMgNjAgc2Vjb25kcy5cclxuICogQGV4YW1wbGUgPGNhcHRpb24+UGF0dGVybiBwaW5zIGFyZSB0cmVhdGVkIHNpbWlsYXJseSBhcyB0aGUgbnVtYmVycyBvZiBhIHBob25lIGRpYWwuIEUuZy4gM3g0IHBhdHRlcm46PC9jYXB0aW9uPlxyXG4gKiAxIDIgM1xyXG4gKiA0IDUgNlxyXG4gKiA3IDggOVxyXG4gKiBhIGIgY1xyXG4gKiBAZm9yIGFuZHJvaWRcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24obG9jYXRvciwgY29scywgcm93cywgcGF0dGVybiwgdGltZW91dCkge1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50KGxvY2F0b3IsICdsb2NhdG9yJyk7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnROdW1iZXJOb25OZWdhdGl2ZShjb2xzLCAnY29scycpO1xyXG4gICAgdGhpcy5oZWxwZXJzLmFzc2VydEFyZ3VtZW50TnVtYmVyTm9uTmVnYXRpdmUocm93cywgJ3Jvd3MnKTtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudE5vbkVtcHR5U3RyaW5nKHBhdHRlcm4sICdwYXR0ZXJuJyk7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnRUaW1lb3V0KHRpbWVvdXQsICd0aW1lb3V0Jyk7XHJcbiAgICBhd2FpdCB0aGlzLmhlbHBlcnMuYXNzZXJ0Q29udGV4dCh0aGlzLmhlbHBlcnMuY29udGV4dExpc3QuYW5kcm9pZCk7XHJcblxyXG4gICAgdmFyIGVsID0gYXdhaXQgdGhpcy5oZWxwZXJzLmdldEVsZW1lbnQobG9jYXRvciwgZmFsc2UsIHRpbWVvdXQpO1xyXG5cclxuICAgIHZhciBsb2MgPSBhd2FpdCBlbC5nZXRMb2NhdGlvbigpO1xyXG4gICAgdmFyIGxvY1ggPSBsb2MueDtcclxuICAgIHZhciBsb2NZID0gbG9jLnk7XHJcblxyXG4gICAgdmFyIGNlbGxTaXplID0gYXdhaXQgZWwuZ2V0U2l6ZSgpO1xyXG4gICAgdmFyIGNlbGxXID0gTWF0aC5yb3VuZChjZWxsU2l6ZS53aWR0aCAvIGNvbHMpO1xyXG4gICAgdmFyIGNlbGxIID0gTWF0aC5yb3VuZChjZWxsU2l6ZS5oZWlnaHQgLyByb3dzKTtcclxuXHJcbiAgICB2YXIgcGluVG9DZWxsSW5kZXhNYXAgPSB7fTtcclxuICAgIHZhciBwaW5Db3VudGVyID0gMTtcclxuICAgIHZhciBjZWxsQ29vcmRzID0gW107XHJcbiAgICBmb3IgKHZhciByID0gMDsgciA8IHJvd3M7IHIrKykge1xyXG4gICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgY29sczsgYysrKSB7XHJcbiAgICAgICAgICAgIC8vIHBvcHVsYXRlIGNvb3JkaW5hdGVzIGZvciBlYWNoIGNlbGxcclxuICAgICAgICAgICAgY2VsbENvb3Jkcy5wdXNoKHsgeDogbG9jWCArIChjZWxsVyAqIGMgKyBjZWxsVy8yKSwgeTogbG9jWSArIChjZWxsSCAqIHIgKyBjZWxsSC8yKX0pO1xyXG4gICAgICAgICAgICAvLyBjcmVhdGUgbWFwcGluZyBiZXR3ZWVuIHBhdHRlcm4gXCJwaW5zXCIgKGhleGFkZWNpbWFsIG51bWJlcnMpIGFuZCBpbmRpY2VzIGluIGNlbGxDb29yZHNcclxuICAgICAgICAgICAgcGluVG9DZWxsSW5kZXhNYXBbcGluQ291bnRlci50b1N0cmluZygxNildID0gcGluQ291bnRlciAtIDE7XHJcbiAgICAgICAgICAgIHBpbkNvdW50ZXIrKztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGFjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAvLyBpbml0aWFsIHByZXNzIGZvciB0aGUgZmlyc3QgcGluXHJcbiAgICB2YXIgY2VsbEluZGV4ID0gcGluVG9DZWxsSW5kZXhNYXBbcGF0dGVyblswXV07XHJcbiAgICB2YXIgY29vcmQgPSBjZWxsQ29vcmRzW2NlbGxJbmRleF07XHJcbiAgICB2YXIgY3VyQ29vcmRYID0gY29vcmQueDtcclxuICAgIHZhciBjdXJDb29yZFkgPSBjb29yZC55O1xyXG4gICAgYWN0aW9ucy5wdXNoKHsgYWN0aW9uOiAncHJlc3MnLCB4OiAgY3VyQ29vcmRYLCB5OiBjdXJDb29yZFl9KTtcclxuXHJcbiAgICAvLyBtb3ZlVG8gYWN0aW9ucyBmb3IgdGhlIHJlc3Qgb2YgdGhlIHBpbnNcclxuICAgIGZvciAodmFyIHBpbiBvZiBwYXR0ZXJuLnN1YnN0cmluZygxKSkge1xyXG4gICAgICAgIGNlbGxJbmRleCA9IHBpblRvQ2VsbEluZGV4TWFwW3Bpbl07XHJcbiAgICAgICAgdmFyIG5leHRDb29yZCA9IGNlbGxDb29yZHNbY2VsbEluZGV4XTtcclxuXHJcbiAgICAgICAgdmFyIG9mZnNldFggPSBNYXRoLmFicyhjdXJDb29yZFggLSBuZXh0Q29vcmQueCk7XHJcbiAgICAgICAgdmFyIG9mZnNldFkgPSBNYXRoLmFicyhjdXJDb29yZFkgLSBuZXh0Q29vcmQueSk7XHJcbiAgICAgICAgb2Zmc2V0WCA9IGN1ckNvb3JkWCA8IG5leHRDb29yZC54ID8gb2Zmc2V0WCA6IC1vZmZzZXRYO1xyXG4gICAgICAgIG9mZnNldFkgPSBjdXJDb29yZFkgPCBuZXh0Q29vcmQueSA/IG9mZnNldFkgOiAtb2Zmc2V0WTtcclxuXHJcbiAgICAgICAgY3VyQ29vcmRYID0gbmV4dENvb3JkLng7XHJcbiAgICAgICAgY3VyQ29vcmRZID0gbmV4dENvb3JkLnk7XHJcblxyXG4gICAgICAgIGFjdGlvbnMucHVzaCh7IGFjdGlvbjogJ21vdmVUbycsIHg6IG9mZnNldFgsIHk6IG9mZnNldFkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZmluYWwgcmVsZWFzZSBhY3Rpb25cclxuICAgIGFjdGlvbnMucHVzaCgncmVsZWFzZScpO1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZHJpdmVyLnRvdWNoQWN0aW9uKGFjdGlvbnMpO1xyXG59O1xyXG4iXX0=
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Wait for an element for the provided amount of milliseconds to exist in DOM.
16
- * @description The element is not necessary needs to be visible.
17
- * @function waitForExist
18
- * @param {String|Element} locator - Element locator.
19
- * @param {Number=} timeout - Time in milliseconds to wait for the element. Default is 60 seconds.
20
- * @for android, ios, hybrid, web
21
- * @example <caption>[javascript] Usage example</caption>
22
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
23
- * mob.waitForExist('id=Element');//Wait for an element for the provided amount of milliseconds to exist in DOM.
24
- */
25
- module.exports = async function (locator, timeout) {
26
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
27
- await this.helpers.getElement(locator, false, timeout);
28
- };
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvd2FpdEZvckV4aXN0LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJsb2NhdG9yIiwidGltZW91dCIsImhlbHBlcnMiLCJhc3NlcnRBcmd1bWVudFRpbWVvdXQiLCJnZXRFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBeEIsRUFBaUM7QUFDOUMsT0FBS0MsT0FBTCxDQUFhQyxxQkFBYixDQUFtQ0YsT0FBbkMsRUFBNEMsU0FBNUM7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUUsVUFBYixDQUF3QkosT0FBeEIsRUFBaUMsS0FBakMsRUFBd0NDLE9BQXhDLENBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgV2FpdCBmb3IgYW4gZWxlbWVudCBmb3IgdGhlIHByb3ZpZGVkIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdG8gZXhpc3QgaW4gRE9NLlxyXG4gKiBAZGVzY3JpcHRpb24gVGhlIGVsZW1lbnQgaXMgbm90IG5lY2Vzc2FyeSBuZWVkcyB0byBiZSB2aXNpYmxlLlxyXG4gKiBAZnVuY3Rpb24gd2FpdEZvckV4aXN0XHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBFbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7TnVtYmVyPX0gdGltZW91dCAtIFRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBlbGVtZW50LiBEZWZhdWx0IGlzIDYwIHNlY29uZHMuXHJcbiAqIEBmb3IgYW5kcm9pZCwgaW9zLCBoeWJyaWQsIHdlYlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogbW9iLmluaXQoY2Fwcyk7Ly9TdGFydHMgYSBtb2JpbGUgc2Vzc2lvbiBhbmQgb3BlbnMgYXBwIGZyb20gZGVzaXJlZCBjYXBhYmlsaXRpZXNcclxuICogbW9iLndhaXRGb3JFeGlzdCgnaWQ9RWxlbWVudCcpOy8vV2FpdCBmb3IgYW4gZWxlbWVudCBmb3IgdGhlIHByb3ZpZGVkIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdG8gZXhpc3QgaW4gRE9NLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSBhc3luYyBmdW5jdGlvbihsb2NhdG9yLCB0aW1lb3V0KSB7XHJcbiAgICB0aGlzLmhlbHBlcnMuYXNzZXJ0QXJndW1lbnRUaW1lb3V0KHRpbWVvdXQsICd0aW1lb3V0Jyk7XHJcbiAgICBhd2FpdCB0aGlzLmhlbHBlcnMuZ2V0RWxlbWVudChsb2NhdG9yLCBmYWxzZSwgdGltZW91dCk7XHJcbn07XHJcbiJdfQ==
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Waits for element to become interactable.
16
- * @function waitForInteractable
17
- * @param {String|Element} locator - An element locator.
18
- * @param {Number=} timeout - Timeout in milliseconds. Default is 60 seconds.
19
- * @for android, ios, hybrid, web
20
- * @example <caption>[javascript] Usage example</caption>
21
- * mob.init();//Opens browser session.
22
- * mob.waitForInteractable("id=UserName");//Waits for an element is clickable in DOM.
23
- */
24
- module.exports = async function (locator, timeout) {
25
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
26
- const el = await this.helpers.getElement(locator, false, timeout);
27
-
28
- try {
29
- await this.driver.waitUntil(async () => {
30
- const clickable = await el.getAttribute('clickable');
31
- const checkable = await el.getAttribute('checkable');
32
- const focusable = await el.getAttribute('focusable');
33
- const longClickable = await el.getAttribute('long-clickable');
34
- return clickable || checkable || focusable || longClickable;
35
- }, {
36
- timeout: timeout ? timeout : this.waitForTimeout
37
- });
38
- } catch (e) {
39
- throw new this.OxError(this.errHelper.errorCode.ELEMENT_NOT_INTERACTABLE, `Element ${locator} is not interactable`);
40
- }
41
- };
42
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvd2FpdEZvckludGVyYWN0YWJsZS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibG9jYXRvciIsInRpbWVvdXQiLCJoZWxwZXJzIiwiYXNzZXJ0QXJndW1lbnRUaW1lb3V0IiwiZWwiLCJnZXRFbGVtZW50IiwiZHJpdmVyIiwid2FpdFVudGlsIiwiY2xpY2thYmxlIiwiZ2V0QXR0cmlidXRlIiwiY2hlY2thYmxlIiwiZm9jdXNhYmxlIiwibG9uZ0NsaWNrYWJsZSIsIndhaXRGb3JUaW1lb3V0IiwiZSIsIk94RXJyb3IiLCJlcnJIZWxwZXIiLCJlcnJvckNvZGUiLCJFTEVNRU5UX05PVF9JTlRFUkFDVEFCTEUiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBeEIsRUFBaUM7QUFDOUMsT0FBS0MsT0FBTCxDQUFhQyxxQkFBYixDQUFtQ0YsT0FBbkMsRUFBNEMsU0FBNUM7QUFDQSxRQUFNRyxFQUFFLEdBQUcsTUFBTSxLQUFLRixPQUFMLENBQWFHLFVBQWIsQ0FBd0JMLE9BQXhCLEVBQWlDLEtBQWpDLEVBQXdDQyxPQUF4QyxDQUFqQjs7QUFFQSxNQUFJO0FBQ0EsVUFBTSxLQUFLSyxNQUFMLENBQVlDLFNBQVosQ0FBc0IsWUFBVztBQUNuQyxZQUFNQyxTQUFTLEdBQUcsTUFBTUosRUFBRSxDQUFDSyxZQUFILENBQWdCLFdBQWhCLENBQXhCO0FBQ0EsWUFBTUMsU0FBUyxHQUFHLE1BQU1OLEVBQUUsQ0FBQ0ssWUFBSCxDQUFnQixXQUFoQixDQUF4QjtBQUNBLFlBQU1FLFNBQVMsR0FBRyxNQUFNUCxFQUFFLENBQUNLLFlBQUgsQ0FBZ0IsV0FBaEIsQ0FBeEI7QUFDQSxZQUFNRyxhQUFhLEdBQUcsTUFBTVIsRUFBRSxDQUFDSyxZQUFILENBQWdCLGdCQUFoQixDQUE1QjtBQUNBLGFBQVFELFNBQVMsSUFBSUUsU0FBYixJQUEwQkMsU0FBMUIsSUFBdUNDLGFBQS9DO0FBQ0gsS0FOSyxFQU9OO0FBQUVYLE1BQUFBLE9BQU8sRUFBR0EsT0FBTyxHQUFHQSxPQUFILEdBQWEsS0FBS1k7QUFBckMsS0FQTSxDQUFOO0FBUUgsR0FURCxDQVNFLE9BQU9DLENBQVAsRUFBVTtBQUNSLFVBQU0sSUFBSSxLQUFLQyxPQUFULENBQWlCLEtBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUF5QkMsd0JBQTFDLEVBQXFFLFdBQVVsQixPQUFRLHNCQUF2RixDQUFOO0FBQ0g7QUFDSixDQWhCRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBzdW1tYXJ5IFdhaXRzIGZvciBlbGVtZW50IHRvIGJlY29tZSBpbnRlcmFjdGFibGUuXHJcbiAqIEBmdW5jdGlvbiB3YWl0Rm9ySW50ZXJhY3RhYmxlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfEVsZW1lbnR9IGxvY2F0b3IgLSBBbiBlbGVtZW50IGxvY2F0b3IuXHJcbiAqIEBwYXJhbSB7TnVtYmVyPX0gdGltZW91dCAtIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiBEZWZhdWx0IGlzIDYwIHNlY29uZHMuXHJcbiAqIEBmb3IgYW5kcm9pZCwgaW9zLCBoeWJyaWQsIHdlYlxyXG4gKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICogbW9iLmluaXQoKTsvL09wZW5zIGJyb3dzZXIgc2Vzc2lvbi5cclxuICogbW9iLndhaXRGb3JJbnRlcmFjdGFibGUoXCJpZD1Vc2VyTmFtZVwiKTsvL1dhaXRzIGZvciBhbiBlbGVtZW50IGlzIGNsaWNrYWJsZSBpbiBET00uXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKGxvY2F0b3IsIHRpbWVvdXQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuICAgIGNvbnN0IGVsID0gYXdhaXQgdGhpcy5oZWxwZXJzLmdldEVsZW1lbnQobG9jYXRvciwgZmFsc2UsIHRpbWVvdXQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIud2FpdFVudGlsKGFzeW5jKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjbGlja2FibGUgPSBhd2FpdCBlbC5nZXRBdHRyaWJ1dGUoJ2NsaWNrYWJsZScpO1xyXG4gICAgICAgICAgICBjb25zdCBjaGVja2FibGUgPSBhd2FpdCBlbC5nZXRBdHRyaWJ1dGUoJ2NoZWNrYWJsZScpO1xyXG4gICAgICAgICAgICBjb25zdCBmb2N1c2FibGUgPSBhd2FpdCBlbC5nZXRBdHRyaWJ1dGUoJ2ZvY3VzYWJsZScpO1xyXG4gICAgICAgICAgICBjb25zdCBsb25nQ2xpY2thYmxlID0gYXdhaXQgZWwuZ2V0QXR0cmlidXRlKCdsb25nLWNsaWNrYWJsZScpO1xyXG4gICAgICAgICAgICByZXR1cm4gKGNsaWNrYWJsZSB8fCBjaGVja2FibGUgfHwgZm9jdXNhYmxlIHx8IGxvbmdDbGlja2FibGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyB0aW1lb3V0OiAodGltZW91dCA/IHRpbWVvdXQgOiB0aGlzLndhaXRGb3JUaW1lb3V0KSB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB0aHJvdyBuZXcgdGhpcy5PeEVycm9yKHRoaXMuZXJySGVscGVyLmVycm9yQ29kZS5FTEVNRU5UX05PVF9JTlRFUkFDVEFCTEUsIGBFbGVtZW50ICR7bG9jYXRvcn0gaXMgbm90IGludGVyYWN0YWJsZWApO1xyXG4gICAgfVxyXG59O1xyXG4iXX0=
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- /*
6
- * Copyright (C) 2015-present CloudBeat Limited
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License as published by
10
- * the Free Software Foundation, either version 3 of the License, or
11
- * (at your option) any later version.
12
- */
13
-
14
- /**
15
- * @summary Waits for element to become visible.
16
- * @function waitForVisible
17
- * @param {String|Element} locator - Element locator.
18
- * @param {Number=} timeout - Time in milliseconds to wait for the element. Default is 60 seconds.
19
- * @for android, ios, hybrid, web
20
- * @example <caption>[javascript] Usage example</caption>
21
- * mob.init(caps);//Starts a mobile session and opens app from desired capabilities
22
- * mob.waitForVisible("id=Title", 45*1000);//Waits for an element to be visible.
23
- */
24
- module.exports = async function (locator, timeout) {
25
- this.helpers.assertArgumentTimeout(timeout, 'timeout');
26
- await this.helpers.getElement(locator, true, timeout);
27
- };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvd2FpdEZvclZpc2libGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImxvY2F0b3IiLCJ0aW1lb3V0IiwiaGVscGVycyIsImFzc2VydEFyZ3VtZW50VGltZW91dCIsImdldEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0FBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQixnQkFBZUMsT0FBZixFQUF3QkMsT0FBeEIsRUFBaUM7QUFDOUMsT0FBS0MsT0FBTCxDQUFhQyxxQkFBYixDQUFtQ0YsT0FBbkMsRUFBNEMsU0FBNUM7QUFDQSxRQUFNLEtBQUtDLE9BQUwsQ0FBYUUsVUFBYixDQUF3QkosT0FBeEIsRUFBaUMsSUFBakMsRUFBdUNDLE9BQXZDLENBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQHN1bW1hcnkgV2FpdHMgZm9yIGVsZW1lbnQgdG8gYmVjb21lIHZpc2libGUuXHJcbiAqIEBmdW5jdGlvbiB3YWl0Rm9yVmlzaWJsZVxyXG4gKiBAcGFyYW0ge1N0cmluZ3xFbGVtZW50fSBsb2NhdG9yIC0gRWxlbWVudCBsb2NhdG9yLlxyXG4gKiBAcGFyYW0ge051bWJlcj19IHRpbWVvdXQgLSBUaW1lIGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgZWxlbWVudC4gRGVmYXVsdCBpcyA2MCBzZWNvbmRzLlxyXG4gKiBAZm9yIGFuZHJvaWQsIGlvcywgaHlicmlkLCB3ZWJcclxuICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAqIG1vYi5pbml0KGNhcHMpOy8vU3RhcnRzIGEgbW9iaWxlIHNlc3Npb24gYW5kIG9wZW5zIGFwcCBmcm9tIGRlc2lyZWQgY2FwYWJpbGl0aWVzXHJcbiAqIG1vYi53YWl0Rm9yVmlzaWJsZShcImlkPVRpdGxlXCIsIDQ1KjEwMDApOy8vV2FpdHMgZm9yIGFuIGVsZW1lbnQgdG8gIGJlIHZpc2libGUuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IGFzeW5jIGZ1bmN0aW9uKGxvY2F0b3IsIHRpbWVvdXQpIHtcclxuICAgIHRoaXMuaGVscGVycy5hc3NlcnRBcmd1bWVudFRpbWVvdXQodGltZW91dCwgJ3RpbWVvdXQnKTtcclxuICAgIGF3YWl0IHRoaXMuaGVscGVycy5nZXRFbGVtZW50KGxvY2F0b3IsIHRydWUsIHRpbWVvdXQpO1xyXG59O1xyXG4iXX0=