appium-espresso-driver 1.46.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 (311) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/LICENSE +201 -0
  3. package/README.md +864 -0
  4. package/build/index.js +48 -0
  5. package/build/lib/commands/execute.js +67 -0
  6. package/build/lib/commands/general.js +337 -0
  7. package/build/lib/commands/idling-resources.js +31 -0
  8. package/build/lib/commands/index.js +26 -0
  9. package/build/lib/commands/services.js +27 -0
  10. package/build/lib/desired-caps.js +65 -0
  11. package/build/lib/driver.js +475 -0
  12. package/build/lib/espresso-runner.js +381 -0
  13. package/build/lib/logger.js +18 -0
  14. package/build/lib/server-builder.js +213 -0
  15. package/build/lib/server.js +39 -0
  16. package/build/lib/utils.js +85 -0
  17. package/espresso-server/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk +0 -0
  18. package/espresso-server/app/build/outputs/apk/androidTest/debug/output-metadata.json +18 -0
  19. package/espresso-server/app/build.gradle.kts +153 -0
  20. package/espresso-server/app/proguard-rules.pro +25 -0
  21. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/EspressoServerRunnerTest.kt +93 -0
  22. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/drivers/AppDriver.kt +29 -0
  23. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/drivers/ComposeDriver.kt +73 -0
  24. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/drivers/DriverContext.kt +35 -0
  25. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/drivers/EspressoDriver.kt +70 -0
  26. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/AcceptAlert.kt +32 -0
  27. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Back.kt +31 -0
  28. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Clear.kt +40 -0
  29. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Click.kt +27 -0
  30. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/CreateSession.kt +58 -0
  31. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/DeleteSession.kt +33 -0
  32. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/DismissAlert.kt +32 -0
  33. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/DrawerActionHandler.kt +45 -0
  34. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/ElementEquals.kt +19 -0
  35. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/ElementScreenshot.kt +31 -0
  36. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/ElementValue.kt +85 -0
  37. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/FindActive.kt +32 -0
  38. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/FindElement.kt +29 -0
  39. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/FindElements.kt +43 -0
  40. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetAlertText.kt +31 -0
  41. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetAttribute.kt +101 -0
  42. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetClipboard.kt +65 -0
  43. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetDeviceInfo.kt +44 -0
  44. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetDisplayed.kt +28 -0
  45. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetEnabled.kt +30 -0
  46. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetLocation.kt +32 -0
  47. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetLocationInView.kt +33 -0
  48. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetName.kt +31 -0
  49. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetOrientation.kt +44 -0
  50. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetRect.kt +38 -0
  51. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetRotation.kt +33 -0
  52. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSelected.kt +30 -0
  53. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSession.kt +34 -0
  54. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSessions.kt +41 -0
  55. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSettings.kt +25 -0
  56. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSize.kt +32 -0
  57. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetToastVisibility.kt +34 -0
  58. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetWindowRect.kt +43 -0
  59. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetWindowSize.kt +42 -0
  60. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/HideKeyboard.kt +29 -0
  61. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Keys.kt +82 -0
  62. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/ListIdlingResources.kt +30 -0
  63. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileBackdoor.kt +42 -0
  64. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileClickAction.kt +49 -0
  65. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileSwipe.kt +71 -0
  66. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MobileViewFlash.kt +50 -0
  67. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MoveTo.kt +50 -0
  68. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/MultiTouchAction.kt +50 -0
  69. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/NavigateTo.kt +42 -0
  70. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/NoSessionCommandHandler.kt +4 -0
  71. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/NotYetImplemented.kt +28 -0
  72. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/OpenNotifications.kt +28 -0
  73. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/PerformAction.kt +42 -0
  74. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/PerformAutofillDismissal.kt +31 -0
  75. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/PerformEditorAction.kt +30 -0
  76. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/PointerEventHandler.kt +281 -0
  77. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/PressKeyCode.kt +90 -0
  78. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/RegisterIdlingResources.kt +33 -0
  79. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/ReleaseActions.kt +41 -0
  80. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/RequestHandler.kt +43 -0
  81. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/ScreenshotHandler.kt +29 -0
  82. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/ScrollToPage.kt +60 -0
  83. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/SetClipboard.kt +64 -0
  84. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/SetDate.kt +41 -0
  85. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/SetOrientation.kt +61 -0
  86. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/SetRotation.kt +46 -0
  87. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/SetTime.kt +41 -0
  88. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Source.kt +29 -0
  89. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/StartActivity.kt +30 -0
  90. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/StartService.kt +40 -0
  91. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Status.kt +26 -0
  92. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/StopService.kt +37 -0
  93. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Text.kt +28 -0
  94. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/TouchAction.kt +49 -0
  95. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Uiautomator.kt +68 -0
  96. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/UiautomatorPageSource.kt +35 -0
  97. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/UnregisterIdlingResources.kt +33 -0
  98. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/UpdateSettings.kt +35 -0
  99. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/WebAtoms.kt +69 -0
  100. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/AppiumException.kt +40 -0
  101. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/DuplicateRouteException.kt +22 -0
  102. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/ElementNotVisibleException.kt +30 -0
  103. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/InvalidArgumentException.kt +35 -0
  104. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/InvalidElementStateException.kt +41 -0
  105. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/InvalidSelectorException.kt +35 -0
  106. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/MoveTargetOutOfBoundsException.kt +39 -0
  107. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/NoAlertOpenException.kt +33 -0
  108. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/NoSuchDriverException.kt +31 -0
  109. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/NoSuchElementException.kt +34 -0
  110. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/NotYetImplementedException.kt +33 -0
  111. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/ScreenCaptureException.kt +30 -0
  112. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/SessionNotCreatedException.kt +34 -0
  113. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/StaleElementException.kt +30 -0
  114. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/exceptions/XPathLookupException.kt +31 -0
  115. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/AccessibilityServiceState.kt +15 -0
  116. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ActivityHelpers.kt +125 -0
  117. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ActivityOptionsHelpers.kt +60 -0
  118. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/AlertHelpers.kt +170 -0
  119. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/AndroidLogger.kt +45 -0
  120. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/AssertHelpers.kt +17 -0
  121. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/AutofillHelpers.kt +44 -0
  122. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/BackdoorUtils.java +49 -0
  123. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ClipboardHelper.kt +51 -0
  124. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ComposeNodeFinder.kt +59 -0
  125. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/DeviceInfoHelper.kt +148 -0
  126. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/EspressoViewsCache.kt +57 -0
  127. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/GsonParserHelpers.kt +72 -0
  128. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/IMEHelpers.kt +88 -0
  129. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/IntentHelpers.kt +336 -0
  130. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InteractionHelper.kt +40 -0
  131. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/InvocationOperation.java +80 -0
  132. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/LocaleHelpers.kt +46 -0
  133. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/Logger.kt +25 -0
  134. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/NotificationListener.kt +87 -0
  135. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/Rect.kt +22 -0
  136. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ReflectionUtils.kt +64 -0
  137. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ScreenshotsHelper.kt +59 -0
  138. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/StringHelpers.kt +42 -0
  139. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ThreadHelpers.kt +15 -0
  140. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/UiAutomationWrapper.kt +48 -0
  141. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/ViewFinder.kt +316 -0
  142. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/XMLHelpers.kt +56 -0
  143. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/extensions/Semaphore.kt +22 -0
  144. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/reflection/ArrayUtils.java +110 -0
  145. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/reflection/ClassUtils.java +180 -0
  146. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/reflection/MethodUtils.java +155 -0
  147. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/reflection/Validate.java +34 -0
  148. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/BaseW3CActionAdapter.kt +71 -0
  149. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/DummyW3CActionAdapter.kt +133 -0
  150. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/W3CActionAdapter.kt +71 -0
  151. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/espresso/AndroidKeyEvent.kt +271 -0
  152. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/espresso/AndroidMotionEvent.kt +90 -0
  153. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/espresso/EspressoW3CActionAdapter.kt +147 -0
  154. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/espresso/Helpers.kt +71 -0
  155. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/espresso/MotionEventBuilder.kt +153 -0
  156. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/espresso/MultiTouchState.kt +132 -0
  157. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/adapter/espresso/TouchState.kt +7 -0
  158. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/caps/CapsUtils.kt +96 -0
  159. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/BaseDispatchResult.kt +14 -0
  160. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/DispatchPointerMoveResult.kt +22 -0
  161. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/KeyDispatch.kt +151 -0
  162. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/PointerDispatch.kt +286 -0
  163. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/W3CKeyEvent.kt +21 -0
  164. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/constants/KeyCodeMapper.kt +169 -0
  165. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/constants/KeyLocationMapper.kt +50 -0
  166. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/constants/KeyNormalizer.kt +84 -0
  167. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/dispatcher/constants/NormalizedKeys.kt +60 -0
  168. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/models/ActionObject.kt +138 -0
  169. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/models/ActionSequence.kt +112 -0
  170. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/models/Actions.kt +89 -0
  171. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/models/InputSource.kt +173 -0
  172. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/models/Origin.kt +24 -0
  173. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/models/OriginDeserializer.kt +25 -0
  174. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/models/Tick.kt +62 -0
  175. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/processor/ActionsProcessor.kt +93 -0
  176. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/processor/KeyProcessor.kt +57 -0
  177. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/processor/PauseProcessor.kt +59 -0
  178. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/processor/PointerProcessor.kt +115 -0
  179. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/processor/ProcessorHelpers.kt +35 -0
  180. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/state/ActiveInputSources.kt +62 -0
  181. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/state/InputState.kt +6 -0
  182. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/state/InputStateTable.kt +95 -0
  183. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/state/KeyInputState.kt +82 -0
  184. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/helpers/w3c/state/PointerInputState.kt +45 -0
  185. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/http/RouteDefinition.kt +67 -0
  186. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/http/RouteMap.kt +51 -0
  187. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/http/Router.kt +250 -0
  188. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/http/Server.kt +109 -0
  189. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/http/response/AppiumResponse.kt +61 -0
  190. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/http/response/BaseResponse.kt +25 -0
  191. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/AlertParams.kt +21 -0
  192. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/AppiumParams.kt +55 -0
  193. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/BackdoorMethodArg.kt +3 -0
  194. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/ClipboardDataType.kt +18 -0
  195. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/DrawerActionParams.kt +21 -0
  196. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/EditorActionParams.kt +21 -0
  197. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/Element.kt +169 -0
  198. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/GetClipboardParams.kt +27 -0
  199. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/GlobalSession.kt +64 -0
  200. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/HamcrestMatcher.kt +144 -0
  201. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/IdlingResourcesParams.kt +66 -0
  202. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/KeyEventParams.kt +23 -0
  203. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/LocaleParams.kt +34 -0
  204. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/Location.kt +19 -0
  205. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/Locator.kt +22 -0
  206. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MatcherJson.kt +37 -0
  207. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MobileBackdoorMethod.kt +22 -0
  208. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MobileBackdoorParams.kt +20 -0
  209. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MobileClickActionParams.kt +81 -0
  210. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MobileSwipeParams.kt +106 -0
  211. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MotionEventParams.kt +37 -0
  212. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MoveToParams.kt +26 -0
  213. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/MultiTouchActionsParams.kt +5 -0
  214. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/NavigateToParams.kt +21 -0
  215. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/OrientationParams.kt +21 -0
  216. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/OrientationType.kt +6 -0
  217. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/Rect.kt +24 -0
  218. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/RotationParams.kt +38 -0
  219. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/ScrollToPageParams.kt +36 -0
  220. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/SessionParams.kt +23 -0
  221. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/SetClipboardParams.kt +29 -0
  222. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/SetDateParams.kt +23 -0
  223. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/SetTimeParams.kt +22 -0
  224. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/SettingsParams.kt +19 -0
  225. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/Size.kt +22 -0
  226. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/SourceDocument.kt +286 -0
  227. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/StartActivityParams.kt +9 -0
  228. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/StartServiceParams.kt +22 -0
  229. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/StopServiceParams.kt +21 -0
  230. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/Strategy.kt +49 -0
  231. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/TextValueParams.kt +6 -0
  232. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/ToastLookupParams.kt +22 -0
  233. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/TouchAction.kt +178 -0
  234. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/TouchActionsParams.kt +5 -0
  235. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/UiautomatorParams.kt +123 -0
  236. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/ViewAttributesEnum.kt +51 -0
  237. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/ViewElement.kt +204 -0
  238. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/ViewFlashParams.kt +9 -0
  239. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/ViewText.kt +12 -0
  240. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/WindowRect.kt +24 -0
  241. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/WindowSize.kt +22 -0
  242. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/settings/AbstractSetting.kt +23 -0
  243. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/settings/DriverSetting.kt +40 -0
  244. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/settings/SettingType.kt +21 -0
  245. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/web/WebAtom.kt +26 -0
  246. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/web/WebAtomDeserializer.kt +99 -0
  247. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/web/WebAtomsMethods.kt +4 -0
  248. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/web/WebAtomsParams.kt +9 -0
  249. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewaction/OrientationChange.kt +47 -0
  250. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewaction/ScrollTo.kt +48 -0
  251. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewaction/UiControllerPerformer.kt +67 -0
  252. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewaction/UiControllerRunnable.kt +25 -0
  253. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewaction/ViewGetter.kt +79 -0
  254. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewaction/ViewTextGetter.kt +31 -0
  255. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewmatcher/RegexpTextMatcher.kt +38 -0
  256. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewmatcher/WithView.kt +33 -0
  257. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/viewmatcher/WithXPath.kt +55 -0
  258. package/espresso-server/app/src/main/AndroidManifest.xml +7 -0
  259. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/assets/Helpers.kt +20 -0
  260. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/assets/backdoor-methods.json +51 -0
  261. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/assets/key-actions.json +15 -0
  262. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/assets/multi-touch-actions.json +28 -0
  263. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/GsonParserHelpersTest.kt +41 -0
  264. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/IntentCreationTests.kt +115 -0
  265. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/InvocationOperationTest.java +97 -0
  266. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/KReflectionUtilsTest.kt +108 -0
  267. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/XpathQueryParserTests.kt +42 -0
  268. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/ActionSequenceTest.kt +220 -0
  269. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/ActionsTest.kt +76 -0
  270. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/CapsUtilsTest.kt +76 -0
  271. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/Helpers.kt +7 -0
  272. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/InputSourceTest.kt +153 -0
  273. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/InputStateTableTest.kt +72 -0
  274. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/KeyDispatchTest.kt +133 -0
  275. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/KeyInputStateTest.kt +74 -0
  276. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/PointerDispatchTest.kt +370 -0
  277. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/ProcessorTest.kt +320 -0
  278. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/TickTest.kt +265 -0
  279. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/adapter/AndroidKeyEventTest.kt +114 -0
  280. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/helpers/w3c/adapter/HelpersTest.kt +31 -0
  281. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/http/RouteDefinitionTest.kt +74 -0
  282. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/HamcrestMatcherTest.kt +112 -0
  283. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/MatcherJsonTest.kt +20 -0
  284. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/MobileBackdoorMethodTest.java +110 -0
  285. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/MobileClickTest.kt +46 -0
  286. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/MobileSwipeTest.kt +68 -0
  287. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/TouchActionTest.kt +56 -0
  288. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/web/WebAtomTest.kt +68 -0
  289. package/espresso-server/app/src/test/java/io/appium/espressoserver/test/model/web/WebAtomsTest.kt +96 -0
  290. package/espresso-server/build.gradle.kts +33 -0
  291. package/espresso-server/gradle/wrapper/gradle-wrapper.jar +0 -0
  292. package/espresso-server/gradle/wrapper/gradle-wrapper.properties +5 -0
  293. package/espresso-server/gradle.properties +26 -0
  294. package/espresso-server/gradlew +185 -0
  295. package/espresso-server/gradlew.bat +89 -0
  296. package/espresso-server/lint.xml +4 -0
  297. package/espresso-server/settings.gradle.kts +1 -0
  298. package/index.js +29 -0
  299. package/lib/commands/execute.js +72 -0
  300. package/lib/commands/general.js +321 -0
  301. package/lib/commands/idling-resources.js +52 -0
  302. package/lib/commands/index.js +16 -0
  303. package/lib/commands/services.js +50 -0
  304. package/lib/desired-caps.js +55 -0
  305. package/lib/driver.js +566 -0
  306. package/lib/espresso-runner.js +340 -0
  307. package/lib/logger.js +6 -0
  308. package/lib/server-builder.js +194 -0
  309. package/lib/server.js +18 -0
  310. package/lib/utils.js +74 -0
  311. package/package.json +105 -0
