appium-mcp 1.8.11 → 1.8.13

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 (517) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/command.d.ts +107 -0
  3. package/dist/command.d.ts.map +1 -0
  4. package/dist/command.js +214 -0
  5. package/dist/command.js.map +1 -0
  6. package/dist/session-store.d.ts +30 -3
  7. package/dist/session-store.d.ts.map +1 -1
  8. package/dist/session-store.js +29 -0
  9. package/dist/session-store.js.map +1 -1
  10. package/dist/tools/app-management/activate-app.d.ts.map +1 -1
  11. package/dist/tools/app-management/activate-app.js +2 -1
  12. package/dist/tools/app-management/activate-app.js.map +1 -1
  13. package/dist/tools/app-management/install-app.d.ts.map +1 -1
  14. package/dist/tools/app-management/install-app.js +4 -7
  15. package/dist/tools/app-management/install-app.js.map +1 -1
  16. package/dist/tools/app-management/terminate-app.d.ts.map +1 -1
  17. package/dist/tools/app-management/terminate-app.js +4 -7
  18. package/dist/tools/app-management/terminate-app.js.map +1 -1
  19. package/dist/tools/app-management/uninstall-app.d.ts.map +1 -1
  20. package/dist/tools/app-management/uninstall-app.js +4 -7
  21. package/dist/tools/app-management/uninstall-app.js.map +1 -1
  22. package/dist/tools/context/get-contexts.d.ts.map +1 -1
  23. package/dist/tools/context/get-contexts.js +4 -3
  24. package/dist/tools/context/get-contexts.js.map +1 -1
  25. package/dist/tools/context/switch-context.d.ts.map +1 -1
  26. package/dist/tools/context/switch-context.js +6 -5
  27. package/dist/tools/context/switch-context.js.map +1 -1
  28. package/dist/tools/interactions/click.d.ts.map +1 -1
  29. package/dist/tools/interactions/click.js +3 -4
  30. package/dist/tools/interactions/click.js.map +1 -1
  31. package/dist/tools/interactions/double-tap.d.ts.map +1 -1
  32. package/dist/tools/interactions/double-tap.js +13 -16
  33. package/dist/tools/interactions/double-tap.js.map +1 -1
  34. package/dist/tools/interactions/drag-and-drop.d.ts.map +1 -1
  35. package/dist/tools/interactions/drag-and-drop.js +4 -3
  36. package/dist/tools/interactions/drag-and-drop.js.map +1 -1
  37. package/dist/tools/interactions/find.d.ts +2 -2
  38. package/dist/tools/interactions/find.d.ts.map +1 -1
  39. package/dist/tools/interactions/find.js +1 -1
  40. package/dist/tools/interactions/find.js.map +1 -1
  41. package/dist/tools/interactions/get-page-source.d.ts.map +1 -1
  42. package/dist/tools/interactions/get-page-source.js +2 -1
  43. package/dist/tools/interactions/get-page-source.js.map +1 -1
  44. package/dist/tools/interactions/get-text.d.ts.map +1 -1
  45. package/dist/tools/interactions/get-text.js +3 -4
  46. package/dist/tools/interactions/get-text.js.map +1 -1
  47. package/dist/tools/interactions/long-press.d.ts.map +1 -1
  48. package/dist/tools/interactions/long-press.js +16 -20
  49. package/dist/tools/interactions/long-press.js.map +1 -1
  50. package/dist/tools/interactions/screenshot.d.ts +2 -4
  51. package/dist/tools/interactions/screenshot.d.ts.map +1 -1
  52. package/dist/tools/interactions/screenshot.js +3 -4
  53. package/dist/tools/interactions/screenshot.js.map +1 -1
  54. package/dist/tools/interactions/set-value.d.ts.map +1 -1
  55. package/dist/tools/interactions/set-value.js +3 -4
  56. package/dist/tools/interactions/set-value.js.map +1 -1
  57. package/dist/tools/navigations/scroll-to-element.js.map +1 -1
  58. package/dist/tools/navigations/scroll.d.ts.map +1 -1
  59. package/dist/tools/navigations/scroll.js +16 -23
  60. package/dist/tools/navigations/scroll.js.map +1 -1
  61. package/dist/tools/navigations/swipe.d.ts.map +1 -1
  62. package/dist/tools/navigations/swipe.js +13 -17
  63. package/dist/tools/navigations/swipe.js.map +1 -1
  64. package/dist/tools/test-generation/locators.d.ts.map +1 -1
  65. package/dist/tools/test-generation/locators.js +14 -6
  66. package/dist/tools/test-generation/locators.js.map +1 -1
  67. package/package.json +12 -3
  68. package/server.json +2 -2
  69. package/.github/dependabot.yml +0 -17
  70. package/.github/workflows/ci.yml +0 -44
  71. package/.github/workflows/pr-title.yml +0 -10
  72. package/.github/workflows/publish.yml +0 -66
  73. package/.gitmodules +0 -9
  74. package/.prettierignore +0 -29
  75. package/.prettierrc +0 -9
  76. package/.releaserc +0 -37
  77. package/docs/CONTRIBUTING.md +0 -424
  78. package/eslint.config.js +0 -23
  79. package/examples/android-gmail.md +0 -7
  80. package/examples/android-todo-app.md +0 -9
  81. package/jest.config.js +0 -23
  82. package/src/devicemanager/adb-manager.ts +0 -164
  83. package/src/devicemanager/ios-manager.ts +0 -145
  84. package/src/index.ts +0 -45
  85. package/src/locators/element-filter.ts +0 -136
  86. package/src/locators/generate-all-locators.ts +0 -150
  87. package/src/locators/locator-generation.ts +0 -657
  88. package/src/locators/source-parsing.ts +0 -149
  89. package/src/logger.ts +0 -11
  90. package/src/resources/caps.json +0 -697
  91. package/src/resources/index.ts +0 -8
  92. package/src/resources/java/template.ts +0 -83
  93. package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +0 -28
  94. package/src/resources/submodules/appium/CHANGELOG.md +0 -45
  95. package/src/resources/submodules/appium/CONDUCT.md +0 -48
  96. package/src/resources/submodules/appium/GOVERNANCE.md +0 -185
  97. package/src/resources/submodules/appium/IDEAS.md +0 -16
  98. package/src/resources/submodules/appium/README.md +0 -221
  99. package/src/resources/submodules/appium/ROADMAP.md +0 -30
  100. package/src/resources/submodules/appium/SPONSORS.md +0 -3
  101. package/src/resources/submodules/appium/docs/README.md +0 -6
  102. package/src/resources/submodules/appium/docs/payout.md +0 -35
  103. package/src/resources/submodules/appium/packages/appium/CHANGELOG.md +0 -1437
  104. package/src/resources/submodules/appium/packages/appium/README.md +0 -221
  105. package/src/resources/submodules/appium/packages/appium/docs/en/blog/index.md +0 -2
  106. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-appiumconf2024.md +0 -45
  107. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
  108. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-headspin-as-development-partner.md +0 -47
  109. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -42
  110. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
  111. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sponsorship-program.md +0 -48
  112. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/appium3.md +0 -40
  113. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/hello-world.md +0 -15
  114. package/src/resources/submodules/appium/packages/appium/docs/en/contributing/index.md +0 -150
  115. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-docs.md +0 -86
  116. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-doctor-checks.md +0 -141
  117. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-drivers.md +0 -860
  118. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +0 -514
  119. package/src/resources/submodules/appium/packages/appium/docs/en/developing/config-system.md +0 -451
  120. package/src/resources/submodules/appium/packages/appium/docs/en/developing/index.md +0 -18
  121. package/src/resources/submodules/appium/packages/appium/docs/en/developing/sensitive.md +0 -49
  122. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/clients.md +0 -132
  123. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/drivers.md +0 -207
  124. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/index.md +0 -45
  125. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/plugins.md +0 -138
  126. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/tools.md +0 -83
  127. package/src/resources/submodules/appium/packages/appium/docs/en/guides/branch-testing.md +0 -57
  128. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caching.md +0 -76
  129. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caps.md +0 -275
  130. package/src/resources/submodules/appium/packages/appium/docs/en/guides/config.md +0 -98
  131. package/src/resources/submodules/appium/packages/appium/docs/en/guides/context.md +0 -44
  132. package/src/resources/submodules/appium/packages/appium/docs/en/guides/event-timing.md +0 -73
  133. package/src/resources/submodules/appium/packages/appium/docs/en/guides/execute-methods.md +0 -122
  134. package/src/resources/submodules/appium/packages/appium/docs/en/guides/grid.md +0 -166
  135. package/src/resources/submodules/appium/packages/appium/docs/en/guides/headers.md +0 -17
  136. package/src/resources/submodules/appium/packages/appium/docs/en/guides/log-filters.md +0 -86
  137. package/src/resources/submodules/appium/packages/appium/docs/en/guides/managing-exts.md +0 -87
  138. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-1-to-2.md +0 -368
  139. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-2-to-3.md +0 -464
  140. package/src/resources/submodules/appium/packages/appium/docs/en/guides/security.md +0 -89
  141. package/src/resources/submodules/appium/packages/appium/docs/en/guides/settings.md +0 -68
  142. package/src/resources/submodules/appium/packages/appium/docs/en/guides/tls.md +0 -42
  143. package/src/resources/submodules/appium/packages/appium/docs/en/index.md +0 -59
  144. package/src/resources/submodules/appium/packages/appium/docs/en/intro/appium.md +0 -202
  145. package/src/resources/submodules/appium/packages/appium/docs/en/intro/clients.md +0 -127
  146. package/src/resources/submodules/appium/packages/appium/docs/en/intro/drivers.md +0 -188
  147. package/src/resources/submodules/appium/packages/appium/docs/en/intro/history.md +0 -196
  148. package/src/resources/submodules/appium/packages/appium/docs/en/intro/index.md +0 -39
  149. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/index.md +0 -29
  150. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/install.md +0 -50
  151. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/next-steps.md +0 -23
  152. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/requirements.md +0 -29
  153. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-dotnet.md +0 -105
  154. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-java.md +0 -23
  155. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-js.md +0 -75
  156. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-py.md +0 -60
  157. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-rb.md +0 -83
  158. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/uiauto2-driver.md +0 -144
  159. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/appium.md +0 -394
  160. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/bidi.md +0 -70
  161. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/index.md +0 -30
  162. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/jsonwp.md +0 -214
  163. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/mjsonwp.md +0 -151
  164. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/others.md +0 -671
  165. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/plugins.md +0 -289
  166. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/webdriver.md +0 -1114
  167. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/env-vars.md +0 -31
  168. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/extensions.md +0 -239
  169. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +0 -35
  170. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +0 -76
  171. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/setup.md +0 -76
  172. package/src/resources/submodules/appium/packages/appium/docs/en/reference/index.md +0 -25
  173. package/src/resources/submodules/appium/packages/appium/docs/en/resources/index.md +0 -28
  174. package/src/resources/submodules/appium/packages/appium/docs/en/sponsors/index.md +0 -64
  175. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/index.md +0 -2
  176. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-appiumconf2024.md +0 -45
  177. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
  178. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-headspin-as-development-partner.md +0 -47
  179. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -41
  180. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
  181. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sponsorship-program.md +0 -48
  182. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/appium3.md +0 -40
  183. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/hello-world.md +0 -15
  184. package/src/resources/submodules/appium/packages/appium/docs/ja/contributing/index.md +0 -158
  185. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-docs.md +0 -86
  186. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-doctor-checks.md +0 -141
  187. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-drivers.md +0 -866
  188. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +0 -520
  189. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/config-system.md +0 -468
  190. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/index.md +0 -18
  191. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/sensitive.md +0 -49
  192. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/clients.md +0 -143
  193. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/drivers.md +0 -219
  194. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/index.md +0 -45
  195. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/plugins.md +0 -140
  196. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/tools.md +0 -87
  197. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/branch-testing.md +0 -57
  198. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caching.md +0 -78
  199. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caps.md +0 -259
  200. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/config.md +0 -102
  201. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/context.md +0 -44
  202. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/event-timing.md +0 -75
  203. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/execute-methods.md +0 -142
  204. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/grid.md +0 -166
  205. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/headers.md +0 -17
  206. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/log-filters.md +0 -86
  207. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/managing-exts.md +0 -89
  208. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-1-to-2.md +0 -402
  209. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-2-to-3.md +0 -458
  210. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/security.md +0 -89
  211. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/settings.md +0 -70
  212. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/tls.md +0 -43
  213. package/src/resources/submodules/appium/packages/appium/docs/ja/index.md +0 -55
  214. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/appium.md +0 -191
  215. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/clients.md +0 -139
  216. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/drivers.md +0 -188
  217. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/history.md +0 -196
  218. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/index.md +0 -39
  219. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/index.md +0 -23
  220. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/install.md +0 -47
  221. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/next-steps.md +0 -19
  222. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/requirements.md +0 -29
  223. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-dotnet.md +0 -107
  224. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-java.md +0 -23
  225. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-js.md +0 -77
  226. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-py.md +0 -63
  227. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-rb.md +0 -85
  228. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/uiauto2-driver.md +0 -148
  229. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/appium.md +0 -395
  230. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/bidi.md +0 -71
  231. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/index.md +0 -30
  232. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/jsonwp.md +0 -215
  233. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/mjsonwp.md +0 -152
  234. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/others.md +0 -672
  235. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/plugins.md +0 -291
  236. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/webdriver.md +0 -1114
  237. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/env-vars.md +0 -31
  238. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/extensions.md +0 -240
  239. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +0 -35
  240. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +0 -76
  241. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/setup.md +0 -78
  242. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/index.md +0 -25
  243. package/src/resources/submodules/appium/packages/appium/docs/ja/resources/index.md +0 -28
  244. package/src/resources/submodules/appium/packages/appium/docs/ja/sponsors/index.md +0 -61
  245. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz-white.png +0 -0
  246. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz.png +0 -0
  247. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-white.png +0 -0
  248. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo.png +0 -0
  249. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png +0 -0
  250. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-light.png +0 -0
  251. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-dark.png +0 -0
  252. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-light.png +0 -0
  253. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-sauce.png +0 -0
  254. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/index.md +0 -2
  255. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-appiumconf2024.md +0 -45
  256. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-browserstack-as-strategic-partner.md +0 -46
  257. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-headspin-as-development-partner.md +0 -47
  258. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-strategic-partner.md +0 -41
  259. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sauce-labs-as-strategic-partner.md +0 -36
  260. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sponsorship-program.md +0 -48
  261. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/appium3.md +0 -40
  262. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/hello-world.md +0 -15
  263. package/src/resources/submodules/appium/packages/appium/docs/zh/contributing/index.md +0 -132
  264. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-docs.md +0 -86
  265. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-doctor-checks.md +0 -141
  266. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-drivers.md +0 -866
  267. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +0 -520
  268. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/config-system.md +0 -468
  269. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/index.md +0 -18
  270. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/sensitive.md +0 -49
  271. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/clients.md +0 -143
  272. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/drivers.md +0 -219
  273. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/index.md +0 -45
  274. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/plugins.md +0 -140
  275. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/tools.md +0 -87
  276. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/branch-testing.md +0 -57
  277. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caching.md +0 -78
  278. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caps.md +0 -284
  279. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/config.md +0 -102
  280. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/context.md +0 -44
  281. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/event-timing.md +0 -75
  282. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/execute-methods.md +0 -142
  283. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/grid.md +0 -166
  284. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/headers.md +0 -17
  285. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/log-filters.md +0 -86
  286. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/managing-exts.md +0 -89
  287. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-1-to-2.md +0 -410
  288. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-2-to-3.md +0 -459
  289. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/security.md +0 -89
  290. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/settings.md +0 -70
  291. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/tls.md +0 -43
  292. package/src/resources/submodules/appium/packages/appium/docs/zh/index.md +0 -54
  293. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/appium.md +0 -200
  294. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +0 -139
  295. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +0 -188
  296. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +0 -196
  297. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +0 -39
  298. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/index.md +0 -23
  299. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/install.md +0 -47
  300. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/next-steps.md +0 -19
  301. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/requirements.md +0 -21
  302. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-dotnet.md +0 -99
  303. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-java.md +0 -20
  304. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-js.md +0 -62
  305. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-py.md +0 -57
  306. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-rb.md +0 -80
  307. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/uiauto2-driver.md +0 -148
  308. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/appium.md +0 -395
  309. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/bidi.md +0 -71
  310. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/index.md +0 -30
  311. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/jsonwp.md +0 -215
  312. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/mjsonwp.md +0 -152
  313. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/others.md +0 -672
  314. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/plugins.md +0 -291
  315. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/webdriver.md +0 -1114
  316. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/env-vars.md +0 -31
  317. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/extensions.md +0 -240
  318. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +0 -35
  319. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +0 -76
  320. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/setup.md +0 -78
  321. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/index.md +0 -25
  322. package/src/resources/submodules/appium/packages/appium/docs/zh/resources/index.md +0 -28
  323. package/src/resources/submodules/appium/packages/appium/docs/zh/sponsors/index.md +0 -61
  324. package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +0 -30
  325. package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +0 -1131
  326. package/src/resources/submodules/appium/packages/base-driver/README.md +0 -15
  327. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/errors.md +0 -82
  328. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/protocol-methods.md +0 -182
  329. package/src/resources/submodules/appium/packages/base-driver/static/appium.png +0 -0
  330. package/src/resources/submodules/appium/packages/base-plugin/CHANGELOG.md +0 -672
  331. package/src/resources/submodules/appium/packages/base-plugin/README.md +0 -15
  332. package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +0 -948
  333. package/src/resources/submodules/appium/packages/docutils/README.md +0 -27
  334. package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +0 -717
  335. package/src/resources/submodules/appium/packages/driver-test-support/README.md +0 -112
  336. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +0 -168
  337. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +0 -33
  338. package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +0 -603
  339. package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +0 -42
  340. package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +0 -545
  341. package/src/resources/submodules/appium/packages/fake-driver/README.md +0 -7
  342. package/src/resources/submodules/appium/packages/fake-driver/lib/screen.png +0 -0
  343. package/src/resources/submodules/appium/packages/fake-plugin/CHANGELOG.md +0 -683
  344. package/src/resources/submodules/appium/packages/fake-plugin/README.md +0 -7
  345. package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +0 -602
  346. package/src/resources/submodules/appium/packages/images-plugin/README.md +0 -27
  347. package/src/resources/submodules/appium/packages/images-plugin/docs/find-by-image.md +0 -65
  348. package/src/resources/submodules/appium/packages/images-plugin/docs/image-comparison.md +0 -203
  349. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/appstore.png +0 -0
  350. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img1.png +0 -0
  351. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2.png +0 -0
  352. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2_part.png +0 -0
  353. package/src/resources/submodules/appium/packages/logger/CHANGELOG.md +0 -162
  354. package/src/resources/submodules/appium/packages/logger/README.md +0 -31
  355. package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +0 -384
  356. package/src/resources/submodules/appium/packages/opencv/README.md +0 -68
  357. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/appium-diagram.jpg +0 -0
  358. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc1.png +0 -0
  359. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc2.png +0 -0
  360. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc_rotated.png +0 -0
  361. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/findwaldo.jpg +0 -0
  362. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/number5.png +0 -0
  363. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/waldo.jpg +0 -0
  364. package/src/resources/submodules/appium/packages/plugin-test-support/CHANGELOG.md +0 -539
  365. package/src/resources/submodules/appium/packages/plugin-test-support/README.md +0 -49
  366. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/CHANGELOG.md +0 -154
  367. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +0 -35
  368. package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +0 -271
  369. package/src/resources/submodules/appium/packages/schema/README.md +0 -50
  370. package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +0 -73
  371. package/src/resources/submodules/appium/packages/storage-plugin/README.md +0 -83
  372. package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +0 -94
  373. package/src/resources/submodules/appium/packages/strongbox/README.md +0 -96
  374. package/src/resources/submodules/appium/packages/support/CHANGELOG.md +0 -1054
  375. package/src/resources/submodules/appium/packages/support/README.md +0 -161
  376. package/src/resources/submodules/appium/packages/test-support/CHANGELOG.md +0 -712
  377. package/src/resources/submodules/appium/packages/test-support/README.md +0 -61
  378. package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +0 -131
  379. package/src/resources/submodules/appium/packages/tsconfig/README.md +0 -19
  380. package/src/resources/submodules/appium/packages/types/CHANGELOG.md +0 -793
  381. package/src/resources/submodules/appium/packages/types/README.md +0 -21
  382. package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +0 -435
  383. package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +0 -53
  384. package/src/resources/submodules/appium/renovate/README.md +0 -63
  385. package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +0 -1204
  386. package/src/resources/submodules/appium-uiautomator2-driver/README.md +0 -2077
  387. package/src/resources/submodules/appium-uiautomator2-driver/docs/actions.md +0 -72
  388. package/src/resources/submodules/appium-uiautomator2-driver/docs/activity-startup.md +0 -47
  389. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-appbundle.md +0 -69
  390. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-mobile-gestures.md +0 -352
  391. package/src/resources/submodules/appium-uiautomator2-driver/docs/bidi.md +0 -50
  392. package/src/resources/submodules/appium-uiautomator2-driver/docs/capability-sets.md +0 -136
  393. package/src/resources/submodules/appium-uiautomator2-driver/docs/scheduled-actions.md +0 -155
  394. package/src/resources/submodules/appium-uiautomator2-driver/docs/uiautomator-uiselector.md +0 -51
  395. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/main.md +0 -95
  396. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen1.png +0 -0
  397. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen2.png +0 -0
  398. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/checkered-squares.png +0 -0
  399. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/start-button.png +0 -0
  400. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/stop-button.png +0 -0
  401. package/src/resources/submodules/appium-xcuitest-driver/.github/ISSUE_TEMPLATE.md +0 -4
  402. package/src/resources/submodules/appium-xcuitest-driver/CHANGELOG.md +0 -2594
  403. package/src/resources/submodules/appium-xcuitest-driver/README.md +0 -55
  404. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo-white.png +0 -0
  405. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo.png +0 -0
  406. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-plus-xctest.png +0 -0
  407. package/src/resources/submodules/appium-xcuitest-driver/docs/contributing.md +0 -45
  408. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints-wda.md +0 -61
  409. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints.md +0 -98
  410. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/keynote.png +0 -0
  411. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/on_my_iphone.png +0 -0
  412. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/top_files.png +0 -0
  413. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/attach-to-running-wda.md +0 -43
  414. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/audio-capture.md +0 -78
  415. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/capability-sets.md +0 -169
  416. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/ci-setup.md +0 -47
  417. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/clipboard.md +0 -47
  418. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/elements-lookup-troubleshooting.md +0 -158
  419. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/file-transfer.md +0 -147
  420. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +0 -52
  421. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/hybrid.md +0 -137
  422. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/input-events.md +0 -67
  423. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/install-certificate.md +0 -19
  424. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md +0 -37
  425. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/parallel-tests.md +0 -39
  426. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +0 -135
  427. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +0 -178
  428. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/touch-id.md +0 -33
  429. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/troubleshooting.md +0 -191
  430. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +0 -114
  431. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +0 -283
  432. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-slowness.md +0 -231
  433. package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +0 -36
  434. package/src/resources/submodules/appium-xcuitest-driver/docs/installation/index.md +0 -137
  435. package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +0 -19
  436. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/check-prov-prof.png +0 -0
  437. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-new-project.png +0 -0
  438. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-single-page.png +0 -0
  439. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/no-prov-prof.png +0 -0
  440. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/project-prov-prof.png +0 -0
  441. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/set-up-bundle.png +0 -0
  442. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/untrusted-dev.png +0 -0
  443. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-bundle-id.png +0 -0
  444. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-config.png +0 -0
  445. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-fail.png +0 -0
  446. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-succeed.png +0 -0
  447. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/index.md +0 -51
  448. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md +0 -49
  449. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md +0 -40
  450. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-full-manual.md +0 -50
  451. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-generic-manual.md +0 -49
  452. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/real-device-config.md +0 -100
  453. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/assets/images/useXctestrunFile.png +0 -0
  454. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/bidi.md +0 -75
  455. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +0 -165
  456. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +0 -490
  457. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +0 -27
  458. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +0 -2206
  459. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/ios-predicate.md +0 -196
  460. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/locator-strategies.md +0 -19
  461. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +0 -29
  462. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +0 -22
  463. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +0 -16
  464. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +0 -49
  465. package/src/resources/submodules/appium-xcuitest-driver/test/assets/TestApp-iphonesimulator.app/Default-568h@2x.png +0 -0
  466. package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
  467. package/src/schema.ts +0 -5
  468. package/src/scripts/simple-index-documentation.ts +0 -93
  469. package/src/scripts/simple-query-documentation.ts +0 -61
  470. package/src/server.ts +0 -40
  471. package/src/session-store.ts +0 -117
  472. package/src/tests/README.md +0 -83
  473. package/src/tests/__mocks__/@appium/support.ts +0 -30
  474. package/src/tests/generate-all-locators.test.ts +0 -178
  475. package/src/tests/screenshot.test.ts +0 -279
  476. package/src/tests/test-setup-wda.ts +0 -255
  477. package/src/tools/README.md +0 -179
  478. package/src/tools/app-management/activate-app.ts +0 -46
  479. package/src/tools/app-management/install-app.ts +0 -54
  480. package/src/tools/app-management/list-apps.ts +0 -87
  481. package/src/tools/app-management/terminate-app.ts +0 -56
  482. package/src/tools/app-management/uninstall-app.ts +0 -56
  483. package/src/tools/context/get-contexts.ts +0 -78
  484. package/src/tools/context/switch-context.ts +0 -106
  485. package/src/tools/documentation/answer-appium.ts +0 -73
  486. package/src/tools/documentation/index.ts +0 -98
  487. package/src/tools/documentation/reasoning-rag.ts +0 -435
  488. package/src/tools/documentation/sentence-transformers-embeddings.ts +0 -144
  489. package/src/tools/documentation/simple-pdf-indexer.ts +0 -508
  490. package/src/tools/documentation/uploads/documents.json +0 -1
  491. package/src/tools/index.ts +0 -159
  492. package/src/tools/interactions/click.ts +0 -50
  493. package/src/tools/interactions/double-tap.ts +0 -99
  494. package/src/tools/interactions/drag-and-drop.ts +0 -238
  495. package/src/tools/interactions/find.ts +0 -61
  496. package/src/tools/interactions/get-page-source.ts +0 -65
  497. package/src/tools/interactions/get-text.ts +0 -50
  498. package/src/tools/interactions/long-press.ts +0 -120
  499. package/src/tools/interactions/screenshot.ts +0 -119
  500. package/src/tools/interactions/set-value.ts +0 -54
  501. package/src/tools/ios/boot-simulator.ts +0 -88
  502. package/src/tools/ios/install-wda.ts +0 -277
  503. package/src/tools/ios/setup-wda.ts +0 -217
  504. package/src/tools/navigations/scroll-to-element.ts +0 -198
  505. package/src/tools/navigations/scroll.ts +0 -113
  506. package/src/tools/navigations/swipe.ts +0 -368
  507. package/src/tools/session/create-session.ts +0 -379
  508. package/src/tools/session/delete-session.ts +0 -56
  509. package/src/tools/session/select-device.ts +0 -326
  510. package/src/tools/session/select-platform.ts +0 -250
  511. package/src/tools/test-generation/generate-tests.ts +0 -48
  512. package/src/tools/test-generation/locators.ts +0 -101
  513. package/src/types/appium-ios-device.d.ts +0 -8
  514. package/src/types/appium-xcuitest-driver.d.ts +0 -5
  515. package/src/ui/mcp-ui-utils.ts +0 -1630
  516. package/tsconfig.json +0 -15
  517. package/tsconfig.tsbuildinfo +0 -1
