appium-mcp 0.0.1 → 1.1.5

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 (589) hide show
  1. package/.github/workflows/ci.yml +37 -0
  2. package/.github/workflows/pr-title.yml +15 -0
  3. package/.github/workflows/publish.yml +31 -0
  4. package/.gitmodules +9 -0
  5. package/.prettierignore +29 -0
  6. package/.prettierrc +10 -0
  7. package/.releaserc +37 -0
  8. package/CHANGELOG.md +43 -0
  9. package/LICENSE +21 -0
  10. package/README.md +153 -0
  11. package/dist/devicemanager/adb-manager.d.ts +71 -0
  12. package/dist/devicemanager/adb-manager.js +140 -0
  13. package/dist/devicemanager/adb-manager.js.map +1 -0
  14. package/dist/devicemanager/ios-manager.d.ts +58 -0
  15. package/dist/devicemanager/ios-manager.js +122 -0
  16. package/dist/devicemanager/ios-manager.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.js +40 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/locators/element-filter.d.ts +13 -0
  21. package/dist/locators/element-filter.js +79 -0
  22. package/dist/locators/element-filter.js.map +1 -0
  23. package/dist/locators/generate-all-locators.d.ts +21 -0
  24. package/dist/locators/generate-all-locators.js +72 -0
  25. package/dist/locators/generate-all-locators.js.map +1 -0
  26. package/dist/locators/locator-generation.d.ts +36 -0
  27. package/dist/locators/locator-generation.js +501 -0
  28. package/dist/locators/locator-generation.js.map +1 -0
  29. package/dist/locators/logger.d.ts +5 -0
  30. package/dist/locators/logger.js +9 -0
  31. package/dist/locators/logger.js.map +1 -0
  32. package/dist/locators/source-parsing.d.ts +43 -0
  33. package/dist/locators/source-parsing.js +100 -0
  34. package/dist/locators/source-parsing.js.map +1 -0
  35. package/dist/resources/index.d.ts +1 -0
  36. package/dist/resources/index.js +7 -0
  37. package/dist/resources/index.js.map +1 -0
  38. package/dist/resources/java/template.d.ts +4 -0
  39. package/dist/resources/java/template.js +82 -0
  40. package/dist/resources/java/template.js.map +1 -0
  41. package/dist/schema.d.ts +2 -0
  42. package/dist/schema.js +5 -0
  43. package/dist/schema.js.map +1 -0
  44. package/dist/scripts/simple-index-documentation.d.ts +20 -0
  45. package/dist/scripts/simple-index-documentation.js +77 -0
  46. package/dist/scripts/simple-index-documentation.js.map +1 -0
  47. package/dist/scripts/simple-query-documentation.d.ts +12 -0
  48. package/dist/scripts/simple-query-documentation.js +52 -0
  49. package/dist/scripts/simple-query-documentation.js.map +1 -0
  50. package/dist/server.d.ts +3 -0
  51. package/dist/server.js +37 -0
  52. package/dist/server.js.map +1 -0
  53. package/dist/tests/__mocks__/@appium/support.d.ts +21 -0
  54. package/dist/tests/__mocks__/@appium/support.js +30 -0
  55. package/dist/tests/__mocks__/@appium/support.js.map +1 -0
  56. package/dist/tests/generate-all-locators.test.d.ts +1 -0
  57. package/dist/tests/generate-all-locators.test.js +140 -0
  58. package/dist/tests/generate-all-locators.test.js.map +1 -0
  59. package/dist/tests/test-setup-wda.d.ts +1 -0
  60. package/dist/tests/test-setup-wda.js +202 -0
  61. package/dist/tests/test-setup-wda.js.map +1 -0
  62. package/dist/tools/answer-appium.d.ts +1 -0
  63. package/dist/tools/answer-appium.js +71 -0
  64. package/dist/tools/answer-appium.js.map +1 -0
  65. package/dist/tools/boot-simulator.d.ts +1 -0
  66. package/dist/tools/boot-simulator.js +71 -0
  67. package/dist/tools/boot-simulator.js.map +1 -0
  68. package/dist/tools/create-session.d.ts +1 -0
  69. package/dist/tools/create-session.js +192 -0
  70. package/dist/tools/create-session.js.map +1 -0
  71. package/dist/tools/delete-session.d.ts +1 -0
  72. package/dist/tools/delete-session.js +47 -0
  73. package/dist/tools/delete-session.js.map +1 -0
  74. package/dist/tools/documentation/index.d.ts +28 -0
  75. package/dist/tools/documentation/index.js +63 -0
  76. package/dist/tools/documentation/index.js.map +1 -0
  77. package/dist/tools/documentation/reasoning-rag.d.ts +88 -0
  78. package/dist/tools/documentation/reasoning-rag.js +281 -0
  79. package/dist/tools/documentation/reasoning-rag.js.map +1 -0
  80. package/dist/tools/documentation/sentence-transformers-embeddings.d.ts +34 -0
  81. package/dist/tools/documentation/sentence-transformers-embeddings.js +111 -0
  82. package/dist/tools/documentation/sentence-transformers-embeddings.js.map +1 -0
  83. package/dist/tools/documentation/simple-pdf-indexer.d.ts +45 -0
  84. package/dist/tools/documentation/simple-pdf-indexer.js +402 -0
  85. package/dist/tools/documentation/simple-pdf-indexer.js.map +1 -0
  86. package/dist/tools/documentation/uploads/documents.json +1 -0
  87. package/dist/tools/generate-tests.d.ts +2 -0
  88. package/dist/tools/generate-tests.js +46 -0
  89. package/dist/tools/generate-tests.js.map +1 -0
  90. package/dist/tools/index.d.ts +16 -0
  91. package/dist/tools/index.js +114 -0
  92. package/dist/tools/index.js.map +1 -0
  93. package/dist/tools/install-wda.d.ts +1 -0
  94. package/dist/tools/install-wda.js +219 -0
  95. package/dist/tools/install-wda.js.map +1 -0
  96. package/dist/tools/interactions/activate-app.d.ts +2 -0
  97. package/dist/tools/interactions/activate-app.js +44 -0
  98. package/dist/tools/interactions/activate-app.js.map +1 -0
  99. package/dist/tools/interactions/click.d.ts +2 -0
  100. package/dist/tools/interactions/click.js +45 -0
  101. package/dist/tools/interactions/click.js.map +1 -0
  102. package/dist/tools/interactions/double-tap.d.ts +2 -0
  103. package/dist/tools/interactions/double-tap.js +81 -0
  104. package/dist/tools/interactions/double-tap.js.map +1 -0
  105. package/dist/tools/interactions/find.d.ts +13 -0
  106. package/dist/tools/interactions/find.js +55 -0
  107. package/dist/tools/interactions/find.js.map +1 -0
  108. package/dist/tools/interactions/get-page-source.d.ts +2 -0
  109. package/dist/tools/interactions/get-page-source.js +48 -0
  110. package/dist/tools/interactions/get-page-source.js.map +1 -0
  111. package/dist/tools/interactions/get-text.d.ts +2 -0
  112. package/dist/tools/interactions/get-text.js +45 -0
  113. package/dist/tools/interactions/get-text.js.map +1 -0
  114. package/dist/tools/interactions/install-app.d.ts +2 -0
  115. package/dist/tools/interactions/install-app.js +43 -0
  116. package/dist/tools/interactions/install-app.js.map +1 -0
  117. package/dist/tools/interactions/list-apps.d.ts +2 -0
  118. package/dist/tools/interactions/list-apps.js +59 -0
  119. package/dist/tools/interactions/list-apps.js.map +1 -0
  120. package/dist/tools/interactions/screenshot.d.ts +2 -0
  121. package/dist/tools/interactions/screenshot.js +49 -0
  122. package/dist/tools/interactions/screenshot.js.map +1 -0
  123. package/dist/tools/interactions/set-value.d.ts +2 -0
  124. package/dist/tools/interactions/set-value.js +46 -0
  125. package/dist/tools/interactions/set-value.js.map +1 -0
  126. package/dist/tools/interactions/terminate-app.d.ts +2 -0
  127. package/dist/tools/interactions/terminate-app.js +45 -0
  128. package/dist/tools/interactions/terminate-app.js.map +1 -0
  129. package/dist/tools/interactions/uninstall-app.d.ts +2 -0
  130. package/dist/tools/interactions/uninstall-app.js +45 -0
  131. package/dist/tools/interactions/uninstall-app.js.map +1 -0
  132. package/dist/tools/locators.d.ts +1 -0
  133. package/dist/tools/locators.js +71 -0
  134. package/dist/tools/locators.js.map +1 -0
  135. package/dist/tools/scroll-to-element.d.ts +1 -0
  136. package/dist/tools/scroll-to-element.js +155 -0
  137. package/dist/tools/scroll-to-element.js.map +1 -0
  138. package/dist/tools/scroll.d.ts +1 -0
  139. package/dist/tools/scroll.js +91 -0
  140. package/dist/tools/scroll.js.map +1 -0
  141. package/dist/tools/select-device.d.ts +5 -0
  142. package/dist/tools/select-device.js +222 -0
  143. package/dist/tools/select-device.js.map +1 -0
  144. package/dist/tools/select-platform.d.ts +1 -0
  145. package/dist/tools/select-platform.js +195 -0
  146. package/dist/tools/select-platform.js.map +1 -0
  147. package/dist/tools/session-store.d.ts +7 -0
  148. package/dist/tools/session-store.js +64 -0
  149. package/dist/tools/session-store.js.map +1 -0
  150. package/dist/tools/setup-wda.d.ts +1 -0
  151. package/dist/tools/setup-wda.js +177 -0
  152. package/dist/tools/setup-wda.js.map +1 -0
  153. package/docs/CONTRIBUTING.md +424 -0
  154. package/eslint.config.js +49 -0
  155. package/examples/android-gmail.md +7 -0
  156. package/examples/android-todo-app.md +9 -0
  157. package/jest.config.js +23 -0
  158. package/package.json +71 -6
  159. package/scripts/setup-submodules-sparse.sh +53 -0
  160. package/scripts/update-submodules.sh +14 -0
  161. package/src/devicemanager/adb-manager.ts +164 -0
  162. package/src/devicemanager/ios-manager.ts +145 -0
  163. package/src/index.ts +47 -0
  164. package/src/locators/element-filter.ts +134 -0
  165. package/src/locators/generate-all-locators.ts +149 -0
  166. package/src/locators/locator-generation.ts +657 -0
  167. package/src/locators/logger.ts +11 -0
  168. package/src/locators/source-parsing.ts +149 -0
  169. package/src/resources/caps.json +697 -0
  170. package/src/resources/index.ts +7 -0
  171. package/src/resources/java/template.ts +83 -0
  172. package/src/resources/submodules/appium/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  173. package/src/resources/submodules/appium/CHANGELOG.md +45 -0
  174. package/src/resources/submodules/appium/CONDUCT.md +48 -0
  175. package/src/resources/submodules/appium/GOVERNANCE.md +185 -0
  176. package/src/resources/submodules/appium/IDEAS.md +16 -0
  177. package/src/resources/submodules/appium/README.md +221 -0
  178. package/src/resources/submodules/appium/ROADMAP.md +30 -0
  179. package/src/resources/submodules/appium/SPONSORS.md +3 -0
  180. package/src/resources/submodules/appium/docs/README.md +6 -0
  181. package/src/resources/submodules/appium/docs/payout.md +35 -0
  182. package/src/resources/submodules/appium/packages/appium/CHANGELOG.md +1437 -0
  183. package/src/resources/submodules/appium/packages/appium/README.md +221 -0
  184. package/src/resources/submodules/appium/packages/appium/docs/en/blog/index.md +2 -0
  185. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-appiumconf2024.md +45 -0
  186. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
  187. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-headspin-as-development-partner.md +47 -0
  188. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-lambdatest-as-strategic-partner.md +42 -0
  189. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
  190. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/announcing-sponsorship-program.md +48 -0
  191. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/appium3.md +40 -0
  192. package/src/resources/submodules/appium/packages/appium/docs/en/blog/posts/hello-world.md +15 -0
  193. package/src/resources/submodules/appium/packages/appium/docs/en/contributing/index.md +150 -0
  194. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-docs.md +86 -0
  195. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-doctor-checks.md +141 -0
  196. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-drivers.md +860 -0
  197. package/src/resources/submodules/appium/packages/appium/docs/en/developing/build-plugins.md +514 -0
  198. package/src/resources/submodules/appium/packages/appium/docs/en/developing/config-system.md +451 -0
  199. package/src/resources/submodules/appium/packages/appium/docs/en/developing/index.md +18 -0
  200. package/src/resources/submodules/appium/packages/appium/docs/en/developing/sensitive.md +49 -0
  201. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/clients.md +132 -0
  202. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/drivers.md +207 -0
  203. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/index.md +45 -0
  204. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/plugins.md +138 -0
  205. package/src/resources/submodules/appium/packages/appium/docs/en/ecosystem/tools.md +83 -0
  206. package/src/resources/submodules/appium/packages/appium/docs/en/guides/branch-testing.md +57 -0
  207. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caching.md +76 -0
  208. package/src/resources/submodules/appium/packages/appium/docs/en/guides/caps.md +275 -0
  209. package/src/resources/submodules/appium/packages/appium/docs/en/guides/config.md +98 -0
  210. package/src/resources/submodules/appium/packages/appium/docs/en/guides/context.md +44 -0
  211. package/src/resources/submodules/appium/packages/appium/docs/en/guides/event-timing.md +73 -0
  212. package/src/resources/submodules/appium/packages/appium/docs/en/guides/execute-methods.md +122 -0
  213. package/src/resources/submodules/appium/packages/appium/docs/en/guides/grid.md +166 -0
  214. package/src/resources/submodules/appium/packages/appium/docs/en/guides/headers.md +17 -0
  215. package/src/resources/submodules/appium/packages/appium/docs/en/guides/log-filters.md +86 -0
  216. package/src/resources/submodules/appium/packages/appium/docs/en/guides/managing-exts.md +87 -0
  217. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-1-to-2.md +368 -0
  218. package/src/resources/submodules/appium/packages/appium/docs/en/guides/migrating-2-to-3.md +464 -0
  219. package/src/resources/submodules/appium/packages/appium/docs/en/guides/security.md +89 -0
  220. package/src/resources/submodules/appium/packages/appium/docs/en/guides/settings.md +68 -0
  221. package/src/resources/submodules/appium/packages/appium/docs/en/guides/tls.md +42 -0
  222. package/src/resources/submodules/appium/packages/appium/docs/en/index.md +59 -0
  223. package/src/resources/submodules/appium/packages/appium/docs/en/intro/appium.md +202 -0
  224. package/src/resources/submodules/appium/packages/appium/docs/en/intro/clients.md +127 -0
  225. package/src/resources/submodules/appium/packages/appium/docs/en/intro/drivers.md +188 -0
  226. package/src/resources/submodules/appium/packages/appium/docs/en/intro/history.md +196 -0
  227. package/src/resources/submodules/appium/packages/appium/docs/en/intro/index.md +39 -0
  228. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/index.md +29 -0
  229. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/install.md +50 -0
  230. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/next-steps.md +23 -0
  231. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/requirements.md +29 -0
  232. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-dotnet.md +105 -0
  233. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-java.md +23 -0
  234. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-js.md +75 -0
  235. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-py.md +60 -0
  236. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/test-rb.md +83 -0
  237. package/src/resources/submodules/appium/packages/appium/docs/en/quickstart/uiauto2-driver.md +144 -0
  238. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/appium.md +394 -0
  239. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/bidi.md +70 -0
  240. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/index.md +30 -0
  241. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/jsonwp.md +214 -0
  242. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/mjsonwp.md +151 -0
  243. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/others.md +671 -0
  244. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/plugins.md +289 -0
  245. package/src/resources/submodules/appium/packages/appium/docs/en/reference/api/webdriver.md +1114 -0
  246. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/env-vars.md +31 -0
  247. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/extensions.md +239 -0
  248. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/index.md +35 -0
  249. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/server.md +76 -0
  250. package/src/resources/submodules/appium/packages/appium/docs/en/reference/cli/setup.md +76 -0
  251. package/src/resources/submodules/appium/packages/appium/docs/en/reference/index.md +25 -0
  252. package/src/resources/submodules/appium/packages/appium/docs/en/resources/index.md +28 -0
  253. package/src/resources/submodules/appium/packages/appium/docs/en/sponsors/index.md +64 -0
  254. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/index.md +2 -0
  255. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-appiumconf2024.md +45 -0
  256. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
  257. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-headspin-as-development-partner.md +47 -0
  258. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
  259. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
  260. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/announcing-sponsorship-program.md +48 -0
  261. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/appium3.md +40 -0
  262. package/src/resources/submodules/appium/packages/appium/docs/ja/blog/posts/hello-world.md +15 -0
  263. package/src/resources/submodules/appium/packages/appium/docs/ja/contributing/index.md +158 -0
  264. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-docs.md +86 -0
  265. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-doctor-checks.md +141 -0
  266. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-drivers.md +866 -0
  267. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/build-plugins.md +520 -0
  268. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/config-system.md +468 -0
  269. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/index.md +18 -0
  270. package/src/resources/submodules/appium/packages/appium/docs/ja/developing/sensitive.md +49 -0
  271. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/clients.md +143 -0
  272. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/drivers.md +219 -0
  273. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/index.md +45 -0
  274. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/plugins.md +140 -0
  275. package/src/resources/submodules/appium/packages/appium/docs/ja/ecosystem/tools.md +87 -0
  276. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/branch-testing.md +57 -0
  277. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caching.md +78 -0
  278. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/caps.md +259 -0
  279. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/config.md +102 -0
  280. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/context.md +44 -0
  281. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/event-timing.md +75 -0
  282. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/execute-methods.md +142 -0
  283. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/grid.md +166 -0
  284. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/headers.md +17 -0
  285. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/log-filters.md +86 -0
  286. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/managing-exts.md +89 -0
  287. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-1-to-2.md +402 -0
  288. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/migrating-2-to-3.md +458 -0
  289. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/security.md +89 -0
  290. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/settings.md +70 -0
  291. package/src/resources/submodules/appium/packages/appium/docs/ja/guides/tls.md +43 -0
  292. package/src/resources/submodules/appium/packages/appium/docs/ja/index.md +55 -0
  293. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/appium.md +191 -0
  294. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/clients.md +139 -0
  295. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/drivers.md +188 -0
  296. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/history.md +196 -0
  297. package/src/resources/submodules/appium/packages/appium/docs/ja/intro/index.md +39 -0
  298. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/index.md +23 -0
  299. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/install.md +47 -0
  300. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/next-steps.md +19 -0
  301. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/requirements.md +29 -0
  302. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-dotnet.md +107 -0
  303. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-java.md +23 -0
  304. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-js.md +77 -0
  305. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-py.md +63 -0
  306. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/test-rb.md +85 -0
  307. package/src/resources/submodules/appium/packages/appium/docs/ja/quickstart/uiauto2-driver.md +148 -0
  308. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/appium.md +395 -0
  309. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/bidi.md +71 -0
  310. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/index.md +30 -0
  311. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/jsonwp.md +215 -0
  312. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/mjsonwp.md +152 -0
  313. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/others.md +672 -0
  314. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/plugins.md +291 -0
  315. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/api/webdriver.md +1114 -0
  316. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/env-vars.md +31 -0
  317. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/extensions.md +240 -0
  318. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/index.md +35 -0
  319. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/server.md +76 -0
  320. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/cli/setup.md +78 -0
  321. package/src/resources/submodules/appium/packages/appium/docs/ja/reference/index.md +25 -0
  322. package/src/resources/submodules/appium/packages/appium/docs/ja/resources/index.md +28 -0
  323. package/src/resources/submodules/appium/packages/appium/docs/ja/sponsors/index.md +61 -0
  324. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz-white.png +0 -0
  325. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-horiz.png +0 -0
  326. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo-white.png +0 -0
  327. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/appium-logo.png +0 -0
  328. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png +0 -0
  329. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-light.png +0 -0
  330. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-dark.png +0 -0
  331. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-lambdatest-light.png +0 -0
  332. package/src/resources/submodules/appium/packages/appium/docs/overrides/assets/images/sponsor-logo-sauce.png +0 -0
  333. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/index.md +2 -0
  334. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-appiumconf2024.md +45 -0
  335. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-browserstack-as-strategic-partner.md +46 -0
  336. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-headspin-as-development-partner.md +47 -0
  337. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-lambdatest-as-strategic-partner.md +41 -0
  338. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sauce-labs-as-strategic-partner.md +36 -0
  339. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/announcing-sponsorship-program.md +48 -0
  340. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/appium3.md +40 -0
  341. package/src/resources/submodules/appium/packages/appium/docs/zh/blog/posts/hello-world.md +15 -0
  342. package/src/resources/submodules/appium/packages/appium/docs/zh/contributing/index.md +132 -0
  343. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-docs.md +86 -0
  344. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-doctor-checks.md +141 -0
  345. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-drivers.md +866 -0
  346. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/build-plugins.md +520 -0
  347. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/config-system.md +468 -0
  348. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/index.md +18 -0
  349. package/src/resources/submodules/appium/packages/appium/docs/zh/developing/sensitive.md +49 -0
  350. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/clients.md +143 -0
  351. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/drivers.md +219 -0
  352. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/index.md +45 -0
  353. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/plugins.md +140 -0
  354. package/src/resources/submodules/appium/packages/appium/docs/zh/ecosystem/tools.md +87 -0
  355. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/branch-testing.md +57 -0
  356. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caching.md +78 -0
  357. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/caps.md +284 -0
  358. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/config.md +102 -0
  359. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/context.md +44 -0
  360. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/event-timing.md +75 -0
  361. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/execute-methods.md +142 -0
  362. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/grid.md +166 -0
  363. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/headers.md +17 -0
  364. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/log-filters.md +86 -0
  365. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/managing-exts.md +89 -0
  366. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-1-to-2.md +410 -0
  367. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/migrating-2-to-3.md +459 -0
  368. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/security.md +89 -0
  369. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/settings.md +70 -0
  370. package/src/resources/submodules/appium/packages/appium/docs/zh/guides/tls.md +43 -0
  371. package/src/resources/submodules/appium/packages/appium/docs/zh/index.md +54 -0
  372. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/appium.md +200 -0
  373. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/clients.md +139 -0
  374. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/drivers.md +188 -0
  375. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/history.md +196 -0
  376. package/src/resources/submodules/appium/packages/appium/docs/zh/intro/index.md +39 -0
  377. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/index.md +23 -0
  378. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/install.md +47 -0
  379. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/next-steps.md +19 -0
  380. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/requirements.md +21 -0
  381. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-dotnet.md +99 -0
  382. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-java.md +20 -0
  383. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-js.md +62 -0
  384. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-py.md +57 -0
  385. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/test-rb.md +80 -0
  386. package/src/resources/submodules/appium/packages/appium/docs/zh/quickstart/uiauto2-driver.md +148 -0
  387. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/appium.md +395 -0
  388. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/bidi.md +71 -0
  389. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/index.md +30 -0
  390. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/jsonwp.md +215 -0
  391. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/mjsonwp.md +152 -0
  392. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/others.md +672 -0
  393. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/plugins.md +291 -0
  394. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/api/webdriver.md +1114 -0
  395. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/env-vars.md +31 -0
  396. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/extensions.md +240 -0
  397. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/index.md +35 -0
  398. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/server.md +76 -0
  399. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/cli/setup.md +78 -0
  400. package/src/resources/submodules/appium/packages/appium/docs/zh/reference/index.md +25 -0
  401. package/src/resources/submodules/appium/packages/appium/docs/zh/resources/index.md +28 -0
  402. package/src/resources/submodules/appium/packages/appium/docs/zh/sponsors/index.md +61 -0
  403. package/src/resources/submodules/appium/packages/appium/types/manifest/README.md +30 -0
  404. package/src/resources/submodules/appium/packages/base-driver/CHANGELOG.md +1131 -0
  405. package/src/resources/submodules/appium/packages/base-driver/README.md +15 -0
  406. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/errors.md +82 -0
  407. package/src/resources/submodules/appium/packages/base-driver/docs/mjsonwp/protocol-methods.md +182 -0
  408. package/src/resources/submodules/appium/packages/base-driver/static/appium.png +0 -0
  409. package/src/resources/submodules/appium/packages/base-plugin/CHANGELOG.md +672 -0
  410. package/src/resources/submodules/appium/packages/base-plugin/README.md +15 -0
  411. package/src/resources/submodules/appium/packages/docutils/CHANGELOG.md +948 -0
  412. package/src/resources/submodules/appium/packages/docutils/README.md +27 -0
  413. package/src/resources/submodules/appium/packages/driver-test-support/CHANGELOG.md +717 -0
  414. package/src/resources/submodules/appium/packages/driver-test-support/README.md +112 -0
  415. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/CHANGELOG.md +168 -0
  416. package/src/resources/submodules/appium/packages/eslint-config-appium-ts/README.md +33 -0
  417. package/src/resources/submodules/appium/packages/execute-driver-plugin/CHANGELOG.md +603 -0
  418. package/src/resources/submodules/appium/packages/execute-driver-plugin/README.md +42 -0
  419. package/src/resources/submodules/appium/packages/fake-driver/CHANGELOG.md +545 -0
  420. package/src/resources/submodules/appium/packages/fake-driver/README.md +7 -0
  421. package/src/resources/submodules/appium/packages/fake-driver/lib/screen.png +0 -0
  422. package/src/resources/submodules/appium/packages/fake-plugin/CHANGELOG.md +683 -0
  423. package/src/resources/submodules/appium/packages/fake-plugin/README.md +7 -0
  424. package/src/resources/submodules/appium/packages/images-plugin/CHANGELOG.md +602 -0
  425. package/src/resources/submodules/appium/packages/images-plugin/README.md +27 -0
  426. package/src/resources/submodules/appium/packages/images-plugin/docs/find-by-image.md +65 -0
  427. package/src/resources/submodules/appium/packages/images-plugin/docs/image-comparison.md +203 -0
  428. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/appstore.png +0 -0
  429. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img1.png +0 -0
  430. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2.png +0 -0
  431. package/src/resources/submodules/appium/packages/images-plugin/test/fixtures/img2_part.png +0 -0
  432. package/src/resources/submodules/appium/packages/logger/CHANGELOG.md +162 -0
  433. package/src/resources/submodules/appium/packages/logger/README.md +31 -0
  434. package/src/resources/submodules/appium/packages/opencv/CHANGELOG.md +384 -0
  435. package/src/resources/submodules/appium/packages/opencv/README.md +68 -0
  436. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/appium-diagram.jpg +0 -0
  437. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc1.png +0 -0
  438. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc2.png +0 -0
  439. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/cc_rotated.png +0 -0
  440. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/findwaldo.jpg +0 -0
  441. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/number5.png +0 -0
  442. package/src/resources/submodules/appium/packages/opencv/test/e2e/images/waldo.jpg +0 -0
  443. package/src/resources/submodules/appium/packages/plugin-test-support/CHANGELOG.md +539 -0
  444. package/src/resources/submodules/appium/packages/plugin-test-support/README.md +49 -0
  445. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/CHANGELOG.md +154 -0
  446. package/src/resources/submodules/appium/packages/relaxed-caps-plugin/README.md +35 -0
  447. package/src/resources/submodules/appium/packages/schema/CHANGELOG.md +271 -0
  448. package/src/resources/submodules/appium/packages/schema/README.md +50 -0
  449. package/src/resources/submodules/appium/packages/storage-plugin/CHANGELOG.md +73 -0
  450. package/src/resources/submodules/appium/packages/storage-plugin/README.md +83 -0
  451. package/src/resources/submodules/appium/packages/strongbox/CHANGELOG.md +94 -0
  452. package/src/resources/submodules/appium/packages/strongbox/README.md +96 -0
  453. package/src/resources/submodules/appium/packages/support/CHANGELOG.md +1054 -0
  454. package/src/resources/submodules/appium/packages/support/README.md +161 -0
  455. package/src/resources/submodules/appium/packages/test-support/CHANGELOG.md +712 -0
  456. package/src/resources/submodules/appium/packages/test-support/README.md +61 -0
  457. package/src/resources/submodules/appium/packages/tsconfig/CHANGELOG.md +131 -0
  458. package/src/resources/submodules/appium/packages/tsconfig/README.md +19 -0
  459. package/src/resources/submodules/appium/packages/types/CHANGELOG.md +793 -0
  460. package/src/resources/submodules/appium/packages/types/README.md +21 -0
  461. package/src/resources/submodules/appium/packages/universal-xml-plugin/CHANGELOG.md +435 -0
  462. package/src/resources/submodules/appium/packages/universal-xml-plugin/README.md +53 -0
  463. package/src/resources/submodules/appium/renovate/README.md +63 -0
  464. package/src/resources/submodules/appium-uiautomator2-driver/CHANGELOG.md +1204 -0
  465. package/src/resources/submodules/appium-uiautomator2-driver/README.md +2077 -0
  466. package/src/resources/submodules/appium-uiautomator2-driver/docs/actions.md +72 -0
  467. package/src/resources/submodules/appium-uiautomator2-driver/docs/activity-startup.md +47 -0
  468. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-appbundle.md +69 -0
  469. package/src/resources/submodules/appium-uiautomator2-driver/docs/android-mobile-gestures.md +352 -0
  470. package/src/resources/submodules/appium-uiautomator2-driver/docs/bidi.md +50 -0
  471. package/src/resources/submodules/appium-uiautomator2-driver/docs/capability-sets.md +136 -0
  472. package/src/resources/submodules/appium-uiautomator2-driver/docs/scheduled-actions.md +155 -0
  473. package/src/resources/submodules/appium-uiautomator2-driver/docs/uiautomator-uiselector.md +51 -0
  474. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/main.md +95 -0
  475. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen1.png +0 -0
  476. package/src/resources/submodules/appium-uiautomator2-driver/docs/unlock/screen2.png +0 -0
  477. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/checkered-squares.png +0 -0
  478. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/start-button.png +0 -0
  479. package/src/resources/submodules/appium-uiautomator2-driver/test/functional/assets/stop-button.png +0 -0
  480. package/src/resources/submodules/appium-xcuitest-driver/.github/ISSUE_TEMPLATE.md +4 -0
  481. package/src/resources/submodules/appium-xcuitest-driver/CHANGELOG.md +2594 -0
  482. package/src/resources/submodules/appium-xcuitest-driver/README.md +55 -0
  483. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo-white.png +0 -0
  484. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-logo.png +0 -0
  485. package/src/resources/submodules/appium-xcuitest-driver/docs/assets/images/appium-plus-xctest.png +0 -0
  486. package/src/resources/submodules/appium-xcuitest-driver/docs/contributing.md +45 -0
  487. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints-wda.md +61 -0
  488. package/src/resources/submodules/appium-xcuitest-driver/docs/endpoints.md +98 -0
  489. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/keynote.png +0 -0
  490. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/on_my_iphone.png +0 -0
  491. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/assets/images/ios-xctest-file-movement/top_files.png +0 -0
  492. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/attach-to-running-wda.md +43 -0
  493. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/audio-capture.md +78 -0
  494. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/capability-sets.md +169 -0
  495. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/ci-setup.md +47 -0
  496. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/clipboard.md +47 -0
  497. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/elements-lookup-troubleshooting.md +158 -0
  498. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/file-transfer.md +147 -0
  499. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/gestures.md +52 -0
  500. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/hybrid.md +137 -0
  501. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/input-events.md +67 -0
  502. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/install-certificate.md +19 -0
  503. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/multiple-xcode-versions.md +37 -0
  504. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/parallel-tests.md +39 -0
  505. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-prebuilt-wda.md +135 -0
  506. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/run-preinstalled-wda.md +178 -0
  507. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/touch-id.md +33 -0
  508. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/troubleshooting.md +191 -0
  509. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/tvos.md +114 -0
  510. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-custom-server.md +283 -0
  511. package/src/resources/submodules/appium-xcuitest-driver/docs/guides/wda-slowness.md +231 -0
  512. package/src/resources/submodules/appium-xcuitest-driver/docs/index.md +36 -0
  513. package/src/resources/submodules/appium-xcuitest-driver/docs/installation/index.md +137 -0
  514. package/src/resources/submodules/appium-xcuitest-driver/docs/overview.md +19 -0
  515. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/check-prov-prof.png +0 -0
  516. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-new-project.png +0 -0
  517. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/create-single-page.png +0 -0
  518. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/no-prov-prof.png +0 -0
  519. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/project-prov-prof.png +0 -0
  520. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/set-up-bundle.png +0 -0
  521. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/untrusted-dev.png +0 -0
  522. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-bundle-id.png +0 -0
  523. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-config.png +0 -0
  524. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-fail.png +0 -0
  525. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/assets/images/xcode-facebook-succeed.png +0 -0
  526. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/index.md +51 -0
  527. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-auto.md +49 -0
  528. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-basic-manual.md +40 -0
  529. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-full-manual.md +50 -0
  530. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/prov-profile-generic-manual.md +49 -0
  531. package/src/resources/submodules/appium-xcuitest-driver/docs/preparation/real-device-config.md +100 -0
  532. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/assets/images/useXctestrunFile.png +0 -0
  533. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/bidi.md +75 -0
  534. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/capabilities.md +165 -0
  535. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/commands.md +490 -0
  536. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/element-attributes.md +27 -0
  537. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/execute-methods.md +2206 -0
  538. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/ios-predicate.md +196 -0
  539. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/locator-strategies.md +19 -0
  540. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/scripts.md +29 -0
  541. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/security-flags.md +22 -0
  542. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/server-args.md +16 -0
  543. package/src/resources/submodules/appium-xcuitest-driver/docs/reference/settings.md +49 -0
  544. package/src/resources/submodules/appium-xcuitest-driver/test/assets/TestApp-iphonesimulator.app/Default-568h@2x.png +0 -0
  545. package/src/resources/submodules/appium-xcuitest-driver/test/assets/test.png +0 -0
  546. package/src/schema.ts +5 -0
  547. package/src/scripts/simple-index-documentation.ts +93 -0
  548. package/src/scripts/simple-query-documentation.ts +61 -0
  549. package/src/server.ts +40 -0
  550. package/src/tests/README.md +83 -0
  551. package/src/tests/__mocks__/@appium/support.ts +31 -0
  552. package/src/tests/generate-all-locators.test.ts +179 -0
  553. package/src/tests/test-setup-wda.ts +247 -0
  554. package/src/tools/README.md +171 -0
  555. package/src/tools/answer-appium.ts +75 -0
  556. package/src/tools/boot-simulator.ts +87 -0
  557. package/src/tools/create-session.ts +270 -0
  558. package/src/tools/delete-session.ts +46 -0
  559. package/src/tools/documentation/index.ts +97 -0
  560. package/src/tools/documentation/reasoning-rag.ts +434 -0
  561. package/src/tools/documentation/sentence-transformers-embeddings.ts +142 -0
  562. package/src/tools/documentation/simple-pdf-indexer.ts +509 -0
  563. package/src/tools/documentation/uploads/documents.json +1 -0
  564. package/src/tools/generate-tests.ts +50 -0
  565. package/src/tools/index.ts +135 -0
  566. package/src/tools/install-wda.ts +277 -0
  567. package/src/tools/interactions/activate-app.ts +46 -0
  568. package/src/tools/interactions/click.ts +47 -0
  569. package/src/tools/interactions/double-tap.ts +87 -0
  570. package/src/tools/interactions/find.ts +58 -0
  571. package/src/tools/interactions/get-page-source.ts +52 -0
  572. package/src/tools/interactions/get-text.ts +47 -0
  573. package/src/tools/interactions/install-app.ts +45 -0
  574. package/src/tools/interactions/list-apps.ts +65 -0
  575. package/src/tools/interactions/screenshot.ts +56 -0
  576. package/src/tools/interactions/set-value.ts +48 -0
  577. package/src/tools/interactions/terminate-app.ts +47 -0
  578. package/src/tools/interactions/uninstall-app.ts +47 -0
  579. package/src/tools/locators.ts +83 -0
  580. package/src/tools/scroll-to-element.ts +188 -0
  581. package/src/tools/scroll.ts +97 -0
  582. package/src/tools/select-device.ts +298 -0
  583. package/src/tools/select-platform.ts +243 -0
  584. package/src/tools/session-store.ts +72 -0
  585. package/src/tools/setup-wda.ts +218 -0
  586. package/src/types/appium-ios-device.d.ts +8 -0
  587. package/src/types/appium-xcuitest-driver.d.ts +5 -0
  588. package/tsconfig.json +23 -0
  589. package/index.js +0 -0
