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
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.buildServerSigningConfig = buildServerSigningConfig;
9
+ exports.default = exports.GRADLE_URL_TEMPLATE = exports.VERSION_KEYS = exports.ServerBuilder = void 0;
10
+
11
+ require("source-map-support/register");
12
+
13
+ var _teen_process = require("teen_process");
14
+
15
+ var _appiumSupport = require("appium-support");
16
+
17
+ var _lodash = _interopRequireDefault(require("lodash"));
18
+
19
+ var _logger = _interopRequireDefault(require("./logger"));
20
+
21
+ var _path = _interopRequireDefault(require("path"));
22
+
23
+ var _os = require("os");
24
+
25
+ var _utils = require("./utils");
26
+
27
+ const GRADLE_VERSION_KEY = 'gradle';
28
+ const GRADLE_URL_PREFIX = 'distributionUrl=';
29
+ const GRADLE_URL_TEMPLATE = 'https\\://services.gradle.org/distributions/gradle-VERSION-all.zip';
30
+ exports.GRADLE_URL_TEMPLATE = GRADLE_URL_TEMPLATE;
31
+ const GRADLE_MAX_ERROR_LOG_LINES = 15;
32
+ const DEPENDENCY_PROP_NAMES = ['additionalAppDependencies', 'additionalAndroidTestDependencies'];
33
+ const VERSION_KEYS = [GRADLE_VERSION_KEY, 'androidGradlePlugin', 'compileSdk', 'buildTools', 'minSdk', 'targetSdk', 'kotlin'];
34
+ exports.VERSION_KEYS = VERSION_KEYS;
35
+
36
+ const gradleLog = _appiumSupport.logger.getLogger('Gradle');
37
+
38
+ function buildServerSigningConfig(args) {
39
+ return {
40
+ zipAlign: true,
41
+ keystoreFile: args.keystoreFile,
42
+ keystorePassword: args.keystorePassword,
43
+ keyAlias: args.keyAlias,
44
+ keyPassword: args.keyPassword
45
+ };
46
+ }
47
+
48
+ class ServerBuilder {
49
+ constructor(args = {}) {
50
+ this.serverPath = args.serverPath;
51
+ this.showGradleLog = args.showGradleLog;
52
+ const buildConfiguration = args.buildConfiguration || {};
53
+ const versionConfiguration = buildConfiguration.toolsVersions || {};
54
+ this.serverVersions = _lodash.default.reduce(versionConfiguration, (acc, value, key) => {
55
+ if (VERSION_KEYS.includes(key)) {
56
+ acc[key] = value;
57
+ } else {
58
+ _logger.default.warn(`Got unexpected '${key}' in toolsVersion block of the build configuration`);
59
+ }
60
+
61
+ return acc;
62
+ }, {});
63
+ this.testAppPackage = args.testAppPackage;
64
+ this.signingConfig = args.signingConfig;
65
+
66
+ for (const propName of DEPENDENCY_PROP_NAMES) {
67
+ this[propName] = buildConfiguration[propName] || [];
68
+ }
69
+ }
70
+
71
+ async build() {
72
+ if (this.serverVersions[GRADLE_VERSION_KEY]) {
73
+ await this.setGradleWrapperVersion(this.serverVersions[GRADLE_VERSION_KEY]);
74
+ }
75
+
76
+ await this.insertAdditionalDependencies();
77
+ await this.runBuildProcess();
78
+ }
79
+
80
+ getCommand() {
81
+ const cmd = _appiumSupport.system.isWindows() ? 'gradlew.bat' : './gradlew';
82
+
83
+ const buildProperty = (key, value) => value ? `-P${key}=${value}` : null;
84
+
85
+ let args = VERSION_KEYS.filter(key => key !== GRADLE_VERSION_KEY).map(key => {
86
+ const serverVersion = this.serverVersions[key];
87
+ const gradleProperty = `appium${key.charAt(0).toUpperCase()}${key.slice(1)}`;
88
+ return buildProperty(gradleProperty, serverVersion);
89
+ }).filter(Boolean);
90
+
91
+ if (this.signingConfig) {
92
+ args.push(..._lodash.default.keys(this.signingConfig).map(key => [`appium${_lodash.default.upperFirst(key)}`, this.signingConfig[key]]).map(([k, v]) => buildProperty(k, v)).filter(Boolean));
93
+ }
94
+
95
+ if (this.testAppPackage) {
96
+ args.push(buildProperty('appiumTargetPackage', this.testAppPackage));
97
+ }
98
+
99
+ args.push('app:assembleAndroidTest');
100
+ return {
101
+ cmd,
102
+ args
103
+ };
104
+ }
105
+
106
+ async setGradleWrapperVersion(version) {
107
+ const propertiesPath = _path.default.resolve(this.serverPath, 'gradle', 'wrapper', 'gradle-wrapper.properties');
108
+
109
+ const originalProperties = await _appiumSupport.fs.readFile(propertiesPath, 'utf8');
110
+ const newProperties = this.updateGradleDistUrl(originalProperties, version);
111
+ await _appiumSupport.fs.writeFile(propertiesPath, newProperties, 'utf8');
112
+ }
113
+
114
+ updateGradleDistUrl(propertiesContent, version) {
115
+ return propertiesContent.replace(new RegExp(`^(${_lodash.default.escapeRegExp(GRADLE_URL_PREFIX)}).+$`, 'gm'), `$1${GRADLE_URL_TEMPLATE.replace('VERSION', version)}`);
116
+ }
117
+
118
+ async insertAdditionalDependencies() {
119
+ let hasAdditionalDeps = false;
120
+
121
+ for (const propName of DEPENDENCY_PROP_NAMES) {
122
+ if (!_lodash.default.isArray(this[propName])) {
123
+ throw new Error(`'${propName}' must be an array`);
124
+ }
125
+
126
+ if (_lodash.default.isEmpty(this[propName].filter(line => _lodash.default.trim(line)))) {
127
+ continue;
128
+ }
129
+
130
+ for (const dep of this[propName]) {
131
+ if (/[\s'\\$]/.test(dep)) {
132
+ throw new Error('Single quotes, dollar characters and whitespace characters' + ` are disallowed in additional dependencies: ${dep}`);
133
+ }
134
+ }
135
+
136
+ hasAdditionalDeps = true;
137
+ }
138
+
139
+ if (!hasAdditionalDeps) {
140
+ return;
141
+ }
142
+
143
+ const buildPath = _path.default.resolve(this.serverPath, 'app', 'build.gradle.kts');
144
+
145
+ let configuration = await _appiumSupport.fs.readFile(buildPath, 'utf8');
146
+
147
+ for (const propName of DEPENDENCY_PROP_NAMES) {
148
+ const prefix = propName === DEPENDENCY_PROP_NAMES[0] ? 'implementation' : 'androidTestImplementation';
149
+ const deps = this[propName].filter(line => _lodash.default.trim(line)).map(line => `${prefix}("${line}")`);
150
+
151
+ if (_lodash.default.isEmpty(deps)) {
152
+ continue;
153
+ }
154
+
155
+ _logger.default.info(`Adding the following ${propName} to build.gradle.kts: ${deps}`);
156
+
157
+ configuration = (0, _utils.updateDependencyLines)(configuration, propName, deps);
158
+ }
159
+
160
+ await _appiumSupport.fs.writeFile(buildPath, configuration, 'utf8');
161
+ }
162
+
163
+ async runBuildProcess() {
164
+ const {
165
+ cmd,
166
+ args
167
+ } = this.getCommand();
168
+
169
+ _logger.default.debug(`Beginning build with command '${cmd} ${args.join(' ')}' ` + `in directory '${this.serverPath}'`);
170
+
171
+ const gradlebuild = new _teen_process.SubProcess(cmd, args, {
172
+ cwd: this.serverPath,
173
+ stdio: ['ignore', 'pipe', 'pipe']
174
+ });
175
+ let buildLastLines = [];
176
+ const logMsg = `Output from Gradle ${this.showGradleLog ? 'will' : 'will not'} be logged`;
177
+
178
+ _logger.default.debug(`${logMsg}. To change this, use 'showGradleLog' desired capability`);
179
+
180
+ gradlebuild.on('stream-line', line => {
181
+ if (this.showGradleLog) {
182
+ if (line.startsWith('[STDERR]')) {
183
+ gradleLog.warn(line);
184
+ } else {
185
+ gradleLog.info(line);
186
+ }
187
+ }
188
+
189
+ buildLastLines.push(`${_os.EOL}${line}`);
190
+
191
+ if (buildLastLines.length > GRADLE_MAX_ERROR_LOG_LINES) {
192
+ buildLastLines = buildLastLines.slice(-GRADLE_MAX_ERROR_LOG_LINES);
193
+ }
194
+ });
195
+
196
+ try {
197
+ await gradlebuild.start();
198
+ await gradlebuild.join();
199
+ } catch (err) {
200
+ let msg = `Unable to build Espresso server - ${err.message}\n` + `Gradle error message:${_os.EOL}${buildLastLines}`;
201
+
202
+ _logger.default.errorAndThrow(msg);
203
+ }
204
+ }
205
+
206
+ }
207
+
208
+ exports.ServerBuilder = ServerBuilder;
209
+ var _default = ServerBuilder;
210
+ exports.default = _default;require('source-map-support').install();
211
+
212
+
213
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXItYnVpbGRlci5qcyJdLCJuYW1lcyI6WyJHUkFETEVfVkVSU0lPTl9LRVkiLCJHUkFETEVfVVJMX1BSRUZJWCIsIkdSQURMRV9VUkxfVEVNUExBVEUiLCJHUkFETEVfTUFYX0VSUk9SX0xPR19MSU5FUyIsIkRFUEVOREVOQ1lfUFJPUF9OQU1FUyIsIlZFUlNJT05fS0VZUyIsImdyYWRsZUxvZyIsImxvZ2dlciIsImdldExvZ2dlciIsImJ1aWxkU2VydmVyU2lnbmluZ0NvbmZpZyIsImFyZ3MiLCJ6aXBBbGlnbiIsImtleXN0b3JlRmlsZSIsImtleXN0b3JlUGFzc3dvcmQiLCJrZXlBbGlhcyIsImtleVBhc3N3b3JkIiwiU2VydmVyQnVpbGRlciIsImNvbnN0cnVjdG9yIiwic2VydmVyUGF0aCIsInNob3dHcmFkbGVMb2ciLCJidWlsZENvbmZpZ3VyYXRpb24iLCJ2ZXJzaW9uQ29uZmlndXJhdGlvbiIsInRvb2xzVmVyc2lvbnMiLCJzZXJ2ZXJWZXJzaW9ucyIsIl8iLCJyZWR1Y2UiLCJhY2MiLCJ2YWx1ZSIsImtleSIsImluY2x1ZGVzIiwibG9nIiwid2FybiIsInRlc3RBcHBQYWNrYWdlIiwic2lnbmluZ0NvbmZpZyIsInByb3BOYW1lIiwiYnVpbGQiLCJzZXRHcmFkbGVXcmFwcGVyVmVyc2lvbiIsImluc2VydEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMiLCJydW5CdWlsZFByb2Nlc3MiLCJnZXRDb21tYW5kIiwiY21kIiwic3lzdGVtIiwiaXNXaW5kb3dzIiwiYnVpbGRQcm9wZXJ0eSIsImZpbHRlciIsIm1hcCIsInNlcnZlclZlcnNpb24iLCJncmFkbGVQcm9wZXJ0eSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJCb29sZWFuIiwicHVzaCIsImtleXMiLCJ1cHBlckZpcnN0IiwiayIsInYiLCJ2ZXJzaW9uIiwicHJvcGVydGllc1BhdGgiLCJwYXRoIiwicmVzb2x2ZSIsIm9yaWdpbmFsUHJvcGVydGllcyIsImZzIiwicmVhZEZpbGUiLCJuZXdQcm9wZXJ0aWVzIiwidXBkYXRlR3JhZGxlRGlzdFVybCIsIndyaXRlRmlsZSIsInByb3BlcnRpZXNDb250ZW50IiwicmVwbGFjZSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsImhhc0FkZGl0aW9uYWxEZXBzIiwiaXNBcnJheSIsIkVycm9yIiwiaXNFbXB0eSIsImxpbmUiLCJ0cmltIiwiZGVwIiwidGVzdCIsImJ1aWxkUGF0aCIsImNvbmZpZ3VyYXRpb24iLCJwcmVmaXgiLCJkZXBzIiwiaW5mbyIsImRlYnVnIiwiam9pbiIsImdyYWRsZWJ1aWxkIiwiU3ViUHJvY2VzcyIsImN3ZCIsInN0ZGlvIiwiYnVpbGRMYXN0TGluZXMiLCJsb2dNc2ciLCJvbiIsInN0YXJ0c1dpdGgiLCJFT0wiLCJsZW5ndGgiLCJzdGFydCIsImVyciIsIm1zZyIsIm1lc3NhZ2UiLCJlcnJvckFuZFRocm93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxrQkFBa0IsR0FBRyxRQUEzQjtBQUNBLE1BQU1DLGlCQUFpQixHQUFHLGtCQUExQjtBQUNBLE1BQU1DLG1CQUFtQixHQUFHLG9FQUE1Qjs7QUFDQSxNQUFNQywwQkFBMEIsR0FBRyxFQUFuQztBQUNBLE1BQU1DLHFCQUFxQixHQUFHLENBQUMsMkJBQUQsRUFBOEIsbUNBQTlCLENBQTlCO0FBRUEsTUFBTUMsWUFBWSxHQUFHLENBQ25CTCxrQkFEbUIsRUFFbkIscUJBRm1CLEVBR25CLFlBSG1CLEVBSW5CLFlBSm1CLEVBS25CLFFBTG1CLEVBTW5CLFdBTm1CLEVBT25CLFFBUG1CLENBQXJCOzs7QUFVQSxNQUFNTSxTQUFTLEdBQUdDLHNCQUFPQyxTQUFQLENBQWlCLFFBQWpCLENBQWxCOztBQUVBLFNBQVNDLHdCQUFULENBQW1DQyxJQUFuQyxFQUF5QztBQUN2QyxTQUFPO0FBQ0xDLElBQUFBLFFBQVEsRUFBRSxJQURMO0FBRUxDLElBQUFBLFlBQVksRUFB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QyxNQUFNLEdBQUksc0JBQXFCLEtBQUt4RSxhQUFMLEdBQXFCLE1BQXJCLEdBQThCLFVBQVcsWUFBOUU7O0FBQ0FXLG9CQUFJc0QsS0FBSixDQUFXLEdBQUVPLE1BQU8sMERBQXBCOztBQUNBTCxJQUFBQSxXQUFXLENBQUNNLEVBQVosQ0FBZSxhQUFmLEVBQStCakIsSUFBRCxJQUFVO0FBQ3RDLFVBQUksS0FBS3hELGFBQVQsRUFBd0I7QUFDdEIsWUFBSXdELElBQUksQ0FBQ2tCLFVBQUwsQ0FBZ0IsVUFBaEIsQ0FBSixFQUFpQztBQUMvQnZGLFVBQUFBLFNBQVMsQ0FBQ3lCLElBQVYsQ0FBZTRDLElBQWY7QUFDRCxTQUZELE1BRU87QUFDTHJFLFVBQUFBLFNBQVMsQ0FBQzZFLElBQVYsQ0FBZVIsSUFBZjtBQUNEO0FBQ0Y7O0FBQ0RlLE1BQUFBLGNBQWMsQ0FBQ3RDLElBQWYsQ0FBcUIsR0FBRTBDLE9BQUksR0FBRW5CLElBQUssRUFBbEM7O0FBQ0EsVUFBSWUsY0FBYyxDQUFDSyxNQUFmLEdBQXdCNUYsMEJBQTVCLEVBQXdEO0FBQ3REdUYsUUFBQUEsY0FBYyxHQUFHQSxjQUFjLENBQUN4QyxLQUFmLENBQXFCLENBQUMvQywwQkFBdEIsQ0FBakI7QUFDRDtBQUNGLEtBWkQ7O0FBY0EsUUFBSTtBQUNGLFlBQU1tRixXQUFXLENBQUNVLEtBQVosRUFBTjtBQUNBLFlBQU1WLFdBQVcsQ0FBQ0QsSUFBWixFQUFOO0FBQ0QsS0FIRCxDQUdFLE9BQU9ZLEdBQVAsRUFBWTtBQUNaLFVBQUlDLEdBQUcsR0FBSSxxQ0FBb0NELEdBQUcsQ0FBQ0UsT0FBUSxJQUFqRCxHQUNQLHdCQUF1QkwsT0FBSSxHQUFFSixjQUFlLEVBRC9DOztBQUVBNUQsc0JBQUlzRSxhQUFKLENBQWtCRixHQUFsQjtBQUNEO0FBQ0Y7O0FBekppQjs7O2VBNkpMbEYsYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YlByb2Nlc3MgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZnMsIGxvZ2dlciwgc3lzdGVtIH0gZnJvbSAnYXBwaXVtLXN1cHBvcnQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBFT0wgfSBmcm9tICdvcyc7XG5pbXBvcnQgeyB1cGRhdGVEZXBlbmRlbmN5TGluZXMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgR1JBRExFX1ZFUlNJT05fS0VZID0gJ2dyYWRsZSc7XG5jb25zdCBHUkFETEVfVVJMX1BSRUZJWCA9ICdkaXN0cmlidXRpb25Vcmw9JztcbmNvbnN0IEdSQURMRV9VUkxfVEVNUExBVEUgPSAnaHR0cHNcXFxcOi8vc2VydmljZXMuZ3JhZGxlLm9yZy9kaXN0cmlidXRpb25zL2dyYWRsZS1WRVJTSU9OLWFsbC56aXAnO1xuY29uc3QgR1JBRExFX01BWF9FUlJPUl9MT0dfTElORVMgPSAxNTtcbmNvbnN0IERFUEVOREVOQ1lfUFJPUF9OQU1FUyA9IFsnYWRkaXRpb25hbEFwcERlcGVuZGVuY2llcycsICdhZGRpdGlvbmFsQW5kcm9pZFRlc3REZXBlbmRlbmNpZXMnXTtcblxuY29uc3QgVkVSU0lPTl9LRVlTID0gW1xuICBHUkFETEVfVkVSU0lPTl9LRVksXG4gICdhbmRyb2lkR3JhZGxlUGx1Z2luJyxcbiAgJ2NvbXBpbGVTZGsnLFxuICAnYnVpbGRUb29scycsXG4gICdtaW5TZGsnLFxuICAndGFyZ2V0U2RrJyxcbiAgJ2tvdGxpbidcbl07XG5cbmNvbnN0IGdyYWRsZUxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0dyYWRsZScpO1xuXG5mdW5jdGlvbiBidWlsZFNlcnZlclNpZ25pbmdDb25maWcgKGFyZ3MpIHtcbiAgcmV0dXJuIHtcbiAgICB6aXBBbGlnbjogdHJ1ZSxcbiAgICBrZXlzdG9yZUZpbGU6IGFyZ3Mua2V5c3RvcmVGaWxlLFxuICAgIGtleXN0b3JlUGFzc3dvcmQ6IGFyZ3Mua2V5c3RvcmVQYXNzd29yZCxcbiAgICBrZXlBbGlhczogYXJncy5rZXlBbGlhcyxcbiAgICBrZXlQYXNzd29yZDogYXJncy5rZXlQYXNzd29yZFxuICB9O1xufVxuXG5jbGFzcyBTZXJ2ZXJCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IgKGFyZ3MgPSB7fSkge1xuICAgIHRoaXMuc2VydmVyUGF0aCA9IGFyZ3Muc2VydmVyUGF0aDtcbiAgICB0aGlzLnNob3dHcmFkbGVMb2cgPSBhcmdzLnNob3dHcmFkbGVMb2c7XG5cbiAgICBjb25zdCBidWlsZENvbmZpZ3VyYXRpb24gPSBhcmdzLmJ1aWxkQ29uZmlndXJhdGlvbiB8fCB7fTtcblxuICAgIGNvbnN0IHZlcnNpb25Db25maWd1cmF0aW9uID0gYnVpbGRDb25maWd1cmF0aW9uLnRvb2xzVmVyc2lvbnMgfHwge307XG4gICAgdGhpcy5zZXJ2ZXJWZXJzaW9ucyA9IF8ucmVkdWNlKHZlcnNpb25Db25maWd1cmF0aW9uLCAoYWNjLCB2YWx1ZSwga2V5KSA9PiB7XG4gICAgICBpZiAoVkVSU0lPTl9LRVlTLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy53YXJuKGBHb3QgdW5leHBlY3RlZCAnJHtrZXl9JyBpbiB0b29sc1ZlcnNpb24gYmxvY2sgb2YgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb25gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuXG4gICAgdGhpcy50ZXN0QXBwUGFja2FnZSA9IGFyZ3MudGVzdEFwcFBhY2thZ2U7XG4gICAgdGhpcy5zaWduaW5nQ29uZmlnID0gYXJncy5zaWduaW5nQ29uZmlnO1xuXG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBERVBFTkRFTkNZX1BST1BfTkFNRVMpIHtcbiAgICAgIHRoaXNbcHJvcE5hbWVdID0gYnVpbGRDb25maWd1cmF0aW9uW3Byb3BOYW1lXSB8fCBbXTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBidWlsZCAoKSB7XG4gICAgaWYgKHRoaXMuc2VydmVyVmVyc2lvbnNbR1JBRExFX1ZFUlNJT05fS0VZXSkge1xuICAgICAgYXdhaXQgdGhpcy5zZXRHcmFkbGVXcmFwcGVyVmVyc2lvbih0aGlzLnNlcnZlclZlcnNpb25zW0dSQURMRV9WRVJTSU9OX0tFWV0pO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuaW5zZXJ0QWRkaXRpb25hbERlcGVuZGVuY2llcygpO1xuXG4gICAgYXdhaXQgdGhpcy5ydW5CdWlsZFByb2Nlc3MoKTtcbiAgfVxuXG4gIGdldENvbW1hbmQgKCkge1xuICAgIGNvbnN0IGNtZCA9IHN5c3RlbS5pc1dpbmRvd3MoKSA/ICdncmFkbGV3LmJhdCcgOiAnLi9ncmFkbGV3JztcbiAgICBjb25zdCBidWlsZFByb3BlcnR5ID0gKGtleSwgdmFsdWUpID0+IHZhbHVlID8gYC1QJHtrZXl9PSR7dmFsdWV9YCA6IG51bGw7XG4gICAgbGV0IGFyZ3MgPSBWRVJTSU9OX0tFWVNcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5ICE9PSBHUkFETEVfVkVSU0lPTl9LRVkpXG4gICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgY29uc3Qgc2VydmVyVmVyc2lvbiA9IHRoaXMuc2VydmVyVmVyc2lvbnNba2V5XTtcbiAgICAgICAgY29uc3QgZ3JhZGxlUHJvcGVydHkgPSBgYXBwaXVtJHtrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtrZXkuc2xpY2UoMSl9YDtcbiAgICAgICAgcmV0dXJuIGJ1aWxkUHJvcGVydHkoZ3JhZGxlUHJvcGVydHksIHNlcnZlclZlcnNpb24pO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBpZiAodGhpcy5zaWduaW5nQ29uZmlnKSB7XG4gICAgICBhcmdzLnB1c2goLi4uKFxuICAgICAgICBfLmtleXModGhpcy5zaWduaW5nQ29uZmlnKVxuICAgICAgICAubWFwKChrZXkpID0+IFtgYXBwaXVtJHtfLnVwcGVyRmlyc3Qoa2V5KX1gLCB0aGlzLnNpZ25pbmdDb25maWdba2V5XV0pXG4gICAgICAgIC5tYXAoKFtrLCB2XSkgPT4gYnVpbGRQcm9wZXJ0eShrLCB2KSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGVzdEFwcFBhY2thZ2UpIHtcbiAgICAgIGFyZ3MucHVzaChidWlsZFByb3BlcnR5KCdhcHBpdW1UYXJnZXRQYWNrYWdlJywgdGhpcy50ZXN0QXBwUGFja2FnZSkpO1xuICAgIH1cbiAgICBhcmdzLnB1c2goJ2FwcDphc3NlbWJsZUFuZHJvaWRUZXN0Jyk7XG5cbiAgICByZXR1cm4ge2NtZCwgYXJnc307XG4gIH1cblxuICBhc3luYyBzZXRHcmFkbGVXcmFwcGVyVmVyc2lvbiAodmVyc2lvbikge1xuICAgIGNvbnN0IHByb3BlcnRpZXNQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2dyYWRsZScsICd3cmFwcGVyJywgJ2dyYWRsZS13cmFwcGVyLnByb3BlcnRpZXMnKTtcbiAgICBjb25zdCBvcmlnaW5hbFByb3BlcnRpZXMgPSBhd2FpdCBmcy5yZWFkRmlsZShwcm9wZXJ0aWVzUGF0aCwgJ3V0ZjgnKTtcbiAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0gdGhpcy51cGRhdGVHcmFkbGVEaXN0VXJsKG9yaWdpbmFsUHJvcGVydGllcywgdmVyc2lvbik7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHByb3BlcnRpZXNQYXRoLCBuZXdQcm9wZXJ0aWVzLCAndXRmOCcpO1xuICB9XG5cbiAgdXBkYXRlR3JhZGxlRGlzdFVybCAocHJvcGVydGllc0NvbnRlbnQsIHZlcnNpb24pIHtcbiAgICByZXR1cm4gcHJvcGVydGllc0NvbnRlbnQucmVwbGFjZShcbiAgICAgIG5ldyBSZWdFeHAoYF4oJHtfLmVzY2FwZVJlZ0V4cChHUkFETEVfVVJMX1BSRUZJWCl9KS4rJGAsICdnbScpLFxuICAgICAgYCQxJHtHUkFETEVfVVJMX1RFTVBMQVRFLnJlcGxhY2UoJ1ZFUlNJT04nLCB2ZXJzaW9uKX1gXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMgKCkge1xuICAgIGxldCBoYXNBZGRpdGlvbmFsRGVwcyA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgb2YgREVQRU5ERU5DWV9QUk9QX05BTUVTKSB7XG4gICAgICBpZiAoIV8uaXNBcnJheSh0aGlzW3Byb3BOYW1lXSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtwcm9wTmFtZX0nIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICAgIH1cbiAgICAgIGlmIChfLmlzRW1wdHkodGhpc1twcm9wTmFtZV0uZmlsdGVyKChsaW5lKSA9PiBfLnRyaW0obGluZSkpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBkZXAgb2YgdGhpc1twcm9wTmFtZV0pIHtcbiAgICAgICAgaWYgKC9bXFxzJ1xcXFwkXS8udGVzdChkZXApKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaW5nbGUgcXVvdGVzLCBkb2xsYXIgY2hhcmFjdGVycyBhbmQgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzJyArXG4gICAgICAgICAgICBgIGFyZSBkaXNhbGxvd2VkIGluIGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzOiAke2RlcH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaGFzQWRkaXRpb25hbERlcHMgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWhhc0FkZGl0aW9uYWxEZXBzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMuc2VydmVyUGF0aCwgJ2FwcCcsICdidWlsZC5ncmFkbGUua3RzJyk7XG4gICAgbGV0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBmcy5yZWFkRmlsZShidWlsZFBhdGgsICd1dGY4Jyk7XG4gICAgZm9yIChjb25zdCBwcm9wTmFtZSBvZiBERVBFTkRFTkNZX1BST1BfTkFNRVMpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IHByb3BOYW1lID09PSBERVBFTkRFTkNZX1BST1BfTkFNRVNbMF1cbiAgICAgICAgPyAnaW1wbGVtZW50YXRpb24nXG4gICAgICAgIDogJ2FuZHJvaWRUZXN0SW1wbGVtZW50YXRpb24nO1xuICAgICAgY29uc3QgZGVwcyA9IHRoaXNbcHJvcE5hbWVdXG4gICAgICAgIC5maWx0ZXIoKGxpbmUpID0+IF8udHJpbShsaW5lKSlcbiAgICAgICAgLm1hcCgobGluZSkgPT4gYCR7cHJlZml4fShcIiR7bGluZX1cIilgKTtcbiAgICAgIGlmIChfLmlzRW1wdHkoZGVwcykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxvZy5pbmZvKGBBZGRpbmcgdGhlIGZvbGxvd2luZyAke3Byb3BOYW1lfSB0byBidWlsZC5ncmFkbGUua3RzOiAke2RlcHN9YCk7XG4gICAgICBjb25maWd1cmF0aW9uID0gdXBkYXRlRGVwZW5kZW5jeUxpbmVzKGNvbmZpZ3VyYXRpb24sIHByb3BOYW1lLCBkZXBzKTtcbiAgICB9XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGJ1aWxkUGF0aCwgY29uZmlndXJhdGlvbiwgJ3V0ZjgnKTtcbiAgfVxuXG4gIGFzeW5jIHJ1bkJ1aWxkUHJvY2VzcyAoKSB7XG4gICAgY29uc3Qge2NtZCwgYXJnc30gPSB0aGlzLmdldENvbW1hbmQoKTtcbiAgICBsb2cuZGVidWcoYEJlZ2lubmluZyBidWlsZCB3aXRoIGNvbW1hbmQgJyR7Y21kfSAke2FyZ3Muam9pbignICcpfScgYCArXG4gICAgICBgaW4gZGlyZWN0b3J5ICcke3RoaXMuc2VydmVyUGF0aH0nYCk7XG4gICAgY29uc3QgZ3JhZGxlYnVpbGQgPSBuZXcgU3ViUHJvY2VzcyhjbWQsIGFyZ3MsIHtcbiAgICAgIGN3ZDogdGhpcy5zZXJ2ZXJQYXRoLFxuICAgICAgc3RkaW86IFsnaWdub3JlJywgJ3BpcGUnLCAncGlwZSddLFxuICAgIH0pO1xuICAgIGxldCBidWlsZExhc3RMaW5lcyA9IFtdO1xuXG4gICAgY29uc3QgbG9nTXNnID0gYE91dHB1dCBmcm9tIEdyYWRsZSAke3RoaXMuc2hvd0dyYWRsZUxvZyA/ICd3aWxsJyA6ICd3aWxsIG5vdCd9IGJlIGxvZ2dlZGA7XG4gICAgbG9nLmRlYnVnKGAke2xvZ01zZ30uIFRvIGNoYW5nZSB0aGlzLCB1c2UgJ3Nob3dHcmFkbGVMb2cnIGRlc2lyZWQgY2FwYWJpbGl0eWApO1xuICAgIGdyYWRsZWJ1aWxkLm9uKCdzdHJlYW0tbGluZScsIChsaW5lKSA9PiB7XG4gICAgICBpZiAodGhpcy5zaG93R3JhZGxlTG9nKSB7XG4gICAgICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoJ1tTVERFUlJdJykpIHtcbiAgICAgICAgICBncmFkbGVMb2cud2FybihsaW5lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncmFkbGVMb2cuaW5mbyhsaW5lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnVpbGRMYXN0TGluZXMucHVzaChgJHtFT0x9JHtsaW5lfWApO1xuICAgICAgaWYgKGJ1aWxkTGFzdExpbmVzLmxlbmd0aCA+IEdSQURMRV9NQVhfRVJST1JfTE9HX0xJTkVTKSB7XG4gICAgICAgIGJ1aWxkTGFzdExpbmVzID0gYnVpbGRMYXN0TGluZXMuc2xpY2UoLUdSQURMRV9NQVhfRVJST1JfTE9HX0xJTkVTKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBncmFkbGVidWlsZC5zdGFydCgpO1xuICAgICAgYXdhaXQgZ3JhZGxlYnVpbGQuam9pbigpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbGV0IG1zZyA9IGBVbmFibGUgdG8gYnVpbGQgRXNwcmVzc28gc2VydmVyIC0gJHtlcnIubWVzc2FnZX1cXG5gICtcbiAgICAgICAgYEdyYWRsZSBlcnJvciBtZXNzYWdlOiR7RU9MfSR7YnVpbGRMYXN0TGluZXN9YDtcbiAgICAgIGxvZy5lcnJvckFuZFRocm93KG1zZyk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IFNlcnZlckJ1aWxkZXIsIFZFUlNJT05fS0VZUywgR1JBRExFX1VSTF9URU1QTEFURSwgYnVpbGRTZXJ2ZXJTaWduaW5nQ29uZmlnIH07XG5leHBvcnQgZGVmYXVsdCBTZXJ2ZXJCdWlsZGVyO1xuIl0sImZpbGUiOiJsaWIvc2VydmVyLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.startServer = startServer;
9
+ exports.default = void 0;
10
+
11
+ require("source-map-support/register");
12
+
13
+ var _logger = _interopRequireDefault(require("./logger"));
14
+
15
+ var _appiumBaseDriver = require("appium-base-driver");
16
+
17
+ var _driver = _interopRequireDefault(require("./driver"));
18
+
19
+ async function startServer(port, host) {
20
+ const d = new _driver.default({
21
+ port,
22
+ host
23
+ });
24
+ const server = (0, _appiumBaseDriver.server)({
25
+ routeConfiguringFunction: (0, _appiumBaseDriver.routeConfiguringFunction)(d),
26
+ port,
27
+ hostname: host
28
+ });
29
+
30
+ _logger.default.info(`Android Espresso Driver listening on http://${host}:${port}`);
31
+
32
+ return await server;
33
+ }
34
+
35
+ var _default = startServer;
36
+ exports.default = _default;require('source-map-support').install();
37
+
38
+
39
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zZXJ2ZXIuanMiXSwibmFtZXMiOlsic3RhcnRTZXJ2ZXIiLCJwb3J0IiwiaG9zdCIsImQiLCJFc3ByZXNzb0RyaXZlciIsInNlcnZlciIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsImhvc3RuYW1lIiwibG9nIiwiaW5mbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0EsZUFBZUEsV0FBZixDQUE0QkMsSUFBNUIsRUFBa0NDLElBQWxDLEVBQXdDO0FBQ3RDLFFBQU1DLENBQUMsR0FBRyxJQUFJQyxlQUFKLENBQW1CO0FBQUNILElBQUFBLElBQUQ7QUFBT0MsSUFBQUE7QUFBUCxHQUFuQixDQUFWO0FBQ0EsUUFBTUcsTUFBTSxHQUFHLDhCQUFXO0FBQ3hCQyxJQUFBQSx3QkFBd0IsRUFBRSxnREFBeUJILENBQXpCLENBREY7QUFFeEJGLElBQUFBLElBRndCO0FBR3hCTSxJQUFBQSxRQUFRLEVBQUVMO0FBSGMsR0FBWCxDQUFmOztBQUtBTSxrQkFBSUMsSUFBSixDQUFVLCtDQUE4Q1AsSUFBSyxJQUFHRCxJQUFLLEVBQXJFOztBQUNBLFNBQU8sTUFBTUksTUFBYjtBQUNEOztlQUdjTCxXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBzZXJ2ZXIgYXMgYmFzZVNlcnZlciwgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIH0gZnJvbSAnYXBwaXVtLWJhc2UtZHJpdmVyJztcbmltcG9ydCBFc3ByZXNzb0RyaXZlciBmcm9tICcuL2RyaXZlcic7XG5cblxuYXN5bmMgZnVuY3Rpb24gc3RhcnRTZXJ2ZXIgKHBvcnQsIGhvc3QpIHtcbiAgY29uc3QgZCA9IG5ldyBFc3ByZXNzb0RyaXZlcih7cG9ydCwgaG9zdH0pO1xuICBjb25zdCBzZXJ2ZXIgPSBiYXNlU2VydmVyKHtcbiAgICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb246IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbihkKSxcbiAgICBwb3J0LFxuICAgIGhvc3RuYW1lOiBob3N0LFxuICB9KTtcbiAgbG9nLmluZm8oYEFuZHJvaWQgRXNwcmVzc28gRHJpdmVyIGxpc3RlbmluZyBvbiBodHRwOi8vJHtob3N0fToke3BvcnR9YCk7XG4gIHJldHVybiBhd2FpdCBzZXJ2ZXI7XG59XG5cbmV4cG9ydCB7IHN0YXJ0U2VydmVyIH07XG5leHBvcnQgZGVmYXVsdCBzdGFydFNlcnZlcjtcbiJdLCJmaWxlIjoibGliL3NlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.qualifyActivityName = qualifyActivityName;
9
+ exports.copyGradleProjectRecursively = copyGradleProjectRecursively;
10
+ exports.requireOptions = requireOptions;
11
+ exports.updateDependencyLines = updateDependencyLines;
12
+
13
+ require("source-map-support/register");
14
+
15
+ var _appiumSupport = require("appium-support");
16
+
17
+ var _lodash = _interopRequireDefault(require("lodash"));
18
+
19
+ var _path = _interopRequireDefault(require("path"));
20
+
21
+ function qualifyActivityName(activityName, packageName) {
22
+ if ([activityName, packageName].some(name => !name || _lodash.default.includes(name, '*'))) {
23
+ return activityName;
24
+ }
25
+
26
+ const dotPos = activityName.indexOf('.');
27
+
28
+ if (dotPos > 0) {
29
+ return activityName;
30
+ }
31
+
32
+ return `${packageName}${dotPos === 0 ? '' : '.'}${activityName}`;
33
+ }
34
+
35
+ async function copyGradleProjectRecursively(sourceBaseDir, targetBaseDir) {
36
+ await _appiumSupport.fs.walkDir(sourceBaseDir, true, async (itemPath, isDirectory) => {
37
+ const relativePath = _path.default.relative(sourceBaseDir, itemPath);
38
+
39
+ const targetPath = _path.default.resolve(targetBaseDir, relativePath);
40
+
41
+ const isInGradleBuildDir = `${_path.default.sep}${itemPath}`.includes(`${_path.default.sep}build${_path.default.sep}`);
42
+
43
+ if (isInGradleBuildDir) {
44
+ return false;
45
+ }
46
+
47
+ if (isDirectory) {
48
+ await (0, _appiumSupport.mkdirp)(targetPath);
49
+ } else {
50
+ await _appiumSupport.fs.copyFile(itemPath, targetPath);
51
+ }
52
+
53
+ return false;
54
+ });
55
+ }
56
+
57
+ function requireOptions(opts, requiredKeys = []) {
58
+ const missingKeys = _lodash.default.difference(requiredKeys, _lodash.default.keys(opts));
59
+
60
+ if (!_lodash.default.isEmpty(missingKeys)) {
61
+ throw new Error(`The following options are required: ${missingKeys}`);
62
+ }
63
+
64
+ return opts;
65
+ }
66
+
67
+ function updateDependencyLines(originalContent, dependencyPlaceholder, dependencyLines) {
68
+ const configurationLines = originalContent.split('\n');
69
+ const searchRe = new RegExp(`^\\s*//\\s*\\b${_lodash.default.escapeRegExp(dependencyPlaceholder)}\\b`, 'm');
70
+ const placeholderIndex = configurationLines.findIndex(line => searchRe.test(line));
71
+
72
+ if (placeholderIndex < 0) {
73
+ return originalContent;
74
+ }
75
+
76
+ const placeholderLine = configurationLines[placeholderIndex];
77
+
78
+ const indentLen = placeholderLine.length - _lodash.default.trimStart(placeholderLine).length;
79
+
80
+ configurationLines.splice(placeholderIndex + 1, 0, ...dependencyLines.map(line => `${' '.repeat(indentLen)}${line}`));
81
+ return configurationLines.join('\n');
82
+ }require('source-map-support').install();
83
+
84
+
85
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlscy5qcyJdLCJuYW1lcyI6WyJxdWFsaWZ5QWN0aXZpdHlOYW1lIiwiYWN0aXZpdHlOYW1lIiwicGFja2FnZU5hbWUiLCJzb21lIiwibmFtZSIsIl8iLCJpbmNsdWRlcyIsImRvdFBvcyIsImluZGV4T2YiLCJjb3B5R3JhZGxlUHJvamVjdFJlY3Vyc2l2ZWx5Iiwic291cmNlQmFzZURpciIsInRhcmdldEJhc2VEaXIiLCJmcyIsIndhbGtEaXIiLCJpdGVtUGF0aCIsImlzRGlyZWN0b3J5IiwicmVsYXRpdmVQYXRoIiwicGF0aCIsInJlbGF0aXZlIiwidGFyZ2V0UGF0aCIsInJlc29sdmUiLCJpc0luR3JhZGxlQnVpbGREaXIiLCJzZXAiLCJjb3B5RmlsZSIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcXVpcmVkS2V5cyIsIm1pc3NpbmdLZXlzIiwiZGlmZmVyZW5jZSIsImtleXMiLCJpc0VtcHR5IiwiRXJyb3IiLCJ1cGRhdGVEZXBlbmRlbmN5TGluZXMiLCJvcmlnaW5hbENvbnRlbnQiLCJkZXBlbmRlbmN5UGxhY2Vob2xkZXIiLCJkZXBlbmRlbmN5TGluZXMiLCJjb25maWd1cmF0aW9uTGluZXMiLCJzcGxpdCIsInNlYXJjaFJlIiwiUmVnRXhwIiwiZXNjYXBlUmVnRXhwIiwicGxhY2Vob2xkZXJJbmRleCIsImZpbmRJbmRleCIsImxpbmUiLCJ0ZXN0IiwicGxhY2Vob2xkZXJMaW5lIiwiaW5kZW50TGVuIiwibGVuZ3RoIiwidHJpbVN0YXJ0Iiwic3BsaWNlIiwibWFwIiwicmVwZWF0Iiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFTQSxTQUFTQSxtQkFBVCxDQUE4QkMsWUFBOUIsRUFBNENDLFdBQTVDLEVBQXlEO0FBSXZELE1BQUksQ0FBQ0QsWUFBRCxFQUFlQyxXQUFmLEVBQTRCQyxJQUE1QixDQUFrQ0MsSUFBRCxJQUFVLENBQUNBLElBQUQsSUFBU0MsZ0JBQUVDLFFBQUYsQ0FB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LEVBRE0sQ0FBdkQ7QUFFQSxTQUFPUCxrQkFBa0IsQ0FBQ2dCLElBQW5CLENBQXdCLElBQXhCLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZzLCBta2RpcnAgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbi8qKlxuICogaHR0cHM6Ly9hbmRyb2lkLmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vZnJhbWV3b3Jrcy9iYXNlLysvbWFzdGVyL3Rvb2xzL2FhcHQvUmVzb3VyY2UuY3BwIzc1NVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhY3Rpdml0eU5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYWNrYWdlTmFtZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHF1YWxpZmllZCBhY3Rpdml0eSBuYW1lXG4gKi9cbmZ1bmN0aW9uIHF1YWxpZnlBY3Rpdml0eU5hbWUgKGFjdGl2aXR5TmFtZSwgcGFja2FnZU5hbWUpIHtcbiAgLy8gaWYgZWl0aGVyIGFjdGl2aXR5IG9yIHBhY2thZ2UgbmFtZSBpcyBub3Qgc2V0XG4gIC8vIG9yIGFueSBvZiB0aGVzZSBjb250YWluIHdpbGRjYXJkcyB0aGVuIHRoZXJlIGlzXG4gIC8vIG5vIHBvaW50IGluIHF1YWxpZnlpbmcgdGhlIGFjdGl2aXR5IG5hbWVcbiAgaWYgKFthY3Rpdml0eU5hbWUsIHBhY2thZ2VOYW1lXS5zb21lKChuYW1lKSA9PiAhbmFtZSB8fCBfLmluY2x1ZGVzKG5hbWUsICcqJykpKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcbiAgfVxuXG4gIGNvbnN0IGRvdFBvcyA9IGFjdGl2aXR5TmFtZS5pbmRleE9mKCcuJyk7XG4gIGlmIChkb3RQb3MgPiAwKSB7XG4gICAgcmV0dXJuIGFjdGl2aXR5TmFtZTtcbiAgfVxuICByZXR1cm4gYCR7cGFja2FnZU5hbWV9JHtkb3RQb3MgPT09IDAgPyAnJyA6ICcuJ30ke2FjdGl2aXR5TmFtZX1gO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGNvcHkgYWxsIGZpbGVzIGV4Y2VwdCBidWlsZCBkaXJlY3RvcmllcyBjb250ZW50c1xuICogQHBhcmFtIHNvdXJjZUJhc2VEaXIge3N0cmluZ30gZGlyZWN0b3J5IHRvIGNvcHkgZmlsZXMgZnJvbVxuICogQHBhcmFtIHRhcmdldEJhc2VEaXIge3N0cmluZ30gZGlyZWN0b3J5IHRvIGNvcHkgZmlsZXMgdG9cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY29weUdyYWRsZVByb2plY3RSZWN1cnNpdmVseSAoc291cmNlQmFzZURpciwgdGFyZ2V0QmFzZURpcikge1xuICBhd2FpdCBmcy53YWxrRGlyKHNvdXJjZUJhc2VEaXIsIHRydWUsIGFzeW5jIChpdGVtUGF0aCwgaXNEaXJlY3RvcnkpID0+IHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHNvdXJjZUJhc2VEaXIsIGl0ZW1QYXRoKTtcbiAgICBjb25zdCB0YXJnZXRQYXRoID0gcGF0aC5yZXNvbHZlKHRhcmdldEJhc2VEaXIsIHJlbGF0aXZlUGF0aCk7XG5cbiAgICBjb25zdCBpc0luR3JhZGxlQnVpbGREaXIgPSBgJHtwYXRoLnNlcH0ke2l0ZW1QYXRofWAuaW5jbHVkZXMoYCR7cGF0aC5zZXB9YnVpbGQke3BhdGguc2VwfWApO1xuICAgIGlmIChpc0luR3JhZGxlQnVpbGREaXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNEaXJlY3RvcnkpIHtcbiAgICAgIGF3YWl0IG1rZGlycCh0YXJnZXRQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgZnMuY29weUZpbGUoaXRlbVBhdGgsIHRhcmdldFBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXF1aXJlT3B0aW9ucyAob3B0cywgcmVxdWlyZWRLZXlzID0gW10pIHtcbiAgY29uc3QgbWlzc2luZ0tleXMgPSBfLmRpZmZlcmVuY2UocmVxdWlyZWRLZXlzLCBfLmtleXMob3B0cykpO1xuICBpZiAoIV8uaXNFbXB0eShtaXNzaW5nS2V5cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgcmVxdWlyZWQ6ICR7bWlzc2luZ0tleXN9YCk7XG4gIH1cbiAgcmV0dXJuIG9wdHM7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZURlcGVuZGVuY3lMaW5lcyAob3JpZ2luYWxDb250ZW50LCBkZXBlbmRlbmN5UGxhY2Vob2xkZXIsIGRlcGVuZGVuY3lMaW5lcykge1xuICBjb25zdCBjb25maWd1cmF0aW9uTGluZXMgPSBvcmlnaW5hbENvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBzZWFyY2hSZSA9IG5ldyBSZWdFeHAoYF5cXFxccyovL1xcXFxzKlxcXFxiJHtfLmVzY2FwZVJlZ0V4cChkZXBlbmRlbmN5UGxhY2Vob2xkZXIpfVxcXFxiYCwgJ20nKTtcbiAgY29uc3QgcGxhY2Vob2xkZXJJbmRleCA9IGNvbmZpZ3VyYXRpb25MaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IHNlYXJjaFJlLnRlc3QobGluZSkpO1xuICBpZiAocGxhY2Vob2xkZXJJbmRleCA8IDApIHtcbiAgICByZXR1cm4gb3JpZ2luYWxDb250ZW50O1xuICB9XG5cbiAgY29uc3QgcGxhY2Vob2xkZXJMaW5lID0gY29uZmlndXJhdGlvbkxpbmVzW3BsYWNlaG9sZGVySW5kZXhdO1xuICBjb25zdCBpbmRlbnRMZW4gPSBwbGFjZWhvbGRlckxpbmUubGVuZ3RoIC0gXy50cmltU3RhcnQocGxhY2Vob2xkZXJMaW5lKS5sZW5ndGg7XG4gIGNvbmZpZ3VyYXRpb25MaW5lcy5zcGxpY2UocGxhY2Vob2xkZXJJbmRleCArIDEsIDAsIC4uLihkZXBlbmRlbmN5TGluZXNcbiAgICAubWFwKChsaW5lKSA9PiBgJHsnICcucmVwZWF0KGluZGVudExlbil9JHtsaW5lfWApKSk7XG4gIHJldHVybiBjb25maWd1cmF0aW9uTGluZXMuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCB7IHF1YWxpZnlBY3Rpdml0eU5hbWUsIGNvcHlHcmFkbGVQcm9qZWN0UmVjdXJzaXZlbHksIHJlcXVpcmVPcHRpb25zLCB1cGRhdGVEZXBlbmRlbmN5TGluZXMgfTtcbiJdLCJmaWxlIjoibGliL3V0aWxzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": 2,
3
+ "artifactType": {
4
+ "type": "APK",
5
+ "kind": "Directory"
6
+ },
7
+ "applicationId": "io.appium.espressoserver.test",
8
+ "variantName": "processDebugAndroidTestResources",
9
+ "elements": [
10
+ {
11
+ "type": "SINGLE",
12
+ "filters": [],
13
+ "versionCode": 0,
14
+ "versionName": "",
15
+ "outputFile": "app-debug-androidTest.apk"
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,153 @@
1
+ plugins {
2
+ id("com.android.application")
3
+ kotlin("android")
4
+ }
5
+
6
+ android {
7
+ compileSdkVersion(getIntProperty("appiumCompileSdk", 30))
8
+ buildToolsVersion(getStringProperty("appiumBuildTools", "30.0.3"))
9
+ defaultConfig {
10
+ // <instrumentation android:targetPackage=""/>
11
+ applicationId = getStringProperty("appiumTargetPackage", "io.appium.espressoserver")
12
+ // <manifest package=""/>
13
+ testApplicationId = "io.appium.espressoserver.test"
14
+ testHandleProfiling = false
15
+ testFunctionalTest = false
16
+ minSdkVersion(getIntProperty("appiumMinSdk", 21))
17
+ targetSdkVersion(getIntProperty("appiumTargetSdk", 28))
18
+ versionCode = 1
19
+ versionName = "1.0"
20
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
21
+ }
22
+
23
+ buildTypes {
24
+ getByName("debug") {
25
+ zipAlignEnabled(getBooleanProperty("appiumZipAlign", true))
26
+ }
27
+ getByName("release") {
28
+ isMinifyEnabled = false
29
+ proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
30
+ }
31
+ }
32
+
33
+ sourceSets {
34
+ getByName("test") {
35
+ java.srcDirs("src/androidTest/java")
36
+ }
37
+ }
38
+
39
+ testOptions {
40
+ unitTests.isReturnDefaultValues = true
41
+ }
42
+
43
+ signingConfigs {
44
+ getByName("debug") {
45
+ findProperty("appiumKeystoreFile")?.also {
46
+ storeFile(File(it.toString()))
47
+ }
48
+
49
+ findProperty("appiumKeystorePassword")?.also {
50
+ storePassword(it.toString())
51
+ }
52
+
53
+ findProperty("appiumKeyAlias")?.also {
54
+ keyAlias(it.toString())
55
+ }
56
+
57
+ findProperty("appiumKeyPassword")?.also {
58
+ keyPassword(it.toString())
59
+ }
60
+ }
61
+ }
62
+
63
+ compileOptions {
64
+ sourceCompatibility = JavaVersion.VERSION_1_8
65
+ targetCompatibility = JavaVersion.VERSION_1_8
66
+ }
67
+
68
+ kotlinOptions {
69
+ jvmTarget = JavaVersion.VERSION_1_8.toString()
70
+ }
71
+
72
+ packagingOptions {
73
+ exclude("META-INF/**")
74
+ }
75
+ }
76
+
77
+ dependencies {
78
+ implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
79
+ // additionalAppDependencies placeholder (don't change or delete this line)
80
+
81
+ testImplementation("org.powermock:powermock-api-mockito2:${Version.mocklib}")
82
+ testImplementation("org.powermock:powermock-classloading-xstream:${Version.mocklib}")
83
+ testImplementation("org.powermock:powermock-module-junit4-rule:${Version.mocklib}")
84
+ testImplementation("org.powermock:powermock-module-junit4:${Version.mocklib}")
85
+ testImplementation("androidx.annotation:annotation:${Version.annotation}")
86
+ testImplementation("androidx.test.espresso:espresso-contrib:${Version.espresso}")
87
+ testImplementation("androidx.test.espresso:espresso-core:${Version.espresso}")
88
+ testImplementation("androidx.test.espresso:espresso-web:${Version.espresso}")
89
+ testImplementation("androidx.test.uiautomator:uiautomator:${Version.uia}")
90
+ testImplementation("androidx.test:core:${Version.testlib}")
91
+ testImplementation("androidx.test:runner:${Version.testlib}")
92
+ testImplementation("androidx.test:rules:${Version.testlib}")
93
+ testImplementation("com.google.code.gson:gson:${Version.gson}")
94
+ testImplementation("junit:junit:${Version.junit}")
95
+ testImplementation("org.mockito:mockito-core:${Version.mockito}")
96
+ testImplementation("org.nanohttpd:nanohttpd-webserver:${Version.nanohttpd}")
97
+ testImplementation("org.robolectric:robolectric:${Version.robolectric}")
98
+ testImplementation("org.jetbrains.kotlin:kotlin-test:${Version.kotlin}")
99
+ testImplementation("org.jetbrains.kotlin:kotlin-test-junit:${Version.kotlin}")
100
+ testImplementation("org.jetbrains.kotlin:kotlin-reflect:${Version.kotlin}")
101
+ testImplementation("androidx.compose.ui:ui-test:${Version.compose}")
102
+ testImplementation("androidx.compose.ui:ui-test-junit4:${Version.compose}")
103
+
104
+ androidTestImplementation("androidx.annotation:annotation:${Version.annotation}")
105
+ androidTestImplementation("androidx.test.espresso:espresso-contrib:${Version.espresso}") {
106
+ // Exclude transitive dependencies to limit conflicts with AndroidX libraries from AUT.
107
+ // Link to PR with fix and discussion https://github.com/appium/appium-espresso-driver/pull/596
108
+ isTransitive = false
109
+ }
110
+ androidTestImplementation("androidx.test.espresso:espresso-web:${Version.espresso}")
111
+ androidTestImplementation("androidx.test.uiautomator:uiautomator:${Version.uia}")
112
+ androidTestImplementation("androidx.test:core:${Version.testlib}")
113
+ androidTestImplementation("androidx.test:runner:${Version.testlib}")
114
+ androidTestImplementation("androidx.test:rules:${Version.testlib}")
115
+ androidTestImplementation("com.google.code.gson:gson:${Version.gson}")
116
+ androidTestImplementation("org.nanohttpd:nanohttpd-webserver:${Version.nanohttpd}")
117
+ androidTestImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${Version.kotlin}")
118
+ androidTestImplementation("org.jetbrains.kotlin:kotlin-reflect:${Version.kotlin}")
119
+ androidTestImplementation("androidx.compose.ui:ui-test:${Version.compose}")
120
+ androidTestImplementation("androidx.compose.ui:ui-test-junit4:${Version.compose}"){
121
+ isTransitive = false
122
+ }
123
+
124
+ // additionalAndroidTestDependencies placeholder (don't change or delete this line)
125
+ }
126
+
127
+ tasks.withType<Test> {
128
+ systemProperty("skipespressoserver", "true")
129
+ }
130
+
131
+ object Version {
132
+ const val kotlin = "1.4.32"
133
+ const val espresso = "3.3.0"
134
+ const val testlib = "1.3.0"
135
+ const val mocklib = "1.7.4"
136
+ const val gson = "2.8.6"
137
+ const val uia = "2.2.0"
138
+ const val nanohttpd = "2.3.1"
139
+ const val annotation = "1.1.0"
140
+ const val mockito = "2.8.9"
141
+ const val robolectric = "4.5.1"
142
+ const val junit = "4.13"
143
+ const val compose = "1.0.0"
144
+ }
145
+
146
+ fun Project.getStringProperty(name: String, default: String): String =
147
+ properties.getOrDefault(name, default).toString()
148
+
149
+ fun Project.getIntProperty(name: String, default: Int): Int =
150
+ this.getStringProperty(name, default.toString()).toInt()
151
+
152
+ fun Project.getBooleanProperty(name: String, default: Boolean): Boolean =
153
+ this.getStringProperty(name, default.toString()).toBoolean()
@@ -0,0 +1,25 @@
1
+ # Add project specific ProGuard rules here.
2
+ # By default, the flags in this file are appended to flags specified
3
+ # in ~/Library/Android/sdk/tools/proguard/proguard-android.txt
4
+ # You can edit the include path and order by changing the proguardFiles
5
+ # directive in build.gradle.kts.
6
+ #
7
+ # For more details, see
8
+ # http://developer.android.com/guide/developing/tools/proguard.html
9
+
10
+ # Add any project specific keep options here:
11
+
12
+ # If your project uses WebView with JS, uncomment the following
13
+ # and specify the fully qualified class name to the JavaScript interface
14
+ # class:
15
+ #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16
+ # public *;
17
+ #}
18
+
19
+ # Uncomment this to preserve the line number information for
20
+ # debugging stack traces.
21
+ #-keepattributes SourceFile,LineNumberTable
22
+
23
+ # If you keep the line number information, uncomment this to
24
+ # hide the original source file name.
25
+ #-renamesourcefileattribute SourceFile