@@ -1,117 +0,0 @@
1
- import { AndroidUiautomator2Driver } from 'appium-uiautomator2-driver';
2
- import { XCUITestDriver } from 'appium-xcuitest-driver';
3
- import type { Client } from 'webdriver';
4
- import log from './logger.js';
5
-
6
- let driver: any = null;
7
- let sessionId: string | null = null;
8
- let isDeletingSession = false; // Lock to prevent concurrent deletion
9
-
10
- export const PLATFORM = {
11
- android: 'Android',
12
- ios: 'iOS',
13
- };
14
-
15
- /**
16
- * Determine whether the provided driver represents a remote driver session.
17
- *
18
- * This checks for the presence of a string-valued `sessionId` property on the
19
- * driver object, which indicates a remote/WebDriver session.
20
- *
21
- * @param driver - The driver instance to inspect (may be a Client, AndroidUiautomator2Driver, XCUITestDriver, or null).
22
- * @returns `true` if `driver` is non-null and has a string `sessionId`; otherwise `false`.
23
- */
24
- export function isRemoteDriverSession(
25
- driver: Client | AndroidUiautomator2Driver | XCUITestDriver | null
26
- ): boolean {
27
- if (driver) {
28
- return (
29
- !(driver instanceof AndroidUiautomator2Driver) &&
30
- !(driver instanceof XCUITestDriver)
31
- );
32
- }
33
- return false;
34
- }
35
-
36
- export function setSession(
37
- d: Client | AndroidUiautomator2Driver | XCUITestDriver,
38
- id: string | null
39
- ) {
40
- driver = d;
41
- sessionId = id;
42
- // Reset deletion flag when setting a new session
43
- if (d && id) {
44
- isDeletingSession = false;
45
- }
46
- }
47
-
48
- export function getDriver():
49
- | Client
50
- | AndroidUiautomator2Driver
51
- | XCUITestDriver {
52
- return driver;
53
- }
54
-
55
- export function getSessionId() {
56
- return sessionId;
57
- }
58
-
59
- export function isDeletingSessionInProgress() {
60
- return isDeletingSession;
61
- }
62
-
63
- export function hasActiveSession(): boolean {
64
- return driver !== null && sessionId !== null && !isDeletingSession;
65
- }
66
-
67
- export async function safeDeleteSession(): Promise<boolean> {
68
- // Check if there's no session to delete
69
- if (!driver || !sessionId) {
70
- log.info('No active session to delete.');
71
- return false;
72
- }
73
-
74
- // Check if deletion is already in progress
75
- if (isDeletingSession) {
76
- log.info('Session deletion already in progress, skipping...');
77
- return false;
78
- }
79
-
80
- // Set lock
81
- isDeletingSession = true;
82
-
83
- try {
84
- log.info('Deleting current session');
85
- await driver.deleteSession();
86
-
87
- // Clear the session from store
88
- driver = null;
89
- sessionId = null;
90
-
91
- log.info('Session deleted successfully.');
92
- return true;
93
- } catch (error) {
94
- log.error('Error deleting session:', error);
95
- throw error;
96
- } finally {
97
- // Always release lock
98
- isDeletingSession = false;
99
- }
100
- }
101
-
102
- export const getPlatformName = (driver: any): string => {
103
- if (driver instanceof AndroidUiautomator2Driver) {
104
- return PLATFORM.android;
105
- }
106
- if (driver instanceof XCUITestDriver) {
107
- return PLATFORM.ios;
108
- }
109
-
110
- if ((driver as Client).isAndroid) {
111
- return PLATFORM.android;
112
- } else if ((driver as Client).isIOS) {
113
- return PLATFORM.ios;
114
- }
115
-
116
- throw new Error('Unknown driver type');
117
- };
@@ -1,83 +0,0 @@
1
- # Tests for Mobile Agent
2
-
3
- This directory contains unit tests for the Mobile Agent project.
4
-
5
- ## Running Tests
6
-
7
- To run all tests:
8
-
9
- ```bash
10
- npm test
11
- ```
12
-
13
- To run specific test files:
14
-
15
- ```bash
16
- # Run tests for the locator generation functionality
17
- npm run test:locators
18
- ```
19
-
20
- ## Test Files
21
-
22
- ### generate-all-locators.test.ts
23
-
24
- This file contains tests for the `generateAllElementLocators` function, which is responsible for generating locators for all elements in a page source XML.
25
-
26
- The tests cover:
27
-
28
- 1. Basic functionality with valid XML
29
- 2. Handling of invalid/empty XML
30
- 3. Various filtering options:
31
- - `includeTagNames` - Include only specific element types
32
- - `excludeTagNames` - Exclude specific element types
33
- - `minAttributeCount` - Filter elements by minimum attribute count
34
- - `fetchableOnly` - Include only interactable elements (platform-specific)
35
- - `clickableOnly` - Include only clickable elements
36
-
37
- ## Adding New Tests
38
-
39
- When adding new tests:
40
-
41
- 1. Create a new test file in the `src/tests` directory with the `.test.ts` extension
42
- 2. Import the necessary functions and types from the source files
43
- 3. Use Jest's `describe`, `test`, and `expect` functions to structure your tests
44
- 4. Add a new script to `package.json` for running your specific test file
45
-
46
- ## Test Structure
47
-
48
- Tests should follow this general structure:
49
-
50
- ```typescript
51
- import { describe, test, expect } from '@jest/globals';
52
- import { functionToTest } from '../path/to/function.js';
53
-
54
- describe('functionToTest', () => {
55
- test('should do something specific', () => {
56
- // Arrange - set up test data
57
- const input = 'some input';
58
-
59
- // Act - call the function
60
- const result = functionToTest(input);
61
-
62
- // Assert - verify the result
63
- expect(result).toBe('expected output');
64
- });
65
- });
66
- ```
67
-
68
- ## Mocking
69
-
70
- For tests that require mocking dependencies, use Jest's mocking capabilities:
71
-
72
- ```typescript
73
- import { jest } from '@jest/globals';
74
-
75
- // Mock a module
76
- jest.mock('../path/to/module.js');
77
-
78
- // Create a mock function
79
- const mockFunction = jest.fn();
80
- mockFunction.mockReturnValue('mocked value');
81
- ```
82
-
83
- Note that when working with ESM modules, you may need to use different mocking approaches than with CommonJS modules.
@@ -1,30 +0,0 @@
1
- // Mock @appium/support for Jest tests
2
- // This avoids the ESM/CommonJS mismatch with uuid dependency
3
-
4
- export const logger = {
5
- getLogger: (name: string) =>
6
- // Simple logger implementation for tests
7
- // No-op functions that match the logger interface
8
- ({
9
- debug: (message: string, ...args: any[]) => {
10
- // Silent in tests by default
11
- },
12
- info: (message: string, ...args: any[]) => {
13
- // Silent in tests by default
14
- },
15
- warn: (message: string, ...args: any[]) => {
16
- // Silent in tests by default
17
- },
18
- error: (message: string, ...args: any[]) => {
19
- // Silent in tests by default
20
- },
21
- trace: (message: string, ...args: any[]) => {
22
- // Silent in tests by default
23
- },
24
- }),
25
- };
26
-
27
- // Export other commonly used utilities from @appium/support if needed
28
- export default {
29
- logger,
30
- };
@@ -1,178 +0,0 @@
1
- import { describe, test, expect } from '@jest/globals';
2
- import {
3
- generateAllElementLocators,
4
- ElementWithLocators,
5
- } from '../locators/generate-all-locators.js';
6
-
7
- describe('generateAllElementLocators', () => {
8
- // Sample XML for testing
9
- const sampleXML = `
10
- <hierarchy>
11
- <android.widget.FrameLayout resource-id="android:id/content">
12
- <android.widget.LinearLayout>
13
- <android.widget.TextView text="Hello World" resource-id="com.example:id/text_view" clickable="true" enabled="true" displayed="true" />
14
- <android.widget.Button text="Click Me" resource-id="com.example:id/button" clickable="true" enabled="true" displayed="true" />
15
- <android.widget.EditText text="" resource-id="com.example:id/edit_text" clickable="true" enabled="true" displayed="true" />
16
- </android.widget.LinearLayout>
17
- </android.widget.FrameLayout>
18
- </hierarchy>
19
- `;
20
-
21
- // Sample iOS XML for testing
22
- const sampleIOSXML = `
23
- <hierarchy>
24
- <XCUIElementTypeApplication>
25
- <XCUIElementTypeWindow>
26
- <XCUIElementTypeButton name="Click Me" enabled="true" visible="true" />
27
- <XCUIElementTypeTextField name="Enter text" enabled="true" visible="true" />
28
- <XCUIElementTypeStaticText name="Hello World" enabled="true" visible="true" />
29
- </XCUIElementTypeWindow>
30
- </XCUIElementTypeApplication>
31
- </hierarchy>
32
- `;
33
-
34
- test('should return an array when given valid XML', () => {
35
- // Call the function with the sample XML
36
- const result = generateAllElementLocators(sampleXML, true, 'uiautomator2');
37
-
38
- // Basic validation of the result
39
- expect(Array.isArray(result)).toBe(true);
40
- expect(result.length).toBeGreaterThan(0);
41
-
42
- // Verify the structure of the returned elements
43
- if (result.length > 0) {
44
- const element = result[0];
45
- expect(element).toHaveProperty('tagName');
46
- expect(element).toHaveProperty('locators');
47
- expect(element).toHaveProperty('text');
48
- expect(element).toHaveProperty('contentDesc');
49
- expect(element).toHaveProperty('resourceId');
50
- expect(element).toHaveProperty('clickable');
51
- expect(element).toHaveProperty('enabled');
52
- expect(element).toHaveProperty('displayed');
53
- }
54
- });
55
-
56
- test('should return an empty array when given invalid XML', () => {
57
- // Call the function with invalid XML (just a root element with no content)
58
- const result = generateAllElementLocators(
59
- '<hierarchy></hierarchy>',
60
- true,
61
- 'uiautomator2'
62
- );
63
-
64
- // Verify the result is an empty array or at least doesn't throw an error
65
- expect(Array.isArray(result)).toBe(true);
66
- expect(result.length).toBe(0);
67
- });
68
-
69
- test('should apply includeTagNames filter correctly', () => {
70
- // Call the function with filters
71
- const result = generateAllElementLocators(sampleXML, true, 'uiautomator2', {
72
- includeTagNames: ['android.widget.Button'],
73
- });
74
-
75
- // If the filter works, either the result will be empty (if no buttons found)
76
- // or all elements will be buttons
77
- if (result.length > 0) {
78
- expect(
79
- result.every((element) => element.tagName.includes('Button'))
80
- ).toBe(true);
81
- }
82
- });
83
-
84
- test('should apply excludeTagNames filter correctly', () => {
85
- // Call the function with excludeTagNames filter
86
- const result = generateAllElementLocators(sampleXML, true, 'uiautomator2', {
87
- excludeTagNames: ['android.widget.Button'],
88
- });
89
-
90
- // Verify no Button elements are included
91
- expect(result.every((element) => !element.tagName.includes('Button'))).toBe(
92
- true
93
- );
94
- });
95
-
96
- test('should apply minAttributeCount filter correctly', () => {
97
- // Call the function with minAttributeCount filter
98
- const result = generateAllElementLocators(sampleXML, true, 'uiautomator2', {
99
- minAttributeCount: 3,
100
- });
101
-
102
- // All elements should have at least 3 attributes
103
- if (result.length > 0) {
104
- // We can't directly check the attributes count since we only have the processed elements
105
- // But we can verify that elements with fewer attributes are filtered out
106
- expect(result.length).toBeLessThanOrEqual(
107
- generateAllElementLocators(sampleXML, true, 'uiautomator2').length
108
- );
109
- }
110
- });
111
-
112
- test('should handle fetchableOnly filter for Android', () => {
113
- // Call the function with fetchableOnly filter
114
- const result = generateAllElementLocators(sampleXML, true, 'uiautomator2', {
115
- fetchableOnly: true,
116
- });
117
-
118
- // Verify the result contains only interactable elements
119
- if (result.length > 0) {
120
- const interactableTags = [
121
- 'EditText',
122
- 'Button',
123
- 'ImageButton',
124
- 'CheckBox',
125
- 'RadioButton',
126
- 'Switch',
127
- 'ToggleButton',
128
- 'TextView',
129
- ];
130
-
131
- expect(
132
- result.every(
133
- (element) =>
134
- interactableTags.some((tag) => element.tagName.includes(tag)) ||
135
- element.clickable === true
136
- )
137
- ).toBe(true);
138
- }
139
- });
140
-
141
- test('should handle fetchableOnly filter for iOS', () => {
142
- // Call the function with fetchableOnly filter for iOS
143
- const result = generateAllElementLocators(sampleIOSXML, true, 'xcuitest', {
144
- fetchableOnly: true,
145
- });
146
-
147
- // Verify the result contains only interactable iOS elements
148
- if (result.length > 0) {
149
- const interactableTags = [
150
- 'XCUIElementTypeTextField',
151
- 'XCUIElementTypeSecureTextField',
152
- 'XCUIElementTypeButton',
153
- 'XCUIElementTypeImage',
154
- 'XCUIElementTypeSwitch',
155
- 'XCUIElementTypeStaticText',
156
- 'XCUIElementTypeTextView',
157
- 'XCUIElementTypeCell',
158
- 'XCUIElementTypeLink',
159
- ];
160
-
161
- expect(
162
- result.every((element) =>
163
- interactableTags.some((tag) => element.tagName.includes(tag))
164
- )
165
- ).toBe(true);
166
- }
167
- });
168
-
169
- test('should handle clickableOnly filter correctly', () => {
170
- // Call the function with clickableOnly filter
171
- const result = generateAllElementLocators(sampleXML, true, 'uiautomator2', {
172
- clickableOnly: true,
173
- });
174
-
175
- // Verify all elements are clickable
176
- expect(result.every((element) => element.clickable === true)).toBe(true);
177
- });
178
- });
@@ -1,279 +0,0 @@
1
- import {
2
- describe,
3
- test,
4
- expect,
5
- beforeEach,
6
- afterEach,
7
- jest,
8
- } from '@jest/globals';
9
- import { join, isAbsolute } from 'path';
10
- import * as os from 'node:os';
11
-
12
- /**
13
- * Local implementation of resolveScreenshotDir for testing.
14
- * This mirrors the implementation in screenshot.ts to avoid importing
15
- * the module which has heavy dependencies.
16
- */
17
- function resolveScreenshotDir(): string {
18
- const screenshotDir = process.env.SCREENSHOTS_DIR;
19
-
20
- if (!screenshotDir) {
21
- return os.tmpdir();
22
- }
23
-
24
- if (isAbsolute(screenshotDir)) {
25
- return screenshotDir;
26
- }
27
-
28
- return join(process.cwd(), screenshotDir);
29
- }
30
-
31
- /**
32
- * Interface for screenshot dependencies (mirrors screenshot.ts).
33
- */
34
- interface ScreenshotDeps {
35
- getDriver: () => { getScreenshot: () => Promise<string> } | null;
36
- writeFile: (path: string, data: Buffer) => Promise<void>;
37
- mkdir: (path: string, options: { recursive: boolean }) => Promise<void>;
38
- resolveScreenshotDir: () => string;
39
- dateNow: () => number;
40
- }
41
-
42
- /**
43
- * Local implementation of executeScreenshot for testing.
44
- * This mirrors the implementation in screenshot.ts.
45
- */
46
- async function executeScreenshot(deps: ScreenshotDeps): Promise<any> {
47
- const driver = deps.getDriver();
48
- if (!driver) {
49
- throw new Error('No driver found');
50
- }
51
-
52
- try {
53
- const screenshotBase64 = await driver.getScreenshot();
54
- const screenshotBuffer = Buffer.from(screenshotBase64, 'base64');
55
- const timestamp = deps.dateNow();
56
- const filename = `screenshot_${timestamp}.png`;
57
- const screenshotDir = deps.resolveScreenshotDir();
58
-
59
- await deps.mkdir(screenshotDir, { recursive: true });
60
- const filepath = join(screenshotDir, filename);
61
- await deps.writeFile(filepath, screenshotBuffer);
62
-
63
- return {
64
- content: [
65
- {
66
- type: 'text',
67
- text: `Screenshot saved successfully to: ${filename}`,
68
- },
69
- ],
70
- };
71
- } catch (err: any) {
72
- return {
73
- content: [
74
- {
75
- type: 'text',
76
- text: `Failed to take screenshot. err: ${err.toString()}`,
77
- },
78
- ],
79
- };
80
- }
81
- }
82
-
83
- describe('resolveScreenshotDir', () => {
84
- const originalEnv = process.env.SCREENSHOTS_DIR;
85
- const cwd = process.cwd();
86
-
87
- beforeEach(() => {
88
- delete process.env.SCREENSHOTS_DIR;
89
- });
90
-
91
- afterEach(() => {
92
- if (originalEnv !== undefined) {
93
- process.env.SCREENSHOTS_DIR = originalEnv;
94
- } else {
95
- delete process.env.SCREENSHOTS_DIR;
96
- }
97
- });
98
-
99
- test('should return os.tmpdir() when SCREENSHOTS_DIR is not set', () => {
100
- const result = resolveScreenshotDir();
101
- expect(result).toBe(os.tmpdir());
102
- });
103
-
104
- test('should return os.tmpdir() when SCREENSHOTS_DIR is empty string', () => {
105
- process.env.SCREENSHOTS_DIR = '';
106
- const result = resolveScreenshotDir();
107
- expect(result).toBe(os.tmpdir());
108
- });
109
-
110
- test('should return absolute path as-is when SCREENSHOTS_DIR is absolute', () => {
111
- const absolutePath = '/tmp/screenshots';
112
- process.env.SCREENSHOTS_DIR = absolutePath;
113
- const result = resolveScreenshotDir();
114
- expect(result).toBe(absolutePath);
115
- });
116
-
117
- test('should join relative path with process.cwd()', () => {
118
- const relativePath = 'screenshots';
119
- process.env.SCREENSHOTS_DIR = relativePath;
120
- const result = resolveScreenshotDir();
121
- expect(result).toBe(join(cwd, relativePath));
122
- });
123
-
124
- test('should handle nested relative paths', () => {
125
- const relativePath = 'output/screenshots/test';
126
- process.env.SCREENSHOTS_DIR = relativePath;
127
- const result = resolveScreenshotDir();
128
- expect(result).toBe(join(cwd, relativePath));
129
- });
130
-
131
- test('should handle relative path starting with ./', () => {
132
- const relativePath = './screenshots';
133
- process.env.SCREENSHOTS_DIR = relativePath;
134
- const result = resolveScreenshotDir();
135
- expect(result).toBe(join(cwd, relativePath));
136
- });
137
-
138
- test('should handle relative path with parent directory reference', () => {
139
- const relativePath = '../screenshots';
140
- process.env.SCREENSHOTS_DIR = relativePath;
141
- const result = resolveScreenshotDir();
142
- expect(result).toBe(join(cwd, relativePath));
143
- });
144
- });
145
-
146
- describe('executeScreenshot', () => {
147
- const mockBase64 = 'dGVzdA=='; // 'test' in base64
148
- const mockTimestamp = 1234567890;
149
-
150
- function createMockDeps(
151
- overrides: Partial<ScreenshotDeps> = {}
152
- ): ScreenshotDeps {
153
- return {
154
- getDriver: jest.fn(() => ({
155
- getScreenshot: jest.fn(() => Promise.resolve(mockBase64)),
156
- })) as any,
157
- writeFile: jest.fn(() => Promise.resolve()) as any,
158
- mkdir: jest.fn(() => Promise.resolve()) as any,
159
- resolveScreenshotDir: jest.fn(() => '/mock/screenshots') as any,
160
- dateNow: jest.fn(() => mockTimestamp) as any,
161
- ...overrides,
162
- };
163
- }
164
-
165
- test('should throw error when no driver found', async () => {
166
- const deps = createMockDeps({
167
- getDriver: jest.fn(() => null) as any,
168
- });
169
-
170
- await expect(executeScreenshot(deps)).rejects.toThrow('No driver found');
171
- });
172
-
173
- test('should return success content with filename', async () => {
174
- const deps = createMockDeps();
175
-
176
- const result = await executeScreenshot(deps);
177
-
178
- expect(result).toEqual({
179
- content: [
180
- {
181
- type: 'text',
182
- text: `Screenshot saved successfully to: screenshot_${mockTimestamp}.png`,
183
- },
184
- ],
185
- });
186
- });
187
-
188
- test('should use resolved screenshot directory from SCREENSHOTS_DIR', async () => {
189
- const customDir = '/custom/path/screenshots';
190
- const deps = createMockDeps({
191
- resolveScreenshotDir: jest.fn(() => customDir) as any,
192
- });
193
-
194
- await executeScreenshot(deps);
195
-
196
- expect(deps.mkdir).toHaveBeenCalledWith(customDir, { recursive: true });
197
- expect(deps.writeFile).toHaveBeenCalledWith(
198
- join(customDir, `screenshot_${mockTimestamp}.png`),
199
- expect.any(Buffer)
200
- );
201
- });
202
-
203
- test('should create directory with recursive option', async () => {
204
- const deps = createMockDeps();
205
-
206
- await executeScreenshot(deps);
207
-
208
- expect(deps.mkdir).toHaveBeenCalledWith('/mock/screenshots', {
209
- recursive: true,
210
- });
211
- });
212
-
213
- test('should write screenshot buffer to correct filepath', async () => {
214
- const deps = createMockDeps();
215
-
216
- await executeScreenshot(deps);
217
-
218
- expect(deps.writeFile).toHaveBeenCalledWith(
219
- `/mock/screenshots/screenshot_${mockTimestamp}.png`,
220
- Buffer.from(mockBase64, 'base64')
221
- );
222
- });
223
-
224
- test('should return error content when screenshot fails', async () => {
225
- const errorMessage = 'Screenshot capture failed';
226
- const deps = createMockDeps({
227
- getDriver: jest.fn(() => ({
228
- getScreenshot: jest.fn(() => Promise.reject(new Error(errorMessage))),
229
- })) as any,
230
- });
231
-
232
- const result = await executeScreenshot(deps);
233
-
234
- expect(result).toEqual({
235
- content: [
236
- {
237
- type: 'text',
238
- text: `Failed to take screenshot. err: Error: ${errorMessage}`,
239
- },
240
- ],
241
- });
242
- });
243
-
244
- test('should return error content when mkdir fails', async () => {
245
- const errorMessage = 'Permission denied';
246
- const deps = createMockDeps({
247
- mkdir: jest.fn(() => Promise.reject(new Error(errorMessage))) as any,
248
- });
249
-
250
- const result = await executeScreenshot(deps);
251
-
252
- expect(result).toEqual({
253
- content: [
254
- {
255
- type: 'text',
256
- text: `Failed to take screenshot. err: Error: ${errorMessage}`,
257
- },
258
- ],
259
- });
260
- });
261
-
262
- test('should return error content when writeFile fails', async () => {
263
- const errorMessage = 'Disk full';
264
- const deps = createMockDeps({
265
- writeFile: jest.fn(() => Promise.reject(new Error(errorMessage))) as any,
266
- });
267
-
268
- const result = await executeScreenshot(deps);
269
-
270
- expect(result).toEqual({
271
- content: [
272
- {
273
- type: 'text',
274
- text: `Failed to take screenshot. err: Error: ${errorMessage}`,
275
- },
276
- ],
277
- });
278
- });
279
- });