@@ -0,0 +1,47 @@
1
+ ---
2
+ authors:
3
+ - jlipps
4
+ date: 2024-06-06
5
+ ---
6
+
7
+ # Announcing HeadSpin as Appium's Development Partner
8
+
9
+ Recently, we announced a new [sponsorship and contributor compensation program](https://appium.io/docs/en/latest/blog/2024/05/14/announcing-appiums-sponsorship-program/) for the Appium
10
+ project. As part of this program, we felt it was important to have a place to recognize those
11
+ companies who make an extremely valuable kind of contribution to the project: dedicated maintainer
12
+ time. Appium only survives because of the tireless efforts of the core maintainers, and some of us
13
+ are only able to do this work because it is donated on behalf of our day jobs. We're therefore very
14
+ excited to announce our first Development Partner: <a
15
+ href="https://www.headspin.io/solutions/appium-mobile-test-automation">HeadSpin</a>!
16
+
17
+ <!-- more -->
18
+
19
+ <div style="text-align:center;width:100%">
20
+ <a href="https://www.headspin.io/solutions/appium-mobile-test-automation"><img
21
+ src="/docs/en/latest/assets/images/sponsor-logo-headspin.png" style="width: 300px"/></a>
22
+ </div>
23
+
24
+ HeadSpin is a real device performance and UX analysis cloud, with full support for Appium. When you
25
+ run your Appium tests on HeadSpin, you get access to comprehensive performance reports about your
26
+ app, including potential network, system resource, or user experience issues. HeadSpin supports
27
+ a variety of complex testing modes, including hooking up your own devices to the cloud, injecting
28
+ and receiving video and audio to/from devices, working with media (streaming) platforms, and more.
29
+
30
+ HeadSpin has been one of the Appium project's biggest supporters for a long time, and currently
31
+ employs two of Appium's core maintainers, donating a significant portion of their time towards the
32
+ development, maintenance, support, and leadership of open source Appium repos. HeadSpin has also
33
+ worked hard towards Appium's vision of a robust Appium ecosystem, contributing several
34
+ HeadSpin-maintained Appium drivers and plugins to the community:
35
+
36
+ - A [Roku TV driver](https://github.com/headspinio/appium-roku-driver)
37
+ - A [Tizen TV driver](https://github.com/headspinio/appium-tizen-tv-driver/)
38
+ - A [LG webOS TV driver](https://github.com/headspinio/appium-lg-webos-driver/)
39
+ - A [Unity game automation plugin](https://github.com/headspinio/appium-altunity-plugin)
40
+
41
+ These are all free and open source Appium components that HeadSpin has donated to the community
42
+ with the goal of fostering collaboration in these areas of media app automation.
43
+
44
+ Looking to the future, HeadSpin plans to continue supporting Appium in significant ways, both as
45
+ a Development Partner and a significant contributor to the Appium ecosystem. The Appium project is
46
+ deeply indebted to HeadSpin for all of its support, and is proud to take this moment to recognize
47
+ HeadSpin as our first official Development Partner!
@@ -0,0 +1,41 @@
1
+ ---
2
+ authors:
3
+ - jlipps
4
+ date: 2025-07-01
5
+ ---
6
+
7
+ # Announcing LambdaTest as Appium Strategic Partner
8
+
9
+ After recently celebrating the 1-year anniversary of our Sponsorship Program and Compensation
10
+ Scheme,
11
+ the Appium project is very excited to announce that <a
12
+ href="https://lambdatest.com/?utm_source=appium.io&utm_medium=organic&utm_campaign=june_25&utm_term=sk&utm_content=webpage">LambdaTest</a>
13
+ is coming on board as one of our Strategic Partners!
14
+
15
+ <!-- more -->
16
+
17
+ <div style="text-align:center;width:100%"><a href="https://lambdatest.com/?utm_source=appium.io&utm_medium=organic&utm_campaign=june_25&utm_term=sk&utm_content=webpage">
18
+ <img src="/docs/en/latest/assets/images/sponsor-logo-lambdatest-dark.png#only-dark" width="300" />
19
+ <img src="/docs/en/latest/assets/images/sponsor-logo-lambdatest-light.png#only-light" width="300" />
20
+ </a>
21
+ </div>
22
+
23
+ Having long been active in the Appium community and the automated testing industry, LambdaTest is
24
+ now significantly stepping up their investment into these areas. With the decision to come on board
25
+ as a Strategic Partner, LambdaTest will support the Appium project through financial contribution
26
+ as well as contribution of code and project maintenance. Obviously, without the generous support of
27
+ partners like LambdaTest, we would not be able to continue our contributor compensation scheme,
28
+ which has seen the release of a substantial amount of funds to Appium maintainers and contributors
29
+ over the last year. Thanks again to LambdaTest, and stay tuned for more collaboration updates
30
+ throughout the year!
31
+
32
+ **About LambdaTest**
33
+
34
+ <em>LambdaTest is a GenAI-powered Quality Engineering Platform that empowers teams to test
35
+ intelligently, smarter, and ship faster. Built for scale, it offers a full-stack testing cloud with
36
+ 10K+ real mobile devices and 3,000+ browsers. With AI-native test management, MCP servers, and
37
+ agent-based automation, LambdaTest supports Selenium, Appium, Playwright, and all major frameworks.
38
+ AI Agents like HyperExecute and KaneAI bring the power of AI and cloud into your software testing
39
+ workflow, enabling seamless automation testing with 120+ integrations. LambdaTest Agents accelerate
40
+ your testing throughout the entire SDLC, from test planning and authoring to automation,
41
+ infrastructure, execution, RCA, and reporting.</em>
@@ -0,0 +1,36 @@
1
+ ---
2
+ authors:
3
+ - jlipps
4
+ date: 2024-06-10
5
+ ---
6
+
7
+ # Announcing Sauce Labs as Appium's Strategic Partner
8
+
9
+ The good news surrounding our new sponsorship and contributor compensation
10
+ program
11
+ just keeps coming! Effective immediately we are fortunate and excited to be able to welcome a new Strategic Partner to
12
+ the Appium project: <a href="https://saucelabs.com/resources/blog/appium-strategic-partner">Sauce Labs</a>!
13
+
14
+ <!-- more -->
15
+
16
+ <div style="text-align:center;width:100%">
17
+ <a href="https://saucelabs.com/resources/blog/appium-strategic-partner"><img src="/docs/en/latest/assets/images/sponsor-logo-sauce.png" style="width: 300px"/></a>
18
+ </div>
19
+
20
+ Sauce Labs has a long history of support for the Appium project. In fact, Appium was initially
21
+ incubated at Sauce Labs under the direction of [@jlipps](https://github.com/jlipps), in the early
22
+ days of mobile automation. Sauce Labs always envisioned Appium as being a project for and by the
23
+ community, and cemented this perspective in 2016 with the donation of Appium to the JS Foundation
24
+ (now the [OpenJS Foundation](https://openjsf.org/)). To this day, developers associated with Sauce
25
+ Labs continue to help maintain various parts of the Appium project.
26
+
27
+ Now, Sauce Labs is making a further commitment to support Appium financially as a way to enable
28
+ our new contributor compensation program. We're very excited about this program as a vehicle for
29
+ getting more people involved in Appium's development and maintenance. With the help of Strategic
30
+ Partners like Sauce Labs, our project will be better able to meet the needs of our constantly
31
+ growing userbase, and attract new developers (like you?) to build the Appium ecosystem together.
32
+ Needless to say, we are extremely grateful for Sauce Labs's support!
33
+
34
+ **About Sauce Labs**
35
+
36
+ <em>Sauce Labs is the leader in continuous quality. Our Platform for Test helps organizations transform software testing from a chore to a competitive advantage. With decades of expertise and deep roots in the Selenium and Appium open source communities, high performing software teams use our platform to execute any testing workload across thousands of different devices, browsers, and operating systems—anywhere, any time, and at any scale. For more information, please visit [saucelabs.com](https://saucelabs.com).</em>
@@ -0,0 +1,48 @@
1
+ ---
2
+ authors:
3
+ - jlipps
4
+ date: 2024-05-14
5
+ ---
6
+
7
+ # Announcing Appium's Sponsorship Program
8
+
9
+ Over the last several months, the Appium team has been working on a sponsorship program that is
10
+ designed to help give back to Appium's contributors as well as to recognize important partner
11
+ individuals or companies in the industry. This program is now officially launching! Let's dive into
12
+ some of the details.
13
+
14
+ <!-- more -->
15
+
16
+ First of all, the details and fine print will always be available at Appium's Governance
17
+ document, which outlines how the
18
+ project is run, who makes project decisions, etc... This document will be kept up to date with the
19
+ latest details of the program, so that's the place to bookmark for reference!
20
+
21
+ As of now, Appium has opened up sponsorship opportunities via our OpenCollective
22
+ page. OpenCollective is a service which allows people to donate
23
+ to open source groups. We've defined a number of giving tiers for donations, within a very wide
24
+ range, and welcome any financial amount with gratitude! Based on the donation tier, sponsorship
25
+ comes with a variety of benefits, including recognition at different places in the Appium repo,
26
+ docs, and website. In addition to financial sponsorship, the project has decided to recognize
27
+ significant donations of project leadership and maintenance efforts from companies who have
28
+ invested heavily into Appium with their employees' time (we call these "Development Partners").
29
+
30
+ What will the project do with the funds raised through this sponsorship program? We aim to give it
31
+ all back to the Appium community! With the details again available at our [Governance document](https://github.com/appium/appium/blob/master/GOVERNANCE.md),
32
+ we have implemented a scheme very much inspired by our friends at [WebdriverIO](https://webdriver.io/blog/2024/02/15/new-contributor-stipend-program) (thanks WDIO
33
+ friends!) There are three groups of contributors to Appium that this scheme supports: (1) project
34
+ maintainers (those who devote consistent time to leading the project), (2) project contributors
35
+ (anyone in the wider community that contributes code or documentation), and (3) upstream projects
36
+ (other open source projects Appium relies heavily on to work well). Each month, the funds raised
37
+ via sponsorship will be distributed in different amounts to each of these groups. So if you
38
+ make a valuable contribution to Appium moving forward, you'll be eligible to get some cash as
39
+ a thank-you! (You'll need to have your own OpenCollective account in good standing to receive
40
+ funds).
41
+
42
+ We're very excited about this new program, and hope that it helps existing and new contributors to
43
+ feel even better about donating their time to making Appium better. And of course, none of this
44
+ would be possible without the amazing Partners and Sponsors we hope to attract! On that note, stay
45
+ tuned over the next few weeks as we unveil some of our initial program launch Partners! And if you
46
+ or your company would like to participate by supporting Appium financially, you are most welcome.
47
+ Just head over to our OpenCollective page and choose the tier that reflects your desired
48
+ contribution level.
@@ -0,0 +1,40 @@
1
+ ---
2
+ authors:
3
+ - sai
4
+ - srini
5
+ - jlipps
6
+ date: 2025-08-07
7
+ ---
8
+
9
+ # 🚀 Appium 3
10
+
11
+ Appium 3 is here — and while it's not as massive a leap as Appium 2, it introduces a few essential
12
+ breaking changes that developers and QA engineers should be aware of.
13
+
14
+ <!-- more -->
15
+
16
+ The main idea behind Appium 3 is to clear out old cruft so that Appium can be leaner moving
17
+ forward, and rely on newer versions of software with better performance and security
18
+ characteristics. We're also getting rid of legacy behaviors and protocols that we deprecated as
19
+ part of Appium 2.
20
+
21
+ For you as a user, there's not much to worry about. The breaking changes are minimal:
22
+
23
+ - Node.js / NPM minimum version bump (to 20.19 / 10)
24
+ - Removal of certain deprecated endpoints
25
+ - Security feature flag prefix requirements (e.g. `adb_shell` to `uiautomator2:adb_shell`)
26
+
27
+ In terms of new features, we've been adding them incrementally rather than saving them up for
28
+ Appium 3. But with this release we are excited to share these new capabilities:
29
+
30
+ - `appium plugin install inspector` (Use Appium to host the Inspector rather than downloading it as a separate app)
31
+ - Clients can set the `X-Appium-Is-Sensitive` HTTP header on requests to direct the server to mask the data in the request in the logs, so that when you send a password into an input box, the password's actual value is not logged in plaintext. ([Learn more](../../developing/sensitive.md))
32
+
33
+ Of course, we have a full [Appium 3 migration guide](../../guides/migrating-2-to-3.md) to make sure
34
+ you know all the details and can deeply understand the consequences of upgrading to Appium 3 in
35
+ your environment.
36
+
37
+ ---
38
+
39
+ **Ready to make the leap?** Appium 3 is a great step forward in creating more secure, maintainable,
40
+ and W3C-compliant test automation pipelines. Happy testing!
@@ -0,0 +1,15 @@
1
+ ---
2
+ authors:
3
+ - jlipps
4
+ date: 2024-03-07
5
+ ---
6
+
7
+ # Hello World!
8
+
9
+ This is the first post in the Appium blog. There's not much to see here yet. We're creating this
10
+ space so we can make announcements or post other news, or information about events, that don't
11
+ really fit inside the documentation itself.
12
+
13
+ <!-- more -->
14
+
15
+ Stay tuned for more!
@@ -0,0 +1,158 @@
1
+ ---
2
+ hide:
3
+ - navigation
4
+
5
+ title: Contributing to Appium
6
+ ---
7
+
8
+ The Appium project would not exist without the many contributions of code, documentation,
9
+ maintenance, and support from companies and volunteers. As such, we welcome contributions!
10
+
11
+ There are a lot of different ways to help the project - see below for everything you can do and the
12
+ processes to follow for each contribution method. Note that no matter how you contribute, your
13
+ participation is governed by our [Code of Conduct](https://github.com/appium/appium/blob/master/CONDUCT.md).
14
+
15
+ ## Join the Discussion Forum
16
+
17
+ You don't need to know the internals of Appium to be able to contribute! If you have experience with
18
+ using Appium and feel like sharing your knowledge with others, consider helping out users on the
19
+ Appium forums at [discuss.appium.io](https://discuss.appium.io/). Hop on over and see if there are
20
+ any questions that you can answer.
21
+
22
+ ## Report Bugs or Feature Requests
23
+
24
+ If you've encountered a bug, or have a cool feature in mind that you think Appium should support,
25
+ make sure to let us know at our [GitHub issue tracker](https://github.com/appium/appium/issues).
26
+ Please use the appropriate issue form template when creating your issue.
27
+
28
+ ## Triage Issues
29
+
30
+ In addition to creating issues, you can also help us investigate already reported issues. All you
31
+ need is enough familiarity with Appium to try and reproduce bugs.
32
+
33
+ You can get started by checking our [GitHub issue tracker](https://github.com/appium/appium/issues)
34
+ for issues with labels such as `Needs Triage` or `Needs Info`, and leaving relevant comments:
35
+
36
+ - If the issue is a duplicate, drop a link to the original issue
37
+ - If the user has not provided enough information (such as Appium logs), ask them for more details
38
+ - If you can reproduce the problem on your own environment, provide all the information that you think
39
+ would help us track down the cause of the issue
40
+
41
+ For further information on triaging Appium issues (for any Appium project repository), please contact
42
+ any member of the [Technical Committee](https://github.com/appium/appium/blob/master/GOVERNANCE.md#the-technical-committee).
43
+
44
+ ## Contribute Code
45
+
46
+ We are always open to pull requests for improving the Appium code or documentation!
47
+
48
+ !!! info
49
+
50
+ Developer information may not be kept up to date as frequently as user-facing information, or
51
+ it may be most relevant in its current form on the online repository, not in this published
52
+ version. Make sure to check the repo or discuss with maintainers. We would be glad to help
53
+ new contributors get started!
54
+
55
+ Start by cloning the repository (we recommend [forking](https://github.com/appium/appium/fork)
56
+ it first):
57
+
58
+ ```sh
59
+ git clone https://github.com/appium/appium.git
60
+ cd appium
61
+ ```
62
+
63
+ !!! info
64
+
65
+ If you are VS Code user, you can easily check out the project using [Runme](https://runme.dev/api/runme?repository=https%3A%2F%2Fgithub.com%2Fappium%2Fappium.git&fileToOpen=packages%2Fappium%2Fdocs%2Fen%2Fcontributing%2Findex.md).
66
+
67
+ Install dependencies:
68
+
69
+ ```sh
70
+ npm install
71
+ ```
72
+
73
+ From here on there are several things you can do.
74
+
75
+ Build the project:
76
+
77
+ ```sh
78
+ npm run build
79
+ ```
80
+
81
+ Build the project and watch for changes:
82
+
83
+ ```sh
84
+ npm run dev
85
+ ```
86
+
87
+ Start the locally built Appium server:
88
+
89
+ ```sh
90
+ npm start
91
+ ```
92
+
93
+ Run various tests:
94
+
95
+ ```sh
96
+ npm run lint
97
+ npm run test:unit
98
+ npm run test:types
99
+ npm run test:smoke
100
+ npm run test:e2e
101
+ npm run test:quick # unit and types
102
+ npm run test:slow # everything
103
+ ```
104
+
105
+ You can also run tests for specific workspaces, e.g.:
106
+
107
+ ```sh
108
+ export APPIUM_WORKSPACE=@appium/base-driver
109
+ npm run test:unit -w $APPIUM_WORKSPACE
110
+ ```
111
+
112
+ ### Documentation
113
+
114
+ The documentation for this project is [available in the project repository itself](https://github.com/appium/appium/tree/master/packages/appium/docs).
115
+ It is contained in Markdown files, which are built by our documentation system in the
116
+ `@appium/docutils` module. This module is based on [MkDocs](https://www.mkdocs.org/) and therefore
117
+ requires [Python](https://www.python.org/) to be installed on your system.
118
+
119
+ Install Python dependencies:
120
+
121
+ ```sh
122
+ npm run install-docs-deps
123
+ ```
124
+
125
+ After making your changes, you can run the documentation server in dev mode:
126
+
127
+ ```sh
128
+ npm run dev:docs
129
+ ```
130
+
131
+ You can then view the documentation at `http://127.0.0.1:8000/docs/en`.
132
+
133
+ ## Translating Appium Documentation
134
+
135
+ The process of Appium documents localization into languages other than English is automated and is done via
136
+ the [Crowdin Translations Management System](https://crowdin.com). Do not edit any translated documents
137
+ directly in the GitHub Appium repository as they are going to be replaced with ones exported from Crowdin
138
+ during an upcoming sync.
139
+
140
+ ### Where To Start
141
+
142
+ If you would like to contribute to the translation of Appium documents into your language then simply join
143
+ the translators group for the [Appium Documentation](https://crowdin.com/project/appium-documentation)
144
+ Crowdin project, and start translating documents there. If you see that your language is missing from
145
+ the list of available Crowdin languages then simply let us know by creating an
146
+ [issue](https://github.com/appium/appium/issues).
147
+
148
+ ### Source Language Updates
149
+
150
+ Changes in documents are synchronized to Crowdin automatically via the `Update Crowdin English Docs` GitHub action.
151
+ This action is triggered automatically as soon as there are any changes under `packages/appium/docs/en/**.md`
152
+ or `packages/appium/docs/mkdocs-en.yml`.
153
+
154
+ ### Fetching Translated Documents
155
+
156
+ In order to fetch translated files from Crowdin to the GitHub repository it is necessary to trigger
157
+ the `Sync Crowdin Docs Translations` action. This action should also automatically create a PR with
158
+ corresponding translated resources included.
@@ -0,0 +1,86 @@
1
+ ---
2
+ title: Building Documentation
3
+ ---
4
+
5
+ Once you've [built a driver](./build-drivers.md) or [built a plugin](./build-plugins.md) for Appium,
6
+ you will hopefully want to document how that extension works for your users. The most basic way of
7
+ doing this is to write up a quick `README.md` and keep it in the root of your project's repository.
8
+ However, this can involve a lot of effort.
9
+
10
+ The Appium project has built tools to help with this, and we've packaged up these tools so our
11
+ ecosystem developers building drivers and plugins can _also_ use them. The best way to get going
12
+ with these tools is probably to look at an existing Appium driver repo to see how it's done, for
13
+ example the [XCUITest driver repo](https://github.com/appium/appium-xcuitest-driver). But this guide
14
+ will outline the basic approach.
15
+
16
+ ### Conceptual architecture
17
+
18
+ Appium settled on [MkDocs](https://www.mkdocs.org/) as a Markdown-based documentation site
19
+ generator. It uses a Python toolchain (and not Node.js), but it turned out to be the best option
20
+ for our purposes. You can adjust this, but by default Appium's utilities also assume that you'll be
21
+ using the [mkdocs-material](https://squidfunk.github.io/mkdocs-material/) theme/extension for
22
+ MkDocs.
23
+
24
+ In order to make different versions of your docs available (one for each minor release of your
25
+ extension, typically), we also bundle [Mike](https://github.com/jimporter/mike).
26
+
27
+ From here, building a basic docs site is as easy as collecting your Markdown files together and
28
+ defining how you want them to be organized.
29
+
30
+ ### Prerequisites
31
+
32
+ To take advantage of Appium's documentation utilities, you'll need to install:
33
+
34
+ - [Python v3+](https://www.python.org/downloads/)
35
+ - [pip](https://pip.pypa.io/en/stable/installation/) (this may be installed automatically with Python)
36
+ - The `@appium/docutils` package:
37
+
38
+ ```bash
39
+ npm install --save-dev @appium/docutils
40
+ ```
41
+
42
+ ### Initializing an Extension for Building Docs
43
+
44
+ To prepare your extension for generating documentation, run the following command:
45
+
46
+ ```bash
47
+ npx appium-docs init
48
+ ```
49
+
50
+ This will:
51
+
52
+ 1. Create a `tsconfig.json` if one does not already exist. This is necessary even if your extension
53
+ is not written in TypeScript.
54
+ 2. Create a `mkdocs.yml` with the necessary configuration for MkDocs.
55
+
56
+ ### Documenting Your Extension
57
+
58
+ At this point, you can begin documenting your extension. By default, MkDocs will look for Markdown
59
+ files in the `docs` directory. You can therefore create your Markdown documentation files, place
60
+ them in `docs`, and add links to these files in `mkdocs.yml`.
61
+
62
+ Refer to the [MkDocs documentation](https://www.mkdocs.org/user-guide/writing-your-docs/) for
63
+ information on how to organize and structure your documentation.
64
+
65
+ ### Building the Docs
66
+
67
+ At this point, you can use the `appium-docs` CLI tool. Run this tool with no arguments to get the
68
+ full help output and see all the available subcommands and parameters. Here are a few usage
69
+ examples:
70
+
71
+ ```bash
72
+ # Generate reference and build the mkdocs site into the site dir
73
+ npx appium-docs build
74
+
75
+ # Same as build, but host the docs on a local dev server
76
+ # and watch for changes and rebuild when files change
77
+ npx appium-docs build --serve
78
+
79
+ # Build the docs and deploy them with mike versioning to the docs-site branch
80
+ # using the included commit message.
81
+ # This is particularly useful for pushing content to a GitHub pages branch!
82
+ npx appium-docs build \
83
+ --deploy \
84
+ -b docs-site \
85
+ -m 'docs: auto-build docs for appium-xcuitest-driver@%s'
86
+ ```
@@ -0,0 +1,141 @@
1
+ ---
2
+ title: Building Doctor Checks
3
+ ---
4
+
5
+ The idea of Appium Doctor is to assist users with driver or plugin preconditions setup. Sometimes such
6
+ preconditions might be quite complicated and require non-trivial technical knowledge. Doctor checks,
7
+ which are vanilla Node.js class instances written by extension authors, simplify
8
+ the setup process by automating diagnostics and possible fixes for the found issues. These checks
9
+ might also be interactive to ensure better usage experience.
10
+
11
+ This tutorial is supposed to be used by plugin or driver authors that would like to help their users
12
+ to deal with complicated setup or configuration steps.
13
+
14
+ ## Adding Doctor Checks
15
+
16
+ ### Typing Requirements
17
+
18
+ The term `Doctor Check` literally describes a single javascript class instance that implements the
19
+ [IDoctorCheck interface](https://github.com/appium/appium/blob/master/packages/types/lib/doctor.ts).
20
+ The interface defines the following methods and properties:
21
+
22
+ - `diagnose(): Promise<DoctorCheckResult>`: Contains the code to diagnose a possible issue
23
+ - `fix(): Promise<string|null>`: Either fixes the actual problem if `hasAutofix()` returns true or
24
+ returns a string description for possible manual fixes. If this method throws an exception named
25
+ `FixSkippedError` and `hasAutofix()` returns true then the result of the method invocation
26
+ is going to be ignored.
27
+ - `hasAutofix(): boolean`: Whether calling `fix()` would resolve the found issue
28
+ - `isOptional(): boolean`: Whether the found issue can be ignored and is not a showstopper
29
+ - `log: AppiumLogger`: May be used for logging. This property may be assigned
30
+ by the instance itself or by the Appium server if it is left unassigned.
31
+
32
+ The `DoctorCheckResult` object returned by the `diagnose()` method must contain the following properties:
33
+
34
+ - `ok: boolean`: Whether the diagnosis found no issues
35
+ - `optional: boolean`: Whether the diagnosed issue is safe to ignore
36
+ - `message: string`: The text message describing the diagnostic result
37
+
38
+ ### Manifest Requirements
39
+
40
+ A single extension may export multiple Doctor checks to Appium. In order for these checks to be properly
41
+ picked up by the server CLI after the corresponding extension is installed they might be listed in the
42
+ package .json manifest under the `appium.doctor.checks` section similar to the definition below:
43
+
44
+ ```json
45
+ // ...
46
+ "appium": {
47
+ "driverName": "fake",
48
+ "automationName": "Fake",
49
+ "platformNames": [
50
+ "Fake"
51
+ ],
52
+ "mainClass": "FakeDriver",
53
+ "schema": "./build/lib/fake-driver-schema.js",
54
+ "scripts": {
55
+ "fake-error": "./build/lib/scripts/fake-error.js",
56
+ "fake-success": "./build/lib/scripts/fake-success.js",
57
+ "fake-stdin": "./build/lib/scripts/fake-stdin.js"
58
+ },
59
+ "doctor": {
60
+ "checks": [
61
+ "./doctor/fake1.js",
62
+ "./doctor/fake2.js"
63
+ // ...
64
+ ]
65
+ }
66
+ },
67
+ // ...
68
+ ```
69
+
70
+ Also, it makes sense to include the [@appium/types](https://www.npmjs.com/package/@appium/types) import
71
+ to the package dev dependencies.
72
+
73
+ ### Implementation Example
74
+
75
+ The below example is a "raw" Node.JS implementation that does not use any transpilation:
76
+
77
+ ```js
78
+ const {fs, doctor} = require('@appium/support');
79
+
80
+ /** @satisfies {import('@appium/types').IDoctorCheck} */
81
+ class EnvVarAndPathCheck {
82
+ /**
83
+ * @param {string} varName
84
+ */
85
+ constructor(varName) {
86
+ this.varName = varName;
87
+ }
88
+
89
+ async diagnose() {
90
+ const varValue = process.env[this.varName];
91
+ if (typeof varValue === 'undefined') {
92
+ return doctor.nok(`${this.varName} environment variable is NOT set!`);
93
+ }
94
+
95
+ if (await fs.exists(varValue)) {
96
+ return doctor.ok(`${this.varName} is set to: ${varValue}`);
97
+ }
98
+
99
+ return doctor.nok(`${this.varName} is set to '${varValue}' but this is NOT a valid path!`);
100
+ }
101
+
102
+ async fix() {
103
+ return (
104
+ `Make sure the environment variable ${this.varName} is properly configured for the Appium server process`
105
+ );
106
+ }
107
+
108
+ hasAutofix() {
109
+ return false;
110
+ }
111
+
112
+ isOptional() {
113
+ return false;
114
+ }
115
+ }
116
+
117
+ const androidHomeCheck = new EnvVarAndPathCheck('ANDROID_HOME');
118
+
119
+ module.exports = {androidHomeCheck};
120
+
121
+ /**
122
+ * @typedef {import('@appium/types').DoctorCheckResult} CheckResult
123
+ */
124
+ ```
125
+
126
+ This file could be saved as `doctor/android-home-check.js` and then added to the package.json manifest
127
+ as
128
+
129
+ ```json
130
+ // ...
131
+ "appium": {
132
+ // ...
133
+ "doctor": {
134
+ "checks": [
135
+ "./doctor/android-home-check.js",
136
+ ]
137
+ }
138
+ // ...
139
+ },
140
+ // ...
141
+ ```