package/build/index.js ADDED
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.startServer = exports.EspressoDriver = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _asyncbox = require("asyncbox");
13
+
14
+ var driver = _interopRequireWildcard(require("./lib/driver"));
15
+
16
+ var server = _interopRequireWildcard(require("./lib/server"));
17
+
18
+ const {
19
+ EspressoDriver
20
+ } = driver;
21
+ exports.EspressoDriver = EspressoDriver;
22
+ const {
23
+ startServer
24
+ } = server;
25
+ exports.startServer = startServer;
26
+ const DEFAULT_HOST = 'localhost';
27
+ const DEFAULT_PORT = 4884;
28
+
29
+ async function main() {
30
+ const getArgValue = argName => {
31
+ const argIndex = process.argv.indexOf(argName);
32
+ return argIndex > 0 ? process.argv[argIndex + 1] : null;
33
+ };
34
+
35
+ const port = parseInt(getArgValue('--port'), 10) || DEFAULT_PORT;
36
+ const host = getArgValue('--host') || DEFAULT_HOST;
37
+ return await startServer(port, host);
38
+ }
39
+
40
+ if (require.main === module) {
41
+ (0, _asyncbox.asyncify)(main);
42
+ }
43
+
44
+ var _default = EspressoDriver;
45
+ exports.default = _default;require('source-map-support').install();
46
+
47
+
48
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIkVzcHJlc3NvRHJpdmVyIiwiZHJpdmVyIiwic3RhcnRTZXJ2ZXIiLCJzZXJ2ZXIiLCJERUZBVUxUX0hPU1QiLCJERUZBVUxUX1BPUlQiLCJtYWluIiwiZ2V0QXJnVmFsdWUiLCJhcmdOYW1lIiwiYXJnSW5kZXgiLCJwcm9jZXNzIiwiYXJndiIsImluZGV4T2YiLCJwb3J0IiwicGFyc2VJbnQiLCJob3N0IiwicmVxdWlyZSIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBcUJDLE1BQTNCOztBQUNBLE1BQU07QUFBRUMsRUFBQUE7QUFBRixJQUFrQkMsTUFBeEI7O0FBRUEsTUFBTUMsWUFBWSxHQUFHLFdBQXJCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLElBQXJCOztBQUVBLGVBQWVDLElBQWYsR0FBdUI7QUFDckIsUUFBTUMsV0FBVyxHQUFJQyxPQUFELElBQWE7QUFDL0IsVUFBTUMsUUFBUSxHQUFHQyxPQUFPLENBQUNDLElBQVIsQ0FBYUMsT0FBYixDQUFxQkosT0FBckIsQ0FBakI7QUFDQSxXQUFPQyxRQUFRLEdBQUcsQ0FBWCxHQUFlQyxPQUFPLENBQUNDLElBQVIsQ0FBYUYsUUFBUSxHQUFHLENBQXhCLENBQWYsR0FBNEMsSUFBbkQ7QUFDRCxHQUhEOztBQUlBLFFBQU1JLElBQUksR0FBR0MsUUFBUSxDQUFDUCxXQUFXLENBQUMsUUFBRCxDQUFaLEVBQXdCLEVBQXhCLENBQVIsSUFBdUNGLFlBQXBEO0FBQ0EsUUFBTVUsSUFBSSxHQUFHUixXQUFXLENBQUMsUUFBRCxDQUFYLElBQXlCSCxZQUF0QztBQUNBLFNBQU8sTUFBTUYsV0FBVyxDQUFDVyxJQUFELEVBQU9FLElBQVAsQ0FBeEI7QUFDRDs7QUFFRCxJQUFJQyxPQUFPLENBQUNWLElBQVIsS0FBaUJXLE1BQXJCLEVBQTZCO0FBQzNCLDBCQUFTWCxJQUFUO0FBQ0Q7O2VBR2NOLGMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0cmFuc3BpbGU6bWFpblxuXG5pbXBvcnQgeyBhc3luY2lmeSB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCAqIGFzIGRyaXZlciBmcm9tICcuL2xpYi9kcml2ZXInO1xuaW1wb3J0ICogYXMgc2VydmVyIGZyb20gJy4vbGliL3NlcnZlcic7XG5cblxuY29uc3QgeyBFc3ByZXNzb0RyaXZlciB9ID0gZHJpdmVyO1xuY29uc3QgeyBzdGFydFNlcnZlciB9ID0gc2VydmVyO1xuXG5jb25zdCBERUZBVUxUX0hPU1QgPSAnbG9jYWxob3N0JztcbmNvbnN0IERFRkFVTFRfUE9SVCA9IDQ4ODQ7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4gKCkge1xuICBjb25zdCBnZXRBcmdWYWx1ZSA9IChhcmdOYW1lKSA9PiB7XG4gICAgY29uc3QgYXJnSW5kZXggPSBwcm9jZXNzLmFyZ3YuaW5kZXhPZihhcmdOYW1lKTtcbiAgICByZXR1cm4gYXJnSW5kZXggPiAwID8gcHJvY2Vzcy5hcmd2W2FyZ0luZGV4ICsgMV0gOiBudWxsO1xuICB9O1xuICBjb25zdCBwb3J0ID0gcGFyc2VJbnQoZ2V0QXJnVmFsdWUoJy0tcG9ydCcpLCAxMCkgfHwgREVGQVVMVF9QT1JUO1xuICBjb25zdCBob3N0ID0gZ2V0QXJnVmFsdWUoJy0taG9zdCcpIHx8IERFRkFVTFRfSE9TVDtcbiAgcmV0dXJuIGF3YWl0IHN0YXJ0U2VydmVyKHBvcnQsIGhvc3QpO1xufVxuXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgYXN5bmNpZnkobWFpbik7XG59XG5cbmV4cG9ydCB7IEVzcHJlc3NvRHJpdmVyLCBzdGFydFNlcnZlciB9O1xuZXhwb3J0IGRlZmF1bHQgRXNwcmVzc29Ecml2ZXI7XG4iXSwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uIn0=
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _lodash = _interopRequireDefault(require("lodash"));
13
+
14
+ var _appiumBaseDriver = require("appium-base-driver");
15
+
16
+ let extensions = {};
17
+
18
+ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}) {
19
+ const mobileCommandsMapping = {
20
+ shell: 'mobileShell',
21
+ execEmuConsoleCommand: 'mobileExecEmuConsoleCommand',
22
+ performEditorAction: 'mobilePerformEditorAction',
23
+ changePermissions: 'mobileChangePermissions',
24
+ getPermissions: 'mobileGetPermissions',
25
+ startScreenStreaming: 'mobileStartScreenStreaming',
26
+ stopScreenStreaming: 'mobileStopScreenStreaming',
27
+ swipe: 'mobileSwipe',
28
+ scrollToPage: 'mobileScrollToPage',
29
+ navigateTo: 'mobileNavigateTo',
30
+ clickAction: 'mobileClickAction',
31
+ deviceInfo: 'mobileGetDeviceInfo',
32
+ isToastVisible: 'mobileIsToastVisible',
33
+ openDrawer: 'mobileOpenDrawer',
34
+ closeDrawer: 'mobileCloseDrawer',
35
+ setDate: 'mobileSetDate',
36
+ setTime: 'mobileSetTime',
37
+ getDeviceTime: 'mobileGetDeviceTime',
38
+ backdoor: 'mobileBackdoor',
39
+ flashElement: 'mobileFlashElement',
40
+ uiautomator: 'mobileUiautomator',
41
+ uiautomatorPageSource: 'mobileUiautomatorPageSource',
42
+ webAtoms: 'mobileWebAtoms',
43
+ getContexts: 'mobileGetContexts',
44
+ dismissAutofill: 'mobileDismissAutofill',
45
+ getNotifications: 'mobileGetNotifications',
46
+ listSms: 'mobileListSms',
47
+ sensorSet: 'sensorSet',
48
+ deleteFile: 'mobileDeleteFile',
49
+ startService: 'mobileStartService',
50
+ stopService: 'mobileStopService',
51
+ registerIdlingResources: 'mobileRegisterIdlingResources',
52
+ unregisterIdlingResources: 'mobileUnregisterIdlingResources',
53
+ listIdlingResources: 'mobileListIdlingResources'
54
+ };
55
+
56
+ if (!_lodash.default.has(mobileCommandsMapping, mobileCommand)) {
57
+ throw new _appiumBaseDriver.errors.UnknownCommandError(`Unknown mobile command "${mobileCommand}". ` + `Only ${_lodash.default.keys(mobileCommandsMapping)} commands are supported.`);
58
+ }
59
+
60
+ return await this[mobileCommandsMapping[mobileCommand]](opts);
61
+ };
62
+
63
+ var _default = extensions;
64
+ exports.default = _default;require('source-map-support').install();
65
+
66
+
67
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJleGVjdXRlTW9iaWxlIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJtb2JpbGVDb21tYW5kc01hcHBpbmciLCJzaGVsbCIsImV4ZWNFbXVDb25zb2xlQ29tbWFuZCIsInBlcmZvcm1FZGl0b3JBY3Rpb24iLCJjaGFuZ2VQZXJtaXNzaW9ucyIsImdldFBlcm1pc3Npb25zIiwic3RhcnRTY3JlZW5TdHJlYW1pbmciLCJzdG9wU2NyZWVuU3RyZWFtaW5nIiwic3dpcGUiLCJzY3JvbGxUb1BhZ2UiLCJuYXZpZ2F0ZVRvIiwiY2xpY2tBY3Rpb24iLCJkZXZpY2VJbmZvIiwiaXNUb2FzdFZpc2libGUiLCJvcGVuRHJhd2VyIiwiY2xvc2VEcmF3ZXIiLCJzZXREYXRlIiwic2V0VGltZSIsImdldERldmljZVRpbWUiLCJiYWNrZG9vciIsImZsYXNoRWxlbWVudCIsInVpYXV0b21hdG9yIiwidWlhdXRvbWF0b3JQYWdlU291cmNlIiwid2ViQXRvbXMiLCJnZXRDb250ZXh0cyIsImRpc21pc3NBdXRvZmlsbCIsImdldE5vdGlmaWNhdGlvbnMiLCJsaXN0U21zIiwic2Vuc29yU2V0IiwiZGVsZXRlRmlsZSIsInN0YXJ0U2VydmljZSIsInN0b3BTZXJ2aWNlIiwicmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJ1bnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwibGlzdElkbGluZ1Jlc291cmNlcyIsIl8iLCJoYXMiLCJlcnJvcnMiLCJVbmtub3duQ29tbWFuZEVycm9yIiwia2V5cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxJQUFJQSxVQUFVLEdBQUcsRUFBakI7O0FBRUFBLFVBQVUsQ0FBQ0MsYUFBWCxHQUEyQixlQUFlQSxhQUFmLENBQThCQyxhQUE5QixFQUE2Q0MsSUFBSSxHQUFHLEVBQXBELEVBQXdEO0FBQ2pGLFFBQU1DLHFCQUFxQixHQUFHO0FBQzVCQyxJQUFBQSxLQUFLLEVBQUUsYUFEcUI7QUFHNUJDLElBQUFBLHFCQUFxQixFQUFFLDZCQUhLO0FBSzVCQyxJQUFBQSxtQkFBbUIsRUFBRSwyQkFMTztBQU81QkMsSUFBQUEsaUJBQWlCLEVBQUUseUJBUFM7QUFRNUJDLElBQUFBLGNBQWMsRUFBRSxzQkFSWTtBQVU1QkMsSUFBQUEsb0JBQW9CLEVBQUUsNEJBVk07QUFXNUJDLElBQUFBLG1CQUFtQixFQUFFLDJCQVhPO0FBYTVCQyxJQUFBQSxLQUFLLEVBQUUsYUFicUI7QUFjNUJDLElBQUFBLFlBQVksRUFBRSxvQkFkYztBQWU1QkMsSUFBQUEsVUFBVSxFQUFFLGtCQWZnQjtBQWdCNUJDLElBQUFBLFdBQVcsRUFBRSxtQkFoQmU7QUFrQjVCQyxJQUFBQSxVQUFVLEVBQUUscUJBbEJnQjtBQW9CNUJDLElBQUFBLGNBQWMsRUFBRSxzQkFwQlk7QUFzQjVCQyxJQUFBQSxVQUFVLEVBQUUsa0JBdEJnQjtBQXVCNUJDLElBQUFBLFdBQVcsRUFBRSxtQkF2QmU7QUF5QjVCQyxJQUFBQSxPQUFPLEVBQUUsZUF6Qm1CO0FBMEI1QkMsSUFBQUEsT0FBTyxFQUFFLGVBMUJtQjtBQTRCNUJDLElBQUFBLGFBQWEsRUFBRSxxQkE1QmE7QUE4QjVCQyxJQUFBQSxRQUFRLEVBQUUsZ0JBOUJrQjtBQWdDNUJDLElBQUFBLFlBQVksRUFBRSxvQkFoQ2M7QUFrQzVCQyxJQUFBQSxXQUFXLEVBQUUsbUJBbENlO0FBbUM1QkMsSUFBQUEscUJBQXFCLEVBQUUsNkJBbkNLO0FBcUM1QkMsSUFBQUEsUUFBUSxFQUFFLGdCQXJDa0I7QUFzQzVCQyxJQUFBQSxXQUFXLEVBQUUsbUJBdENlO0FBd0M1QkMsSUFBQUEsZUFBZSxFQUFFLHVCQXhDVztBQTBDNUJDLElBQUFBLGdCQUFnQixFQUFFLHdCQTFDVTtBQTRDNUJDLElBQUFBLE9BQU8sRUFBRSxlQTVDbUI7QUE4QzVCQyxJQUFBQSxTQUFTLEVBQUUsV0E5Q2lCO0FBZ0Q1QkMsSUFBQUEsVUFBVSxFQUFFLGtCQWhEZ0I7QUFrRDVCQyxJQUFBQSxZQUFZLEVBQUUsb0JBbERjO0FBbUQ1QkMsSUFBQUEsV0FBVyxFQUFFLG1CQW5EZTtBQXFENUJDLElBQUFBLHVCQUF1QixFQUFFLCtCQXJERztBQXNENUJDLElBQUFBLHlCQUF5QixFQUFFLGlDQXREQztBQXVENUJDLElBQUFBLG1CQUFtQixFQUFFO0FBdkRPLEdBQTlCOztBQTBEQSxNQUFJLENBQUNDLGdCQUFFQyxHQUFGLENBQU1wQyxxQkFBTixFQUE2QkYsYUFBN0IsQ0FBTCxFQUFrRDtBQUNoRCxVQUFNLElBQUl1Qyx5QkFBT0MsbUJBQVgsQ0FBZ0MsMkJBQTBCeEMsYUFBYyxLQUF6QyxHQUNsQyxRQUFPcUMsZ0JBQUVJLElBQUYsQ0FBT3ZDLHFCQUFQLENBQThCLDBCQURsQyxDQUFOO0FBRUQ7O0FBQ0QsU0FBTyxNQUFNLEtBQUtBLHFCQUFxQixDQUFDRixhQUFELENBQTFCLEVBQTJDQyxJQUEzQyxDQUFiO0FBQ0QsQ0FoRUQ7O2VBa0VlSCxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS1iYXNlLWRyaXZlcic7XG5cbmxldCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBtb2JpbGVDb21tYW5kc01hcHBpbmcgPSB7XG4gICAgc2hlbGw6ICdtb2JpbGVTaGVsbCcsXG5cbiAgICBleGVjRW11Q29uc29sZUNvbW1hbmQ6ICdtb2JpbGVFeGVjRW11Q29uc29sZUNvbW1hbmQnLFxuXG4gICAgcGVyZm9ybUVkaXRvckFjdGlvbjogJ21vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24nLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBzdGFydFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0YXJ0U2NyZWVuU3RyZWFtaW5nJyxcbiAgICBzdG9wU2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RvcFNjcmVlblN0cmVhbWluZycsXG5cbiAgICBzd2lwZTogJ21vYmlsZVN3aXBlJyxcbiAgICBzY3JvbGxUb1BhZ2U6ICdtb2JpbGVTY3JvbGxUb1BhZ2UnLFxuICAgIG5hdmlnYXRlVG86ICdtb2JpbGVOYXZpZ2F0ZVRvJyxcbiAgICBjbGlja0FjdGlvbjogJ21vYmlsZUNsaWNrQWN0aW9uJyxcblxuICAgIGRldmljZUluZm86ICdtb2JpbGVHZXREZXZpY2VJbmZvJyxcblxuICAgIGlzVG9hc3RWaXNpYmxlOiAnbW9iaWxlSXNUb2FzdFZpc2libGUnLFxuXG4gICAgb3BlbkRyYXdlcjogJ21vYmlsZU9wZW5EcmF3ZXInLFxuICAgIGNsb3NlRHJhd2VyOiAnbW9iaWxlQ2xvc2VEcmF3ZXInLFxuXG4gICAgc2V0RGF0ZTogJ21vYmlsZVNldERhdGUnLFxuICAgIHNldFRpbWU6ICdtb2JpbGVTZXRUaW1lJyxcblxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcblxuICAgIGJhY2tkb29yOiAnbW9iaWxlQmFja2Rvb3InLFxuXG4gICAgZmxhc2hFbGVtZW50OiAnbW9iaWxlRmxhc2hFbGVtZW50JyxcblxuICAgIHVpYXV0b21hdG9yOiAnbW9iaWxlVWlhdXRvbWF0b3InLFxuICAgIHVpYXV0b21hdG9yUGFnZVNvdXJjZTogJ21vYmlsZVVpYXV0b21hdG9yUGFnZVNvdXJjZScsXG5cbiAgICB3ZWJBdG9tczogJ21vYmlsZVdlYkF0b21zJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIGRpc21pc3NBdXRvZmlsbDogJ21vYmlsZURpc21pc3NBdXRvZmlsbCcsXG5cbiAgICBnZXROb3RpZmljYXRpb25zOiAnbW9iaWxlR2V0Tm90aWZpY2F0aW9ucycsXG5cbiAgICBsaXN0U21zOiAnbW9iaWxlTGlzdFNtcycsXG5cbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgc3RhcnRTZXJ2aWNlOiAnbW9iaWxlU3RhcnRTZXJ2aWNlJyxcbiAgICBzdG9wU2VydmljZTogJ21vYmlsZVN0b3BTZXJ2aWNlJyxcblxuICAgIHJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIHVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzJyxcbiAgICBsaXN0SWRsaW5nUmVzb3VyY2VzOiAnbW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcycsXG4gIH07XG5cbiAgaWYgKCFfLmhhcyhtb2JpbGVDb21tYW5kc01hcHBpbmcsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kIFwiJHttb2JpbGVDb21tYW5kfVwiLiBgICtcbiAgICAgIGBPbmx5ICR7Xy5rZXlzKG1vYmlsZUNvbW1hbmRzTWFwcGluZyl9IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXNbbW9iaWxlQ29tbWFuZHNNYXBwaW5nW21vYmlsZUNvbW1hbmRdXShvcHRzKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -0,0 +1,337 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.helpers = exports.commands = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _lodash = _interopRequireDefault(require("lodash"));
13
+
14
+ var _appiumSupport = require("appium-support");
15
+
16
+ var _logger = _interopRequireDefault(require("../logger"));
17
+
18
+ var _validate = _interopRequireDefault(require("validate.js"));
19
+
20
+ var _appiumBaseDriver = require("appium-base-driver");
21
+
22
+ var _utils = require("../utils");
23
+
24
+ let commands = {},
25
+ helpers = {},
26
+ extensions = {};
27
+ exports.helpers = helpers;
28
+ exports.commands = commands;
29
+
30
+ function assertRequiredOptions(options, requiredOptionNames) {
31
+ if (!_lodash.default.isArray(requiredOptionNames)) {
32
+ requiredOptionNames = [requiredOptionNames];
33
+ }
34
+
35
+ const presentOptionNames = _lodash.default.keys(options);
36
+
37
+ const missingOptionNames = _lodash.default.difference(requiredOptionNames, presentOptionNames);
38
+
39
+ if (_lodash.default.isEmpty(missingOptionNames)) {
40
+ return options;
41
+ }
42
+
43
+ throw new Error(`The following options are required: ${JSON.stringify(missingOptionNames)}. ` + `You have only provided: ${JSON.stringify(presentOptionNames)}`);
44
+ }
45
+
46
+ commands.launchApp = async function launchApp() {
47
+ throw new _appiumBaseDriver.errors.UnsupportedOperationError('Please create a new session in order to launch the application under test');
48
+ };
49
+
50
+ commands.closeApp = async function closeApp() {
51
+ throw new _appiumBaseDriver.errors.UnsupportedOperationError('Please quit the session in order to close the application under test');
52
+ };
53
+
54
+ commands.reset = async function reset() {
55
+ throw new _appiumBaseDriver.errors.UnsupportedOperationError('Please quit the session and create a new one ' + 'in order to close and launch the application under test');
56
+ };
57
+
58
+ commands.getClipboard = async function getClipboard() {
59
+ return (await this.adb.getApiLevel()) < 29 ? await this.espresso.jwproxy.command('/appium/device/get_clipboard', 'POST', {}) : await this.adb.getClipboard();
60
+ };
61
+
62
+ commands.mobilePerformEditorAction = async function mobilePerformEditorAction(opts = {}) {
63
+ const {
64
+ action
65
+ } = assertRequiredOptions(opts, ['action']);
66
+ return await this.espresso.jwproxy.command('/appium/device/perform_editor_action', 'POST', {
67
+ action
68
+ });
69
+ };
70
+
71
+ commands.mobileSwipe = async function mobileSwipe(opts = {}) {
72
+ const {
73
+ direction,
74
+ element,
75
+ swiper,
76
+ startCoordinates,
77
+ endCoordinates,
78
+ precisionDescriber
79
+ } = assertRequiredOptions(opts, ['element']);
80
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/swipe`, 'POST', {
81
+ direction,
82
+ element,
83
+ swiper,
84
+ startCoordinates,
85
+ endCoordinates,
86
+ precisionDescriber
87
+ });
88
+ };
89
+
90
+ commands.mobileGetDeviceInfo = async function mobileGetDeviceInfo() {
91
+ return await this.espresso.jwproxy.command('/appium/device/info', 'GET');
92
+ };
93
+
94
+ commands.mobileIsToastVisible = async function mobileIsToastVisible(opts = {}) {
95
+ const {
96
+ text,
97
+ isRegexp
98
+ } = opts;
99
+
100
+ if (!_appiumSupport.util.hasValue(text)) {
101
+ _logger.default.errorAndThrow(`'text' argument is mandatory`);
102
+ }
103
+
104
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/is_toast_displayed', 'POST', {
105
+ text,
106
+ isRegexp
107
+ });
108
+ };
109
+
110
+ commands.mobileOpenDrawer = async function mobileOpenDrawer(opts = {}) {
111
+ const {
112
+ element,
113
+ gravity
114
+ } = assertRequiredOptions(opts, ['element']);
115
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/open_drawer`, 'POST', {
116
+ gravity
117
+ });
118
+ };
119
+
120
+ commands.mobileCloseDrawer = async function mobileCloseDrawer(opts = {}) {
121
+ const {
122
+ element,
123
+ gravity
124
+ } = assertRequiredOptions(opts, ['element']);
125
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/close_drawer`, 'POST', {
126
+ gravity
127
+ });
128
+ };
129
+
130
+ commands.mobileSetDate = async function mobileSetDate(opts = {}) {
131
+ const {
132
+ element,
133
+ year,
134
+ monthOfYear,
135
+ dayOfMonth
136
+ } = assertRequiredOptions(opts, ['element', 'year', 'monthOfYear', 'dayOfMonth']);
137
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/set_date`, 'POST', {
138
+ year,
139
+ monthOfYear,
140
+ dayOfMonth
141
+ });
142
+ };
143
+
144
+ commands.mobileSetTime = async function mobileSetTime(opts = {}) {
145
+ const {
146
+ element,
147
+ hours,
148
+ minutes
149
+ } = assertRequiredOptions(opts, ['element', 'hours', 'minutes']);
150
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/set_time`, 'POST', {
151
+ hours,
152
+ minutes
153
+ });
154
+ };
155
+
156
+ commands.mobileNavigateTo = async function mobileNavigateTo(opts = {}) {
157
+ let {
158
+ element,
159
+ menuItemId
160
+ } = assertRequiredOptions(opts, ['menuItemId', 'element']);
161
+ let menuItemIdAsNumber = parseInt(menuItemId, 10);
162
+
163
+ if (_lodash.default.isNaN(menuItemIdAsNumber) || menuItemIdAsNumber < 0) {
164
+ _logger.default.errorAndThrow(`'menuItemId' must be a non-negative number. Found ${menuItemId}`);
165
+
166
+ menuItemId = menuItemIdAsNumber;
167
+ }
168
+
169
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/navigate_to`, 'POST', {
170
+ menuItemId
171
+ });
172
+ };
173
+
174
+ commands.mobileWebAtoms = async function mobileWebAtoms(opts = {}) {
175
+ opts = assertRequiredOptions(opts, ['methodChain']);
176
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/web_atoms`, 'POST', opts);
177
+ };
178
+
179
+ commands.mobileScrollToPage = async function mobileScrollToPage(opts = {}) {
180
+ const scrollToTypes = ['first', 'last', 'left', 'right'];
181
+ const res = (0, _validate.default)(opts, {
182
+ element: {
183
+ presence: true
184
+ },
185
+ scrollTo: {
186
+ inclusion: {
187
+ within: scrollToTypes,
188
+ message: `"scrollTo" must be one of "${scrollToTypes.join(', ')}" found '%{value}'`
189
+ }
190
+ },
191
+ scrollToPage: {
192
+ numericality: {
193
+ onlyInteger: true,
194
+ greaterThanOrEqualTo: 0,
195
+ message: `"scrollToPage" must be a non-negative integer. Found '%{value}'`
196
+ }
197
+ }
198
+ });
199
+
200
+ if (_appiumSupport.util.hasValue(res)) {
201
+ _logger.default.errorAndThrow(`Invalid scrollTo parameters: ${JSON.stringify(res)}`);
202
+ }
203
+
204
+ const {
205
+ element,
206
+ scrollTo,
207
+ scrollToPage,
208
+ smoothScroll
209
+ } = opts;
210
+
211
+ if (_appiumSupport.util.hasValue(scrollTo) && _appiumSupport.util.hasValue(scrollToPage)) {
212
+ _logger.default.warn(`'scrollTo' and 'scrollToPage' where both provided. Defaulting to 'scrollTo'`);
213
+ }
214
+
215
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/scroll_to_page`, 'POST', {
216
+ scrollTo,
217
+ scrollToPage,
218
+ smoothScroll
219
+ });
220
+ };
221
+
222
+ commands.mobileBackdoor = async function mobileBackdoor(opts = {}) {
223
+ assertRequiredOptions(opts, ['target', 'methods']);
224
+ const {
225
+ target,
226
+ methods
227
+ } = opts;
228
+
229
+ if (target === 'element') {
230
+ assertRequiredOptions(opts, ['elementId']);
231
+ }
232
+
233
+ const {
234
+ elementId: targetElement
235
+ } = opts;
236
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/backdoor`, 'POST', {
237
+ target,
238
+ methods,
239
+ targetElement
240
+ });
241
+ };
242
+
243
+ commands.mobileUiautomator = async function mobileUiautomator(opts = {}) {
244
+ const {
245
+ strategy,
246
+ locator,
247
+ action,
248
+ index
249
+ } = assertRequiredOptions(opts, ['strategy', 'locator', 'action']);
250
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/uiautomator`, 'POST', {
251
+ strategy,
252
+ locator,
253
+ index,
254
+ action
255
+ });
256
+ };
257
+
258
+ commands.mobileUiautomatorPageSource = async function mobileUiautomatorPageSource() {
259
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/uiautomator_page_source`, 'GET');
260
+ };
261
+
262
+ commands.mobileFlashElement = async function mobileFlashElement(opts = {}) {
263
+ const {
264
+ element
265
+ } = assertRequiredOptions(opts, ['element']);
266
+ const {
267
+ durationMillis,
268
+ repeatCount
269
+ } = opts;
270
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/flash`, 'POST', {
271
+ durationMillis,
272
+ repeatCount
273
+ });
274
+ };
275
+
276
+ commands.mobileClickAction = async function mobileClickAction(opts = {}) {
277
+ const {
278
+ element,
279
+ tapper,
280
+ coordinatesProvider,
281
+ precisionDescriber,
282
+ inputDevice,
283
+ buttonState
284
+ } = assertRequiredOptions(opts, ['element']);
285
+ return await this.espresso.jwproxy.command(`/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/click_action`, 'POST', {
286
+ tapper,
287
+ coordinatesProvider,
288
+ precisionDescriber,
289
+ inputDevice,
290
+ buttonState
291
+ });
292
+ };
293
+
294
+ commands.updateSettings = async function updateSettings(settings) {
295
+ return await this.espresso.jwproxy.command(`/appium/settings`, 'POST', {
296
+ settings
297
+ });
298
+ };
299
+
300
+ commands.getSettings = async function getSettings() {
301
+ return await this.espresso.jwproxy.command(`/appium/settings`, 'GET');
302
+ };
303
+
304
+ helpers.suspendChromedriverProxy = function suspendChromedriverProxy() {
305
+ this.chromedriver = null;
306
+ this.proxyReqRes = this.espresso.proxyReqRes.bind(this.espresso);
307
+ this.jwpProxyActive = true;
308
+ };
309
+
310
+ commands.startActivity = async function startActivity(appPackage, appActivity, appWaitPackage, appWaitActivity) {
311
+ appPackage = appPackage || this.caps.appPackage;
312
+ appWaitPackage = appWaitPackage || appPackage;
313
+ appActivity = (0, _utils.qualifyActivityName)(appActivity, appPackage);
314
+ appWaitActivity = (0, _utils.qualifyActivityName)(appWaitActivity || appActivity, appWaitPackage);
315
+
316
+ _logger.default.debug(`Starting activity '${appActivity}' for package '${appPackage}'`);
317
+
318
+ await this.espresso.jwproxy.command(`/appium/device/start_activity`, 'POST', {
319
+ appPackage,
320
+ appActivity
321
+ });
322
+ await this.adb.waitForActivity(appWaitPackage, appWaitActivity);
323
+ };
324
+
325
+ commands.mobileDismissAutofill = async function mobileDismissAutofill(opts = {}) {
326
+ const {
327
+ element
328
+ } = assertRequiredOptions(opts, ['element']);
329
+ await this.espresso.jwproxy.command(`/session/:sessionId/appium/execute_mobile/${_appiumSupport.util.unwrapElement(element)}/dismiss_autofill`, 'POST', {});
330
+ };
331
+
332
+ Object.assign(extensions, commands, helpers);
333
+ var _default = extensions;
334
+ exports.default = _default;require('source-map-support').install();
335
+
336
+
337
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZW5lcmFsLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJhc3NlcnRSZXF1aXJlZE9wdGlvbnMiLCJvcHRpb25zIiwicmVxdWlyZWRPcHRpb25OYW1lcyIsIl8iLCJpc0FycmF5IiwicHJlc2VudE9wdGlvbk5hbWVzIiwia2V5cyIsIm1pc3NpbmdPcHRpb25OYW1lcyIsImRpZmZlcmVuY2UiLCJpc0VtcHR5IiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwibGF1bmNoQXBwIiwiZXJyb3JzIiwiVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvciIsImNsb3NlQXBwIiwicmVzZXQiLCJnZXRDbGlwYm9hcmQiLCJhZGIiLCJnZXRBcGlMZXZlbCIsImVzcHJlc3NvIiwiandwcm94eSIsImNvbW1hbmQiLCJtb2JpbGVQZXJmb3JtRWRpdG9yQWN0aW9uIiwib3B0cyIsImFjdGlvbiIsIm1vYmlsZVN3aXBlIiwiZGlyZWN0aW9uIiwiZWxlbWVudCIsInN3aXBlciIsInN0YXJ0Q29vcmRpbmF0ZXMiLCJlbmRDb29yZGluYXRlcyIsInByZWNpc2lvbkRlc2NyaWJlciIsInV0aWwiLCJ1bndyYXBFbGVtZW50IiwibW9iaWxlR2V0RGV2aWNlSW5mbyIsIm1vYmlsZUlzVG9hc3RWaXNpYmxlIiwidGV4dCIsImlzUmVnZXhwIiwiaGFzVmFsdWUiLCJsb2dnZXIiLCJlcnJvckFuZFRocm93IiwibW9iaWxlT3BlbkRyYXdlciIsImdyYXZpdHkiLCJtb2JpbGVDbG9zZURyYXdlciIsIm1vYmlsZVNldERhdGUiLCJ5ZWFyIiwibW9udGhPZlllYXIiLCJkYXlPZk1vbnRoIiwibW9iaWxlU2V0VGltZSIsImhvdXJzIiwibWludXRlcyIsIm1vYmlsZU5hdmlnYXRlVG8iLCJtZW51SXRlbUlkIiwibWVudUl0ZW1JZEFzTnVtYmVyIiwicGFyc2VJbnQiLCJpc05hTiIsIm1vYmlsZVdlYkF0b21zIiwibW9iaWxlU2Nyb2xsVG9QYWdlIiwic2Nyb2xsVG9UeXBlcyIsInJlcyIsInByZXNlbmNlIiwic2Nyb2xsVG8iLCJpbmNsdXNpb24iLCJ3aXRoaW4iLCJtZXNzYWdlIiwiam9pbiIsInNjcm9sbFRvUGFnZSIsIm51bWVyaWNhbGl0eSIsIm9ubHlJbnRlZ2VyIiwiZ3JlYXRlclRoYW5PckVxdWFsVG8iLCJzbW9vdGhTY3JvbGwiLCJ3YXJuIiwibW9iaWxlQmFja2Rvb3IiLCJ0YXJnZXQiLCJtZXRob2RzIiwiZWxlbWVudElkIiwidGFyZ2V0RWxlbWVudCIsIm1vYmlsZVVpYXV0b21hdG9yIiwic3RyYXRlZ3kiLCJsb2NhdG9yIiwiaW5kZXgiLCJtb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJtb2JpbGVGbGFzaEVsZW1lbnQiLCJkdXJhdGlvbk1pbGxpcyIsInJlcGVhdENvdW50IiwibW9iaWxlQ2xpY2tBY3Rpb24iLCJ0YXBwZXIiLCJjb29yZGluYXRlc1Byb3ZpZGVyIiwiaW5wdXREZXZpY2UiLCJidXR0b25TdGF0ZSIsInVwZGF0ZVNldHRpbmdzIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsInN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSIsImNocm9tZWRyaXZlciIsInByb3h5UmVxUmVzIiwiYmluZCIsImp3cFByb3h5QWN0aXZlIiwic3RhcnRBY3Rpdml0eSIsImFwcFBhY2thZ2UiLCJhcHBBY3Rpdml0eSIsImFwcFdhaXRQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5IiwiY2FwcyIsImRlYnVnIiwid2FpdEZvckFjdGl2aXR5IiwibW9iaWxlRGlzbWlzc0F1dG9maWxsIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFVLEdBQUcsRUFBOUM7Ozs7QUFFQSxTQUFTQyxxQkFBVCxDQUFnQ0MsT0FB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SkQ7O0FBTUFnRixNQUFNLENBQUNDLE1BQVAsQ0FBYy9HLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgdmFsaWRhdGUgZnJvbSAndmFsaWRhdGUuanMnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtLWJhc2UtZHJpdmVyJztcbmltcG9ydCB7IHF1YWxpZnlBY3Rpdml0eU5hbWUgfSBmcm9tICcuLi91dGlscyc7XG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gYXNzZXJ0UmVxdWlyZWRPcHRpb25zIChvcHRpb25zLCByZXF1aXJlZE9wdGlvbk5hbWVzKSB7XG4gIGlmICghXy5pc0FycmF5KHJlcXVpcmVkT3B0aW9uTmFtZXMpKSB7XG4gICAgcmVxdWlyZWRPcHRpb25OYW1lcyA9IFtyZXF1aXJlZE9wdGlvbk5hbWVzXTtcbiAgfVxuICBjb25zdCBwcmVzZW50T3B0aW9uTmFtZXMgPSBfLmtleXMob3B0aW9ucyk7XG4gIGNvbnN0IG1pc3NpbmdPcHRpb25OYW1lcyA9IF8uZGlmZmVyZW5jZShyZXF1aXJlZE9wdGlvbk5hbWVzLCBwcmVzZW50T3B0aW9uTmFtZXMpO1xuICBpZiAoXy5pc0VtcHR5KG1pc3NpbmdPcHRpb25OYW1lcykpIHtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgcmVxdWlyZWQ6ICR7SlNPTi5zdHJpbmdpZnkobWlzc2luZ09wdGlvbk5hbWVzKX0uIGAgK1xuICAgIGBZb3UgaGF2ZSBvbmx5IHByb3ZpZGVkOiAke0pTT04uc3RyaW5naWZ5KHByZXNlbnRPcHRpb25OYW1lcyl9YCk7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG5jb21tYW5kcy5sYXVuY2hBcHAgPSBhc3luYyBmdW5jdGlvbiBsYXVuY2hBcHAgKCkge1xuICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoJ1BsZWFzZSBjcmVhdGUgYSBuZXcgc2Vzc2lvbiBpbiBvcmRlciB0byBsYXVuY2ggdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QnKTtcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF3YWl0XG5jb21tYW5kcy5jbG9zZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIGNsb3NlQXBwICgpIHtcbiAgdGhyb3cgbmV3IGVycm9ycy5VbnN1cHBvcnRlZE9wZXJhdGlvbkVycm9yKCdQbGVhc2UgcXVpdCB0aGUgc2Vzc2lvbiBpbiBvcmRlciB0byBjbG9zZSB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdCcpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLnJlc2V0ID0gYXN5bmMgZnVuY3Rpb24gcmVzZXQgKCkge1xuICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoXG4gICAgJ1BsZWFzZSBxdWl0IHRoZSBzZXNzaW9uIGFuZCBjcmVhdGUgYSBuZXcgb25lICcgK1xuICAgICdpbiBvcmRlciB0byBjbG9zZSBhbmQgbGF1bmNoIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0Jyk7XG59O1xuXG5jb21tYW5kcy5nZXRDbGlwYm9hcmQgPSBhc3luYyBmdW5jdGlvbiBnZXRDbGlwYm9hcmQgKCkge1xuICByZXR1cm4gKGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCkgPCAyOSlcbiAgICA/IChhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2UvZ2V0X2NsaXBib2FyZCcsICdQT1NUJywge30pKVxuICAgIDogKGF3YWl0IHRoaXMuYWRiLmdldENsaXBib2FyZCgpKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVQZXJmb3JtRWRpdG9yQWN0aW9uIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2FjdGlvbn0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydhY3Rpb24nXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9kZXZpY2UvcGVyZm9ybV9lZGl0b3JfYWN0aW9uJywgJ1BPU1QnLCB7YWN0aW9ufSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVTd2lwZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVN3aXBlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2RpcmVjdGlvbiwgZWxlbWVudCwgc3dpcGVyLCBzdGFydENvb3JkaW5hdGVzLCBlbmRDb29yZGluYXRlcywgcHJlY2lzaW9uRGVzY3JpYmVyfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vc3dpcGVgLCAnUE9TVCcsIHtcbiAgICBkaXJlY3Rpb24sIGVsZW1lbnQsIHN3aXBlciwgc3RhcnRDb29yZGluYXRlcywgZW5kQ29vcmRpbmF0ZXMsIHByZWNpc2lvbkRlc2NyaWJlclxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZUdldERldmljZUluZm8gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXREZXZpY2VJbmZvICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9pbmZvJywgJ0dFVCcpO1xufTtcblxuY29tbWFuZHMubW9iaWxlSXNUb2FzdFZpc2libGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVJc1RvYXN0VmlzaWJsZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHt0ZXh0LCBpc1JlZ2V4cH0gPSBvcHRzO1xuICBpZiAoIXV0aWwuaGFzVmFsdWUodGV4dCkpIHtcbiAgICBsb2dnZXIuZXJyb3JBbmRUaHJvdyhgJ3RleHQnIGFyZ3VtZW50IGlzIG1hbmRhdG9yeWApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS9pc190b2FzdF9kaXNwbGF5ZWQnLCAnUE9TVCcsIHtcbiAgICB0ZXh0LFxuICAgIGlzUmVnZXhwLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZU9wZW5EcmF3ZXIgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVPcGVuRHJhd2VyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGdyYXZpdHl9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L29wZW5fZHJhd2VyYCwgJ1BPU1QnLCB7XG4gICAgZ3Jhdml0eVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZUNsb3NlRHJhd2VyID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlQ2xvc2VEcmF3ZXIgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudCwgZ3Jhdml0eX0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50J10pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vY2xvc2VfZHJhd2VyYCwgJ1BPU1QnLCB7XG4gICAgZ3Jhdml0eVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVNldERhdGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTZXREYXRlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIHllYXIsIG1vbnRoT2ZZZWFyLCBkYXlPZk1vbnRofSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnLCAneWVhcicsICdtb250aE9mWWVhcicsICdkYXlPZk1vbnRoJ10pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vc2V0X2RhdGVgLCAnUE9TVCcsIHtcbiAgICB5ZWFyLFxuICAgIG1vbnRoT2ZZZWFyLFxuICAgIGRheU9mTW9udGgsXG4gIH0pO1xufTtcblxuY29tbWFuZHMubW9iaWxlU2V0VGltZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVNldFRpbWUgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudCwgaG91cnMsIG1pbnV0ZXN9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCcsICdob3VycycsICdtaW51dGVzJ10pO1xuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vc2V0X3RpbWVgLCAnUE9TVCcsIHtcbiAgICBob3VycyxcbiAgICBtaW51dGVzLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZU5hdmlnYXRlVG8gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVOYXZpZ2F0ZVRvIChvcHRzID0ge30pIHtcbiAgbGV0IHtlbGVtZW50LCBtZW51SXRlbUlkfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ21lbnVJdGVtSWQnLCAnZWxlbWVudCddKTtcblxuICBsZXQgbWVudUl0ZW1JZEFzTnVtYmVyID0gcGFyc2VJbnQobWVudUl0ZW1JZCwgMTApO1xuICBpZiAoXy5pc05hTihtZW51SXRlbUlkQXNOdW1iZXIpIHx8IG1lbnVJdGVtSWRBc051bWJlciA8IDApIHtcbiAgICBsb2dnZXIuZXJyb3JBbmRUaHJvdyhgJ21lbnVJdGVtSWQnIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBGb3VuZCAke21lbnVJdGVtSWR9YCk7XG4gICAgbWVudUl0ZW1JZCA9IG1lbnVJdGVtSWRBc051bWJlcjtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vbmF2aWdhdGVfdG9gLCAnUE9TVCcsIHtcbiAgICBtZW51SXRlbUlkXG4gIH0pO1xufTtcblxuLyoqXG4gKiBSdW5zIGEgY2hhaW4gb2YgRXNwcmVzc28gd2ViIGF0b21zIChzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vdHJhaW5pbmcvdGVzdGluZy9lc3ByZXNzby93ZWIgZm9yIHJlZmVyZW5jZSlcbiAqXG4gKiBUYWtlcyBKU09OIG9mIHRoZSBmb3JtXG4gKlxuICoge1xuICogICBcIndlYnZpZXdFbFwiOiBcIjxFTEVNRU5UX0lEPlwiLCAvLyBvcHRpb25hbCB3ZWJ2aWV3IGVsZW1lbnQgdG8gb3BlcmF0ZSBvblxuICogICBcImZvcmNlSmF2YXNjcmlwdEVuYWJsZWRcIjogdHJ1ZXxmYWxzZSwgLy8gaWYgd2VidmlldyBkaXNhYmxlcyBqYXZhc2NyaXB0LCB3ZWJhdG9tcyB3b24ndCB3b3JrLCB0aGlzIGZvcmNlcyBpdFxuICogICBcIm1ldGhvZENoYWluXCI6IFtcbiAqICAgICB7XCJuYW1lXCI6IFwibWV0aG9kTmFtZVwiLCBcImF0b21cIjoge1wibmFtZVwiOiBcImF0b21OYW1lXCIsIFwiYXJnc1wiOiBbXCJhcmcxXCIsIFwiYXJnMlwiLCAuLi5dfX0sXG4gKiAgICAgLi4uXG4gKiAgIF1cbiAqIH1cbiAqXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVdlYkF0b21zID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlV2ViQXRvbXMgKG9wdHMgPSB7fSkge1xuICBvcHRzID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnbWV0aG9kQ2hhaW4nXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS93ZWJfYXRvbXNgLCAnUE9TVCcsIG9wdHMpO1xufTtcblxuY29tbWFuZHMubW9iaWxlU2Nyb2xsVG9QYWdlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU2Nyb2xsVG9QYWdlIChvcHRzID0ge30pIHtcblxuICAvLyBWYWxpZGF0ZSB0aGUgcGFyYW1ldGVyc1xuICBjb25zdCBzY3JvbGxUb1R5cGVzID0gWydmaXJzdCcsICdsYXN0JywgJ2xlZnQnLCAncmlnaHQnXTtcbiAgY29uc3QgcmVzID0gdmFsaWRhdGUob3B0cywge1xuICAgIGVsZW1lbnQ6IHtwcmVzZW5jZTogdHJ1ZX0sXG4gICAgc2Nyb2xsVG86IHtcbiAgICAgIGluY2x1c2lvbjoge1xuICAgICAgICB3aXRoaW46IHNjcm9sbFRvVHlwZXMsXG4gICAgICAgIG1lc3NhZ2U6IGBcInNjcm9sbFRvXCIgbXVzdCBiZSBvbmUgb2YgXCIke3Njcm9sbFRvVHlwZXMuam9pbignLCAnKX1cIiBmb3VuZCAnJXt2YWx1ZX0nYCxcbiAgICAgIH1cbiAgICB9LFxuICAgIHNjcm9sbFRvUGFnZToge1xuICAgICAgbnVtZXJpY2FsaXR5OiB7XG4gICAgICAgIG9ubHlJbnRlZ2VyOiB0cnVlLFxuICAgICAgICBncmVhdGVyVGhhbk9yRXF1YWxUbzogMCxcbiAgICAgICAgbWVzc2FnZTogYFwic2Nyb2xsVG9QYWdlXCIgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLiBGb3VuZCAnJXt2YWx1ZX0nYFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcblxuICBpZiAodXRpbC5oYXNWYWx1ZShyZXMpKSB7XG4gICAgbG9nZ2VyLmVycm9yQW5kVGhyb3coYEludmFsaWQgc2Nyb2xsVG8gcGFyYW1ldGVyczogJHtKU09OLnN0cmluZ2lmeShyZXMpfWApO1xuICB9XG5cbiAgY29uc3Qge2VsZW1lbnQsIHNjcm9sbFRvLCBzY3JvbGxUb1BhZ2UsIHNtb290aFNjcm9sbH0gPSBvcHRzO1xuXG4gIGlmICh1dGlsLmhhc1ZhbHVlKHNjcm9sbFRvKSAmJiB1dGlsLmhhc1ZhbHVlKHNjcm9sbFRvUGFnZSkpIHtcbiAgICBsb2dnZXIud2FybihgJ3Njcm9sbFRvJyBhbmQgJ3Njcm9sbFRvUGFnZScgd2hlcmUgYm90aCBwcm92aWRlZC4gRGVmYXVsdGluZyB0byAnc2Nyb2xsVG8nYCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3Njcm9sbF90b19wYWdlYCwgJ1BPU1QnLCB7XG4gICAgc2Nyb2xsVG8sXG4gICAgc2Nyb2xsVG9QYWdlLFxuICAgIHNtb290aFNjcm9sbCxcbiAgfSk7XG59O1xuXG5cbi8qKlxuICogIEFQSSB0byBpbnZva2UgbWV0aG9kcyBkZWZpbmVkIGluIEFuZHJvaWQgYXBwLlxuICpcbiAqICBFeGFtcGxlIGRhdGFcbiAqICB7XG4gKiAgIHRhcmdldDogJ2FjdGl2aXR5JyxcbiAqICAgbWV0aG9kczpcbiAqICAgICAgICAgW1xuICogICAgICAgICAgIHtcbiAqICAgICAgICAgICAgICAgbmFtZTogXCJzb21lTWV0aG9kXCIsXG4gKiAgICAgICAgICAgfSxcbiAqICAgICAgICAgICB7XG4gKiAgICAgICAgICAgICAgIG5hbWU6IFwiYW5vdGhlck1ldGhvZFwiLFxuICogICAgICAgICAgICAgICBhcmdzOlxuICogICAgICAgICAgICAgICAgICAgW1xuICogICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZTogXCJMb2xcIiwgdHlwZTogJ2phdmEubGFuZy5DaGFyU2VxdWVuY2UnfSxcbiAqICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6IDEsIHR5cGU6ICdpbnQnfVxuICogICAgICAgICAgICAgICAgICAgXVxuICogICAgICAgICAgIH1cbiAqICAgICAgICAgXVxuICogfVxuICpcbiAqIEluIGFib3ZlIGV4YW1wbGUsIG1ldGhvZCBcInNvbWVNZXRob2RcIiB3aWxsIGJlIGludm9rZWQgb24gJ2FjdGl2aXR5Jy4gT24gdGhlIHJlc3VsdCwgXCJhbm90aGVyTWV0aG9kXCIgd2lsbCBiZSBpbnZva2VkXG4gKiAgXCJ0YXJnZXRcIiBjYW4gYmUgZWl0aGVyICdhY3Rpdml0eScsICdhcHBsaWNhdGlvbicgb3IgJ2VsZW1lbnQnXG4gKiAgSWYgdGFyZ2V0IGlzIHNldCB0byAnYXBwbGljYXRpb24nLCBtZXRob2RzIHdpbGwgYmUgaW52b2tlZCBvbiBhcHBsaWNhdGlvbiBjbGFzc1xuICogIElmIHRhcmdldCBpcyBzZXQgdG8gJ2FjdGl2aXR5JywgbWV0aG9kcyB3aWxsIGJlIGludm9rZWQgb24gY3VycmVudCBhY3Rpdml0eVxuICogIElmIHRhcmdldCBpcyBzZXQgdG8gJ2VsZW1lbnQnLCAnZWxlbWVudElkJyBtdXN0IGJlIHNwZWNpZmllZFxuICpcbiAqIC0gT25seSAnUHVibGljJyBtZXRob2RzIGNhbiBiZSBpbnZva2VkLiAoJ29wZW4nIG1vZGlmaXJlIGlzIG5lY2Vzc2FyeSBpbiBLb3RsaW4pXG4gKiAtIGZvbGxvd2luZyBwcmltaXRpdmUgdHlwZXMgYXJlIHN1cHBvcnRlZDogXCJpbnRcIiwgXCJib29sZWFuXCIsIFwiYnl0ZVwiLCBcInNob3J0XCIsIFwibG9uZ1wiLCBcImZsb2F0XCIsIFwiY2hhclwiXG4gKiAtICBOb24tcHJpbWl0aXZlIHR5cGVzIHdpdGggZnVsbHkgcXVhbGlmaWVkIG5hbWUgXCJqYXZhLmxhbmcuKlwiIGlzIGFsc28gc3VwcG9ydGVkOlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZy4gXCJqYXZhLmxhbmcuQ2hhclNlcXVlbmNlXCIsIFwiamF2YS5sYW5nLlN0cmluZ1wiLCBcImphdmEubGFuZy5JbnRlZ2VyXCIsIFwiamF2YS5sYW5nLkZsb2F0XCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiamF2YS5sYW5nLkRvdWJsZVwiLCBcImphdmEubGFuZy5Cb29sZWFuXCIsIFwiamF2YS5sYW5nLkxvbmdcIiwgXCJqYXZhLmxhbmcuU2hvcnRcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJqYXZhLmxhbmcuQ2hhcmFjdGVyXCIgZXRjLi4uXG4gKlxuICpcbiAqIEB0aHJvd3MgIHtFcnJvcn0gaWYgdGFyZ2V0IGlzIG5vdCAnYWN0aXZpdHknIG9yICdhcHBsaWNhdGlvbidcbiAqIEB0aHJvd3MgIHtFcnJvcn0gaWYgYSBtZXRob2QgaXMgbm90IGZvdW5kIHdpdGggZ2l2ZW4gYXJndW1lbnQgdHlwZXNcbiAqXG4gKiBAcmV0dXJuIHsqfSB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IG1ldGhvZCBpbiB0aGUgaW52b2NhdGlvbiBjaGFpbi4gSWYgbWV0aG9kIHJldHVybiB0eXBlIGlzIHZvaWQsIHRoZW4gXCI8Vk9JRD5cIiB3aWxsIGJlIHJldHVybmVkXG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVCYWNrZG9vciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUJhY2tkb29yIChvcHRzID0ge30pIHtcbiAgYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsndGFyZ2V0JywgJ21ldGhvZHMnXSk7XG4gIGNvbnN0IHt0YXJnZXQsIG1ldGhvZHN9ID0gb3B0cztcbiAgaWYgKHRhcmdldCA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudElkJ10pO1xuICB9XG4gIGNvbnN0IHtlbGVtZW50SWQ6IHRhcmdldEVsZW1lbnR9ID0gb3B0cztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL2JhY2tkb29yYCwgJ1BPU1QnLCB7dGFyZ2V0LCBtZXRob2RzLCB0YXJnZXRFbGVtZW50fSk7XG59O1xuXG4vKipcbiAqICBFeGVjdXRlIFVpQXV0b21hdG9yMiBjb21tYW5kcyB0byBkcml2ZSBvdXQgb2YgYXBwIGFyZWFzLlxuICogIHN0cmF0ZWd5IGNhbiBiZSBvbmUgb2Y6IFwiY2xhenpcIiwgXCJyZXNcIiwgXCJ0ZXh0XCIsIFwidGV4dENvbnRhaW5zXCIsIFwidGV4dEVuZHNXaXRoXCIsIFwidGV4dFN0YXJ0c1dpdGhcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBcImRlc2NcIiwgXCJkZXNjQ29udGFpbnNcIiwgXCJkZXNjRW5kc1dpdGhcIiwgXCJkZXNjU3RhcnRzV2l0aFwiLCBcInBrZ1wiXG4gKlxuICogIGFjdGlvbiBjYW4gYmUgb25lIG9mOiBcImNsaWNrXCIsIFwibG9uZ0NsaWNrXCIsIFwiZ2V0VGV4dFwiLCBcImdldENvbnRlbnREZXNjcmlwdGlvblwiLCBcImdldENsYXNzTmFtZVwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICBcImdldFJlc291cmNlTmFtZVwiLCBcImdldFZpc2libGVCb3VuZHNcIiwgXCJnZXRWaXNpYmxlQ2VudGVyXCIsIFwiZ2V0QXBwbGljYXRpb25QYWNrYWdlXCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIFwiZ2V0Q2hpbGRDb3VudFwiLCBcImNsZWFyXCIsIFwiaXNDaGVja2FibGVcIiwgXCJpc0NoZWNrZWRcIiwgXCJpc0NsaWNrYWJsZVwiLCBcImlzRW5hYmxlZFwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICBcImlzRm9jdXNhYmxlXCIsIFwiaXNGb2N1c2VkXCIsIFwiaXNMb25nQ2xpY2thYmxlXCIsIFwiaXNTY3JvbGxhYmxlXCIsIFwiaXNTZWxlY3RlZFwiXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVVpYXV0b21hdG9yID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVWlhdXRvbWF0b3IgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7c3RyYXRlZ3ksIGxvY2F0b3IsIGFjdGlvbiwgaW5kZXh9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnc3RyYXRlZ3knLCAnbG9jYXRvcicsICdhY3Rpb24nXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS91aWF1dG9tYXRvcmAsICdQT1NUJywge3N0cmF0ZWd5LCBsb2NhdG9yLCBpbmRleCwgYWN0aW9ufSk7XG59O1xuXG4vKipcbiAqICBFeGVjdXRlIFVpQXV0b21hdG9yMiBjb21tYW5kIHRvIHJldHVybiB0aGUgVUkgZHVtcCB3aGVuIEFVVCBpcyBpbiBiYWNrZ3JvdW5kLlxuICogQHRocm93cyAge0Vycm9yfSBpZiB1aWF1dG9tYXRvciB2aWV3IGR1bXAgaXMgdW5zdWNjZXNzZnVsXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB1aWF1dG9tYXRvciBET00geG1sIGFzIHN0cmluZ1xuICovXG5jb21tYW5kcy5tb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvdWlhdXRvbWF0b3JfcGFnZV9zb3VyY2VgLCAnR0VUJyk7XG59O1xuXG4vKipcbiAqICBGbGFzaCB0aGUgZWxlbWVudCB3aXRoIGdpdmVuIGlkLlxuICogIGR1cmF0aW9uTWlsbGlzIGFuZCByZXBlYXRDb3VudCBhcmUgb3B0aW9uYWxcbiAqXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUZsYXNoRWxlbWVudCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUZsYXNoRWxlbWVudCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG4gIGNvbnN0IHtkdXJhdGlvbk1pbGxpcywgcmVwZWF0Q291bnR9ID0gb3B0cztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9mbGFzaGAsICdQT1NUJywge1xuICAgIGR1cmF0aW9uTWlsbGlzLFxuICAgIHJlcGVhdENvdW50XG4gIH0pO1xufTtcblxuLyoqXG4gKiBQZXJmb3JtIGEgJ0dlbmVyYWxDbGlja0FjdGlvbicgKGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkeC90ZXN0L2VzcHJlc3NvL2FjdGlvbi9HZW5lcmFsQ2xpY2tBY3Rpb24pXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUNsaWNrQWN0aW9uID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlQ2xpY2tBY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudCwgdGFwcGVyLCBjb29yZGluYXRlc1Byb3ZpZGVyLCBwcmVjaXNpb25EZXNjcmliZXIsXG4gICAgICAgICBpbnB1dERldmljZSwgYnV0dG9uU3RhdGV9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9jbGlja19hY3Rpb25gLCAnUE9TVCcsIHtcbiAgICB0YXBwZXIsIGNvb3JkaW5hdGVzUHJvdmlkZXIsIHByZWNpc2lvbkRlc2NyaWJlciwgaW5wdXREZXZpY2UsIGJ1dHRvblN0YXRlXG4gIH0pO1xufTtcblxuY29tbWFuZHMudXBkYXRlU2V0dGluZ3MgPSBhc3luYyBmdW5jdGlvbiB1cGRhdGVTZXR0aW5ncyAoc2V0dGluZ3MpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL3NldHRpbmdzYCwgJ1BPU1QnLCB7IHNldHRpbmdzIH0pO1xufTtcblxuY29tbWFuZHMuZ2V0U2V0dGluZ3MgPSBhc3luYyBmdW5jdGlvbiBnZXRTZXR0aW5ncyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9zZXR0aW5nc2AsICdHRVQnKTtcbn07XG5cbi8vIFN0b3AgcHJveHlpbmcgdG8gYW55IENocm9tZWRyaXZlciBhbmQgcmVkaXJlY3QgdG8gRXNwcmVzc29cbmhlbHBlcnMuc3VzcGVuZENocm9tZWRyaXZlclByb3h5ID0gZnVuY3Rpb24gc3VzcGVuZENocm9tZWRyaXZlclByb3h5ICgpIHtcbiAgdGhpcy5jaHJvbWVkcml2ZXIgPSBudWxsO1xuICB0aGlzLnByb3h5UmVxUmVzID0gdGhpcy5lc3ByZXNzby5wcm94eVJlcVJlcy5iaW5kKHRoaXMuZXNwcmVzc28pO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcbn07XG5cbmNvbW1hbmRzLnN0YXJ0QWN0aXZpdHkgPSBhc3luYyBmdW5jdGlvbiBzdGFydEFjdGl2aXR5IChhcHBQYWNrYWdlLCBhcHBBY3Rpdml0eSxcbiAgYXBwV2FpdFBhY2thZ2UsIGFwcFdhaXRBY3Rpdml0eSkge1xuICAvLyBpbnRlbnRBY3Rpb24sIGludGVudENhdGVnb3J5LCBpbnRlbnRGbGFncywgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMsIGRvbnRTdG9wQXBwT25SZXNldFxuICAvLyBwYXJhbWV0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEVzcHJlc3NvXG4gIGFwcFBhY2thZ2UgPSBhcHBQYWNrYWdlIHx8IHRoaXMuY2Fwcy5hcHBQYWNrYWdlO1xuICBhcHBXYWl0UGFja2FnZSA9IGFwcFdhaXRQYWNrYWdlIHx8IGFwcFBhY2thZ2U7XG4gIGFwcEFjdGl2aXR5ID0gcXVhbGlmeUFjdGl2aXR5TmFtZShhcHBBY3Rpdml0eSwgYXBwUGFja2FnZSk7XG4gIGFwcFdhaXRBY3Rpdml0eSA9IHF1YWxpZnlBY3Rpdml0eU5hbWUoYXBwV2FpdEFjdGl2aXR5IHx8IGFwcEFjdGl2aXR5LCBhcHBXYWl0UGFja2FnZSk7XG4gIGxvZ2dlci5kZWJ1ZyhgU3RhcnRpbmcgYWN0aXZpdHkgJyR7YXBwQWN0aXZpdHl9JyBmb3IgcGFja2FnZSAnJHthcHBQYWNrYWdlfSdgKTtcbiAgYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZGV2aWNlL3N0YXJ0X2FjdGl2aXR5YCwgJ1BPU1QnLCB7XG4gICAgYXBwUGFja2FnZSxcbiAgICBhcHBBY3Rpdml0eSxcbiAgfSk7XG4gIGF3YWl0IHRoaXMuYWRiLndhaXRGb3JBY3Rpdml0eShhcHBXYWl0UGFja2FnZSwgYXBwV2FpdEFjdGl2aXR5KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZURpc21pc3NBdXRvZmlsbCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZURpc21pc3NBdXRvZmlsbCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG4gIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKFxuICAgIGAvc2Vzc2lvbi86c2Vzc2lvbklkL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vZGlzbWlzc19hdXRvZmlsbGAsICdQT1NUJywge30pO1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBjb21tYW5kcywgaGVscGVycyk7XG5leHBvcnQgeyBjb21tYW5kcywgaGVscGVycyB9O1xuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2dlbmVyYWwuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.commands = void 0;
7
+
8
+ require("source-map-support/register");
9
+
10
+ var _utils = require("../utils");
11
+
12
+ const commands = {};
13
+ exports.commands = commands;
14
+
15
+ commands.mobileRegisterIdlingResources = async function mobileRegisterIdlingResources(opts = {}) {
16
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/register_idling_resources', 'POST', (0, _utils.requireOptions)(opts, ['classNames']));
17
+ };
18
+
19
+ commands.mobileUnregisterIdlingResources = async function mobileUnregisterIdlingResources(opts = {}) {
20
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/unregister_idling_resources', 'POST', (0, _utils.requireOptions)(opts, ['classNames']));
21
+ };
22
+
23
+ commands.mobileListIdlingResources = async function mobileListIdlingResources() {
24
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/list_idling_resources', 'GET');
25
+ };
26
+
27
+ var _default = commands;
28
+ exports.default = _default;require('source-map-support').install();
29
+
30
+
31
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pZGxpbmctcmVzb3VyY2VzLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwibW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJvcHRzIiwiZXNwcmVzc28iLCJqd3Byb3h5IiwiY29tbWFuZCIsIm1vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7OztBQXFCQUEsUUFBUSxDQUFDQyw2QkFBVCxHQUF5QyxlQUFlQSw2QkFBZixDQUE4Q0MsSUFBSSxHQUFHLEVBQXJELEVBQXlEO0FBQ2hHLFNBQU8sTUFBTSxLQUFLQyxRQUFMLENBQWNDLE9BQWQsQ0FBc0JDLE9BQXRCLENBQThCLGtEQUE5QixFQUFrRixNQUFsRixFQUNYLDJCQUFlSCxJQUFmLEVBQXFCLENBQUMsWUFBRCxDQUFyQixDQURXLENBQWI7QUFFRCxDQUhEOztBQVlBRixRQUFRLENBQUNNLCtCQUFULEdBQTJDLGVBQWVBLCtCQUFmLENBQWdESixJQUFJLEdBQUcsRUFBdkQsRUFBMkQ7QUFDcEcsU0FBTyxNQUFNLEtBQUtDLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIsb0RBQTlCLEVBQW9GLE1BQXBGLEVBQ1gsMkJBQWVILElBQWYsRUFBcUIsQ0FBQyxZQUFELENBQXJCLENBRFcsQ0FBYjtBQUVELENBSEQ7O0FBV0FGLFFBQVEsQ0FBQ08seUJBQVQsR0FBcUMsZUFBZUEseUJBQWYsR0FBNEM7QUFDL0UsU0FBTyxNQUFNLEtBQUtKLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIsOENBQTlCLEVBQThFLEtBQTlFLENBQWI7QUFDRCxDQUZEOztlQUtlTCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVxdWlyZU9wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gSWRsaW5nUmVzb3VyY2VzT3B0aW9uc1xuICogQHByb3BlcnR5IHshc3RyaW5nfSBjbGFzc05hbWVzIC0gVGhlIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGlkbGluZyByZXNvdXJjZXMgY2xhc3MgbmFtZXMuXG4gKiBFYWNoIG5hbWUgbXVzdCBiZSBhIGZ1bGwtcXVhbGlmaWVkIGphdmEgY2xhc3MgbmFtZSwgbGlrZSBgaW8uYXBwaXVtLmVzcHJlc3Nvc2VydmVyLmxpYi5NeUlkbGluZ1Jlc291cmNlYC5cbiAqIEVhY2ggY2xhc3MgaW4gdGhlIGFwcCBzb3VyY2UgbXVzdCBpbXBsZW1lbnQgYSBzaW5nbGV0b24gcGF0dGVybiBhbmQgaGF2ZSBhIHN0YXRpYyBgZ2V0SW5zdGFuY2UoKWBcbiAqIG1ldGhvZCByZXR1cm5pbmcgdGhlIGNsYXNzIGluc3RhbmNlLCB3aGljaCBpbXBsZW1lbnRzIGBhbmRyb2lkeC50ZXN0LmVzcHJlc3NvLklkbGluZ1Jlc291cmNlYFxuICogaW50ZXJmYWNlLiBSZWFkXG4gKiAtIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvZXNwcmVzc28vaWRsaW5nLXJlc291cmNlXG4gKiAtIGh0dHBzOi8vYW5kcm9pZC5qbGVsc2UuZXUvaW50ZWdyYXRlLWVzcHJlc3NvLWlkbGluZy1yZXNvdXJjZXMtaW4teW91ci1hcHAtdG8tYnVpbGQtZmxleGlibGUtdWktdGVzdHMtYzc3OWUyNGY1MDU3XG4gKiBmb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBkZXNpZ24gYW5kIHVzZSBpZGxpbmcgcmVzb3VyY2VzIGNvbmNlcHQgaW4gRXNwcmVzc28uXG4gKi9cblxuLyoqXG4gKiBSZWdpc3RlcnMgb25lIG9yIG1vcmUgaWRsaW5nIHJlc291cmNlc1xuICpcbiAqIEBwYXJhbSB7SWRsaW5nUmVzb3VyY2VzT3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgcGFyc2luZyBvcHRpb25zIG9yIHJlZ2lzdGVyaW5nXG4gKiB0aGUgYWN0dWFsIGluc3RhbmNlc1xuICovXG5jb21tYW5kcy5tb2JpbGVSZWdpc3RlcklkbGluZ1Jlc291cmNlcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3JlZ2lzdGVyX2lkbGluZ19yZXNvdXJjZXMnLCAnUE9TVCcsXG4gICAgcmVxdWlyZU9wdGlvbnMob3B0cywgWydjbGFzc05hbWVzJ10pKTtcbn07XG5cbi8qKlxuICogVW5yZWdpc3RlcnMgb25lIG9yIG1vcmUgaWRsaW5nIHJlc291cmNlc1xuICpcbiAqIEBwYXJhbSB7SWRsaW5nUmVzb3VyY2VzT3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgcGFyc2luZyBvcHRpb25zIG9yIHVucmVnaXN0ZXJpbmdcbiAqIHRoZSBhY3R1YWwgaW5zdGFuY2VzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3VucmVnaXN0ZXJfaWRsaW5nX3Jlc291cmNlcycsICdQT1NUJyxcbiAgICByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2NsYXNzTmFtZXMnXSkpO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgbGlzdCBvZiBjdXJyZW50bHkgcmVnaXN0ZXJlZCBpZGxpbmcgcmVzb3VyY2VzXG4gKiBvciBhbiBlbXB0eSBsaXN0IGlmIG5vIHJlc291cmNlcyBoYXZlIGJlZW4gcmVnaXN0ZXJlZCB5ZXQuXG4gKlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59IFRoZSBsaXN0IG9mIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lc1xuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS9saXN0X2lkbGluZ19yZXNvdXJjZXMnLCAnR0VUJyk7XG59O1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9pZGxpbmctcmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _execute = _interopRequireDefault(require("./execute"));
13
+
14
+ var _general = _interopRequireDefault(require("./general"));
15
+
16
+ var _services = _interopRequireDefault(require("./services"));
17
+
18
+ var _idlingResources = _interopRequireDefault(require("./idling-resources"));
19
+
20
+ const commands = {};
21
+ Object.assign(commands, _general.default, _execute.default, _services.default, _idlingResources.default);
22
+ var _default = commands;
23
+ exports.default = _default;require('source-map-support').install();
24
+
25
+
26
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImdlbmVyYWxDbWRzIiwiZXhlY3V0ZUNtZHMiLCJzZXJ2aWNlc0NtZHMiLCJpZGxpbmdSZXNvdXJjZXNDbWRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjtBQUNBQyxNQUFNLENBQUNDLE1BQVAsQ0FDRUYsUUFERixFQUVFRyxnQkFGRixFQUdFQyxnQkFIRixFQUlFQyxpQkFKRixFQUtFQyx3QkFMRjtlQVNlTixRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGV4ZWN1dGVDbWRzIGZyb20gJy4vZXhlY3V0ZSc7XG5pbXBvcnQgZ2VuZXJhbENtZHMgZnJvbSAnLi9nZW5lcmFsJztcbmltcG9ydCBzZXJ2aWNlc0NtZHMgZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQgaWRsaW5nUmVzb3VyY2VzQ21kcyBmcm9tICcuL2lkbGluZy1yZXNvdXJjZXMnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuT2JqZWN0LmFzc2lnbihcbiAgY29tbWFuZHMsXG4gIGdlbmVyYWxDbWRzLFxuICBleGVjdXRlQ21kcyxcbiAgc2VydmljZXNDbWRzLFxuICBpZGxpbmdSZXNvdXJjZXNDbWRzLFxuICAvLyBhZGQgb3RoZXIgY29tbWFuZCB0eXBlcyBoZXJlXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2luZGV4LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.commands = void 0;
7
+
8
+ require("source-map-support/register");
9
+
10
+ var _utils = require("../utils");
11
+
12
+ const commands = {};
13
+ exports.commands = commands;
14
+
15
+ commands.mobileStartService = async function mobileStartService(opts = {}) {
16
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/start_service', 'POST', (0, _utils.requireOptions)(opts, ['intent']));
17
+ };
18
+
19
+ commands.mobileStopService = async function mobileStopService(opts = {}) {
20
+ return await this.espresso.jwproxy.command('/appium/execute_mobile/stop_service', 'POST', (0, _utils.requireOptions)(opts, ['intent']));
21
+ };
22
+
23
+ var _default = commands;
24
+ exports.default = _default;require('source-map-support').install();
25
+
26
+
27
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9zZXJ2aWNlcy5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsIm1vYmlsZVN0YXJ0U2VydmljZSIsIm9wdHMiLCJlc3ByZXNzbyIsImp3cHJveHkiLCJjb21tYW5kIiwibW9iaWxlU3RvcFNlcnZpY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7O0FBb0JBQSxRQUFRLENBQUNDLGtCQUFULEdBQThCLGVBQWVBLGtCQUFmLENBQW1DQyxJQUFJLEdBQUcsRUFBMUMsRUFBOEM7QUFDMUUsU0FBTyxNQUFNLEtBQUtDLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIsc0NBQTlCLEVBQXNFLE1BQXRFLEVBQ1gsMkJBQWVILElBQWYsRUFBcUIsQ0FBQyxRQUFELENBQXJCLENBRFcsQ0FBYjtBQUVELENBSEQ7O0FBb0JBRixRQUFRLENBQUNNLGlCQUFULEdBQTZCLGVBQWVBLGlCQUFmLENBQWtDSixJQUFJLEdBQUcsRUFBekMsRUFBNkM7QUFDeEUsU0FBTyxNQUFNLEtBQUtDLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIscUNBQTlCLEVBQXFFLE1BQXJFLEVBQ1gsMkJBQWVILElBQWYsRUFBcUIsQ0FBQyxRQUFELENBQXJCLENBRFcsQ0FBYjtBQUVELENBSEQ7O2VBT2VGLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXF1aXJlT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0YXJ0U2VydmljZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ30gaW50ZW50IC0gVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgaW50ZW50IHRvIHN0YXJ0LCBmb3IgZXhhbXBsZVxuICogYGNvbS5zb21lLnBhY2thZ2UubmFtZS8uWW91clNlcnZpY2VTdWJDbGFzc05hbWVgLiBUaGlzIG9wdGlvbiBpcyBtYW5kYXRvcnkuXG4gKiAhISEgT25seSBzZXJ2aWNlcyBpbiB0aGUgYXBwJ3MgdW5kZXIgdGVzdCBzY29wZSBjb3VsZCBiZSBzdGFydGVkLlxuICogQHByb3BlcnR5IHtib29sZWFufSBmb3JlZ3JvdW5kIFtmYWxzZV0gLSBTZXQgaXQgdG8gYHRydWVgIGlmIHlvdXIgc2VydmljZSBtdXN0IGJlXG4gKiBzdGFydGVkIGFzIGZvcmVncm91bmQgc2VydmljZS5cbiAqL1xuXG4vKipcbiAqIFN0YXJ0cyB0aGUgZ2l2ZW4gc2VydmljZSBpbnRlbnQuXG4gKlxuICogQHBhcmFtIHtTdGFydFNlcnZpY2VPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZnVsbCBjb21wb25lbnQgbmFtZVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgc3RhcnRpbmcgdGhlIHNlcnZpY2VcbiAqIG9yIHJlcXVpcmVkIG9wdGlvbnMgYXJlIG1pc3NpbmdcbiAqL1xuY29tbWFuZHMubW9iaWxlU3RhcnRTZXJ2aWNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3RhcnRTZXJ2aWNlIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3N0YXJ0X3NlcnZpY2UnLCAnUE9TVCcsXG4gICAgcmVxdWlyZU9wdGlvbnMob3B0cywgWydpbnRlbnQnXSkpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdG9wU2VydmljZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ30gaW50ZW50IC0gVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgaW50ZW50IHRvIHN0b3AsIGZvciBleGFtcGxlXG4gKiBgY29tLnNvbWUucGFja2FnZS5uYW1lLy5Zb3VyU2VydmljZVN1YkNsYXNzTmFtZWAuIFRoaXMgb3B0aW9uIGlzIG1hbmRhdG9yeS5cbiAqICEhISBPbmx5IHNlcnZpY2VzIGluIHRoZSBhcHAncyB1bmRlciB0ZXN0IHNjb3BlIGNvdWxkIGJlIHN0b3BwZWQuXG4gKi9cblxuLyoqXG4gKiBTdG9wcyB0aGUgZ2l2ZW4gc2VydmljZSBpbnRlbnQuXG4gKlxuICogQHBhcmFtIHtTdG9wU2VydmljZU9wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGB0cnVlYCBpZiB0aGUgc2VydmljZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgc3RvcHBlZFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgc3RvcHBpbmcgdGhlIHNlcnZpY2VcbiAqIG9yIHJlcXVpcmVkIG9wdGlvbnMgYXJlIG1pc3NpbmdcbiAqL1xuY29tbWFuZHMubW9iaWxlU3RvcFNlcnZpY2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTdG9wU2VydmljZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS9zdG9wX3NlcnZpY2UnLCAnUE9TVCcsXG4gICAgcmVxdWlyZU9wdGlvbnMob3B0cywgWydpbnRlbnQnXSkpO1xufTtcblxuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9