execbro 2.6.1 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/README.md +5 -2
  2. package/build/__tests__/helpers/mock-harness.d.ts +35 -0
  3. package/build/__tests__/helpers/mock-harness.d.ts.map +1 -0
  4. package/build/__tests__/helpers/mock-harness.js +83 -0
  5. package/build/__tests__/helpers/mock-harness.js.map +1 -0
  6. package/build/__tests__/unit/androidEmulatorAvds.test.js +2 -1
  7. package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -1
  8. package/build/__tests__/unit/buildToken.test.js +20 -3
  9. package/build/__tests__/unit/buildToken.test.js.map +1 -1
  10. package/build/__tests__/unit/commandInjection.test.d.ts +2 -0
  11. package/build/__tests__/unit/commandInjection.test.d.ts.map +1 -0
  12. package/build/__tests__/unit/commandInjection.test.js +55 -0
  13. package/build/__tests__/unit/commandInjection.test.js.map +1 -0
  14. package/build/__tests__/unit/errorCategorization.test.js +14 -0
  15. package/build/__tests__/unit/errorCategorization.test.js.map +1 -1
  16. package/build/__tests__/unit/fingerprint.test.js +2 -2
  17. package/build/__tests__/unit/fingerprint.test.js.map +1 -1
  18. package/build/__tests__/unit/inputTarget.test.js +46 -0
  19. package/build/__tests__/unit/inputTarget.test.js.map +1 -1
  20. package/build/__tests__/unit/logSourceAndroid.test.js +5 -5
  21. package/build/__tests__/unit/logSourceAndroid.test.js.map +1 -1
  22. package/build/__tests__/unit/logSourceIos.test.js +10 -6
  23. package/build/__tests__/unit/logSourceIos.test.js.map +1 -1
  24. package/build/__tests__/unit/logStack.test.d.ts +2 -0
  25. package/build/__tests__/unit/logStack.test.d.ts.map +1 -0
  26. package/build/__tests__/unit/logStack.test.js +86 -0
  27. package/build/__tests__/unit/logStack.test.js.map +1 -0
  28. package/build/__tests__/unit/logSymbolication.test.d.ts +2 -0
  29. package/build/__tests__/unit/logSymbolication.test.d.ts.map +1 -0
  30. package/build/__tests__/unit/logSymbolication.test.js +215 -0
  31. package/build/__tests__/unit/logSymbolication.test.js.map +1 -0
  32. package/build/__tests__/unit/mockRulePush.test.d.ts +2 -0
  33. package/build/__tests__/unit/mockRulePush.test.d.ts.map +1 -0
  34. package/build/__tests__/unit/mockRulePush.test.js +65 -0
  35. package/build/__tests__/unit/mockRulePush.test.js.map +1 -0
  36. package/build/__tests__/unit/mockRules.test.d.ts +2 -0
  37. package/build/__tests__/unit/mockRules.test.d.ts.map +1 -0
  38. package/build/__tests__/unit/mockRules.test.js +111 -0
  39. package/build/__tests__/unit/mockRules.test.js.map +1 -0
  40. package/build/__tests__/unit/nativeLogs.test.js +8 -2
  41. package/build/__tests__/unit/nativeLogs.test.js.map +1 -1
  42. package/build/__tests__/unit/netInfoPatch.test.d.ts +2 -0
  43. package/build/__tests__/unit/netInfoPatch.test.d.ts.map +1 -0
  44. package/build/__tests__/unit/netInfoPatch.test.js +46 -0
  45. package/build/__tests__/unit/netInfoPatch.test.js.map +1 -0
  46. package/build/__tests__/unit/networkInterceptorXhr.test.d.ts +2 -0
  47. package/build/__tests__/unit/networkInterceptorXhr.test.d.ts.map +1 -0
  48. package/build/__tests__/unit/networkInterceptorXhr.test.js +440 -0
  49. package/build/__tests__/unit/networkInterceptorXhr.test.js.map +1 -0
  50. package/build/__tests__/unit/networkMock.test.d.ts +2 -0
  51. package/build/__tests__/unit/networkMock.test.d.ts.map +1 -0
  52. package/build/__tests__/unit/networkMock.test.js +183 -0
  53. package/build/__tests__/unit/networkMock.test.js.map +1 -0
  54. package/build/__tests__/unit/networkMockRender.test.d.ts +2 -0
  55. package/build/__tests__/unit/networkMockRender.test.d.ts.map +1 -0
  56. package/build/__tests__/unit/networkMockRender.test.js +131 -0
  57. package/build/__tests__/unit/networkMockRender.test.js.map +1 -0
  58. package/build/__tests__/unit/networkMockTamper.test.d.ts +2 -0
  59. package/build/__tests__/unit/networkMockTamper.test.d.ts.map +1 -0
  60. package/build/__tests__/unit/networkMockTamper.test.js +162 -0
  61. package/build/__tests__/unit/networkMockTamper.test.js.map +1 -0
  62. package/build/__tests__/unit/networkMockTool.test.d.ts +2 -0
  63. package/build/__tests__/unit/networkMockTool.test.d.ts.map +1 -0
  64. package/build/__tests__/unit/networkMockTool.test.js +69 -0
  65. package/build/__tests__/unit/networkMockTool.test.js.map +1 -0
  66. package/build/__tests__/unit/networkReplay.test.d.ts +2 -0
  67. package/build/__tests__/unit/networkReplay.test.d.ts.map +1 -0
  68. package/build/__tests__/unit/networkReplay.test.js +86 -0
  69. package/build/__tests__/unit/networkReplay.test.js.map +1 -0
  70. package/build/__tests__/unit/serialQueue.test.d.ts +2 -0
  71. package/build/__tests__/unit/serialQueue.test.d.ts.map +1 -0
  72. package/build/__tests__/unit/serialQueue.test.js +77 -0
  73. package/build/__tests__/unit/serialQueue.test.js.map +1 -0
  74. package/build/__tests__/unit/symbolicate.test.js +36 -0
  75. package/build/__tests__/unit/symbolicate.test.js.map +1 -1
  76. package/build/__tests__/unit/tap.test.js +0 -48
  77. package/build/__tests__/unit/tap.test.js.map +1 -1
  78. package/build/__tests__/unit/textEntry.test.js +53 -0
  79. package/build/__tests__/unit/textEntry.test.js.map +1 -1
  80. package/build/__tests__/unit/toolArgInjection.test.d.ts +2 -0
  81. package/build/__tests__/unit/toolArgInjection.test.d.ts.map +1 -0
  82. package/build/__tests__/unit/toolArgInjection.test.js +86 -0
  83. package/build/__tests__/unit/toolArgInjection.test.js.map +1 -0
  84. package/build/core/android.d.ts.map +1 -1
  85. package/build/core/android.js +54 -111
  86. package/build/core/android.js.map +1 -1
  87. package/build/core/androidSystemBars.d.ts.map +1 -1
  88. package/build/core/androidSystemBars.js +3 -3
  89. package/build/core/androidSystemBars.js.map +1 -1
  90. package/build/core/appRequest.d.ts +1 -0
  91. package/build/core/appRequest.d.ts.map +1 -1
  92. package/build/core/appRequest.js +5 -2
  93. package/build/core/appRequest.js.map +1 -1
  94. package/build/core/buildInfo.d.ts +3 -0
  95. package/build/core/buildInfo.d.ts.map +1 -0
  96. package/build/core/buildInfo.js +6 -0
  97. package/build/core/buildInfo.js.map +1 -0
  98. package/build/core/componentSource.d.ts.map +1 -1
  99. package/build/core/componentSource.js +1 -1
  100. package/build/core/componentSource.js.map +1 -1
  101. package/build/core/connection.d.ts.map +1 -1
  102. package/build/core/connection.js +15 -5
  103. package/build/core/connection.js.map +1 -1
  104. package/build/core/exec.d.ts +5 -0
  105. package/build/core/exec.d.ts.map +1 -1
  106. package/build/core/exec.js +34 -1
  107. package/build/core/exec.js.map +1 -1
  108. package/build/core/fingerprint.d.ts.map +1 -1
  109. package/build/core/fingerprint.js +3 -3
  110. package/build/core/fingerprint.js.map +1 -1
  111. package/build/core/guides.d.ts.map +1 -1
  112. package/build/core/guides.js +21 -1
  113. package/build/core/guides.js.map +1 -1
  114. package/build/core/inputTarget.d.ts.map +1 -1
  115. package/build/core/inputTarget.js +42 -2
  116. package/build/core/inputTarget.js.map +1 -1
  117. package/build/core/ios.d.ts.map +1 -1
  118. package/build/core/ios.js +14 -17
  119. package/build/core/ios.js.map +1 -1
  120. package/build/core/jsLogEvents.d.ts.map +1 -1
  121. package/build/core/jsLogEvents.js +1 -0
  122. package/build/core/jsLogEvents.js.map +1 -1
  123. package/build/core/keyboardRaise.d.ts.map +1 -1
  124. package/build/core/keyboardRaise.js +3 -3
  125. package/build/core/keyboardRaise.js.map +1 -1
  126. package/build/core/logEventFormat.d.ts +2 -0
  127. package/build/core/logEventFormat.d.ts.map +1 -1
  128. package/build/core/logEventFormat.js +6 -1
  129. package/build/core/logEventFormat.js.map +1 -1
  130. package/build/core/logEvents.d.ts +2 -1
  131. package/build/core/logEvents.d.ts.map +1 -1
  132. package/build/core/logEvents.js.map +1 -1
  133. package/build/core/logSourceAndroid.d.ts +1 -1
  134. package/build/core/logSourceAndroid.d.ts.map +1 -1
  135. package/build/core/logSourceAndroid.js +9 -9
  136. package/build/core/logSourceAndroid.js.map +1 -1
  137. package/build/core/logSourceIos.d.ts +1 -1
  138. package/build/core/logSourceIos.d.ts.map +1 -1
  139. package/build/core/logSourceIos.js +9 -9
  140. package/build/core/logSourceIos.js.map +1 -1
  141. package/build/core/logStack.d.ts +6 -0
  142. package/build/core/logStack.d.ts.map +1 -0
  143. package/build/core/logStack.js +44 -0
  144. package/build/core/logStack.js.map +1 -0
  145. package/build/core/logSymbolication.d.ts +11 -0
  146. package/build/core/logSymbolication.d.ts.map +1 -0
  147. package/build/core/logSymbolication.js +91 -0
  148. package/build/core/logSymbolication.js.map +1 -0
  149. package/build/core/mockRules.d.ts +30 -0
  150. package/build/core/mockRules.d.ts.map +1 -0
  151. package/build/core/mockRules.js +200 -0
  152. package/build/core/mockRules.js.map +1 -0
  153. package/build/core/nativeInputValue.js +6 -6
  154. package/build/core/nativeInputValue.js.map +1 -1
  155. package/build/core/nativeLogs.js +2 -2
  156. package/build/core/nativeLogs.js.map +1 -1
  157. package/build/core/netInfoPatch.d.ts +5 -0
  158. package/build/core/netInfoPatch.d.ts.map +1 -0
  159. package/build/core/netInfoPatch.js +88 -0
  160. package/build/core/netInfoPatch.js.map +1 -0
  161. package/build/core/network.d.ts.map +1 -1
  162. package/build/core/network.js +9 -0
  163. package/build/core/network.js.map +1 -1
  164. package/build/core/networkInterceptor.d.ts +6 -0
  165. package/build/core/networkInterceptor.d.ts.map +1 -1
  166. package/build/core/networkInterceptor.js +660 -13
  167. package/build/core/networkInterceptor.js.map +1 -1
  168. package/build/core/replay.d.ts +14 -0
  169. package/build/core/replay.d.ts.map +1 -0
  170. package/build/core/replay.js +14 -0
  171. package/build/core/replay.js.map +1 -0
  172. package/build/core/serialQueue.d.ts +6 -0
  173. package/build/core/serialQueue.d.ts.map +1 -0
  174. package/build/core/serialQueue.js +18 -0
  175. package/build/core/serialQueue.js.map +1 -0
  176. package/build/core/symbolicate.d.ts +2 -2
  177. package/build/core/symbolicate.d.ts.map +1 -1
  178. package/build/core/symbolicate.js +2 -2
  179. package/build/core/symbolicate.js.map +1 -1
  180. package/build/core/telemetry.d.ts.map +1 -1
  181. package/build/core/telemetry.js +5 -3
  182. package/build/core/telemetry.js.map +1 -1
  183. package/build/core/textEntry.d.ts +2 -0
  184. package/build/core/textEntry.d.ts.map +1 -1
  185. package/build/core/textEntry.js +30 -3
  186. package/build/core/textEntry.js.map +1 -1
  187. package/build/core/types.d.ts +11 -0
  188. package/build/core/types.d.ts.map +1 -1
  189. package/build/index.d.ts.map +1 -1
  190. package/build/index.js +55 -9
  191. package/build/index.js.map +1 -1
  192. package/build/tools/deviceTools.d.ts.map +1 -1
  193. package/build/tools/deviceTools.js +4 -1
  194. package/build/tools/deviceTools.js.map +1 -1
  195. package/build/tools/interactionTools.d.ts.map +1 -1
  196. package/build/tools/interactionTools.js +6 -3
  197. package/build/tools/interactionTools.js.map +1 -1
  198. package/build/tools/logTools.d.ts.map +1 -1
  199. package/build/tools/logTools.js +16 -3
  200. package/build/tools/logTools.js.map +1 -1
  201. package/build/tools/networkTools.d.ts.map +1 -1
  202. package/build/tools/networkTools.js +196 -4
  203. package/build/tools/networkTools.js.map +1 -1
  204. package/build/tools/requestTools.d.ts.map +1 -1
  205. package/build/tools/requestTools.js +93 -26
  206. package/build/tools/requestTools.js.map +1 -1
  207. package/package.json +3 -3
  208. package/tools.json +36 -1
  209. package/build/__tests__/helpers/fake-cdp-server.d.ts +0 -53
  210. package/build/__tests__/helpers/fake-cdp-server.d.ts.map +0 -1
  211. package/build/__tests__/helpers/fake-cdp-server.js +0 -116
  212. package/build/__tests__/helpers/fake-cdp-server.js.map +0 -1
  213. package/build/__tests__/helpers/tap-test-helpers.d.ts +0 -13
  214. package/build/__tests__/helpers/tap-test-helpers.d.ts.map +0 -1
  215. package/build/__tests__/helpers/tap-test-helpers.js +0 -103
  216. package/build/__tests__/helpers/tap-test-helpers.js.map +0 -1
  217. package/build/__tests__/integration/auto-reconnect.test.d.ts +0 -2
  218. package/build/__tests__/integration/auto-reconnect.test.d.ts.map +0 -1
  219. package/build/__tests__/integration/auto-reconnect.test.js +0 -108
  220. package/build/__tests__/integration/auto-reconnect.test.js.map +0 -1
  221. package/build/__tests__/integration/connection-health.test.d.ts +0 -2
  222. package/build/__tests__/integration/connection-health.test.d.ts.map +0 -1
  223. package/build/__tests__/integration/connection-health.test.js +0 -155
  224. package/build/__tests__/integration/connection-health.test.js.map +0 -1
  225. package/build/__tests__/integration/execute-in-app.test.d.ts +0 -2
  226. package/build/__tests__/integration/execute-in-app.test.d.ts.map +0 -1
  227. package/build/__tests__/integration/execute-in-app.test.js +0 -114
  228. package/build/__tests__/integration/execute-in-app.test.js.map +0 -1
  229. package/build/__tests__/integration/native-logs.test.d.ts +0 -2
  230. package/build/__tests__/integration/native-logs.test.d.ts.map +0 -1
  231. package/build/__tests__/integration/native-logs.test.js +0 -34
  232. package/build/__tests__/integration/native-logs.test.js.map +0 -1
  233. package/build/__tests__/integration/per-call-timeout.test.d.ts +0 -2
  234. package/build/__tests__/integration/per-call-timeout.test.d.ts.map +0 -1
  235. package/build/__tests__/integration/per-call-timeout.test.js +0 -99
  236. package/build/__tests__/integration/per-call-timeout.test.js.map +0 -1
  237. package/build/__tests__/integration/socket-close-midflight.test.d.ts +0 -2
  238. package/build/__tests__/integration/socket-close-midflight.test.d.ts.map +0 -1
  239. package/build/__tests__/integration/socket-close-midflight.test.js +0 -96
  240. package/build/__tests__/integration/socket-close-midflight.test.js.map +0 -1
  241. package/build/__tests__/integration/stale-target-probe.test.d.ts +0 -2
  242. package/build/__tests__/integration/stale-target-probe.test.d.ts.map +0 -1
  243. package/build/__tests__/integration/stale-target-probe.test.js +0 -70
  244. package/build/__tests__/integration/stale-target-probe.test.js.map +0 -1
  245. package/build/__tests__/integration/tap-strategies.test.d.ts +0 -2
  246. package/build/__tests__/integration/tap-strategies.test.d.ts.map +0 -1
  247. package/build/__tests__/integration/tap-strategies.test.js +0 -296
  248. package/build/__tests__/integration/tap-strategies.test.js.map +0 -1
  249. package/build/__tests__/integration/text-input.test.d.ts +0 -2
  250. package/build/__tests__/integration/text-input.test.d.ts.map +0 -1
  251. package/build/__tests__/integration/text-input.test.js +0 -142
  252. package/build/__tests__/integration/text-input.test.js.map +0 -1
  253. package/build/__tests__/integration/tools.test.d.ts +0 -2
  254. package/build/__tests__/integration/tools.test.d.ts.map +0 -1
  255. package/build/__tests__/integration/tools.test.js +0 -221
  256. package/build/__tests__/integration/tools.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"textEntry.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/textEntry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"textEntry.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/textEntry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAsB,MAAM,yBAAyB,CAAC;AAGvF,MAAM,KAAK,GAAG,CAAC,OAAuD,EAAE,EAAe,EAAE,CAAC,CAAC;IACvF,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;IACrB,EAAE,EAAE,IAAI;IACR,GAAG,IAAI;CACV,CAAC,CAAC;AAEH,SAAS,IAAI,CAAC,OAAsB,EAAE,OAA+B,EAAE;IACnE,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC3B,OAAO;QACH,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;QACpD,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,GAAG,IAAI;KACV,CAAC;AACN,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAY,EAAE,CACxC,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,CAAC,CAAC;AAEzE,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QAIrD,MAAM,CAAC,GAAG,IAAI,CAAC;YACX,KAAK,EAAE;YACP,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,CAAC,GAAG,IAAI,CAAC;YACX,KAAK,EAAE;YACP,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,UAAU,GAAG;YACf,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;YACxG,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;SACxG,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAQH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,UAAU,GAAG;YACf,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;SACxG,CAAC;QACF,MAAM,CAAC,GAAG,IAAI,CAAC;YACX,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACzB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uDAAuD,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE;SAChH,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC9D,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,CAAC,GAAG,IAAI,CAAC;YACX,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACxB,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACvB,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAC1B,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7F,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,KAAK,UAAU,CAC/C,CAAC;QACF,MAAM,CAAE,OAAQ,CAAC,CAAC,CAAuB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,KAAK,UAAU,CAC/C,CAAC;QACF,MAAM,CAAE,OAAQ,CAAC,CAAC,CAAuB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,CAAC,GAAG,IAAI,CAAC;YACX,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;YAC5B,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,sCAAsC,EAAE,CAAC;YACjE,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;SAC/B,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,OAAO,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK;aAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,KAAK,UAAU,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAuB,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,CAAC,GAAG,IAAI,CAAC;YACX,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;YAC5B,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;YACzC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YACtE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;SAClG,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAEnC,MAAM,UAAU,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAG9F,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAG3E,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,GAAG,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QAGpF,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC7C,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAGhE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAK9E,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAMH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAG5D,MAAM,OAAO,GAAG,CAAC,MAAc,EAAiB,EAAE;QAC9C,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC,EAAE,EAAE;YACZ,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,KAAK,EAAE,CAAC;oBACR,KAAK,GAAG,KAAK,CAAC;oBACd,OAAO,KAAK,EAAE,CAAC;gBACnB,CAAC;gBACD,OAAO,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACpC,CAAC,CAAC;SACL,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,EAAE,CAAC,IAAI,CAAC;QACJ,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,MAAM,EAAE,OAAO,CAAC;QACjB,CAAC,OAAO,EAAE,QAAQ,CAAC;QACnB,CAAC,MAAM,EAAE,OAAO,CAAC;QACjB,CAAC,MAAM,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC,0BAA0B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAClD,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAMH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,aAAa,CAAC,2CAA2C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QAErE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACzD,MAAM,UAAU,GAAG,CAAC,MAA2E,EAAE,EAAE,CAAC,CAAC;QACjG,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;KACtD,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAI1F,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAC5F,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAC5F,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAG5D,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAC5F,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACnC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aACxE,CAAC,CAAC;SACN,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAI3D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAC7F,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;SACnG,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,GAAG,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAC5F,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;SACnG,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAI,CAAC,CAAC,KAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,CAAC,CAAa,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toolArgInjection.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolArgInjection.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/toolArgInjection.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ import { describe, it, expect, jest, beforeEach } from "@jest/globals";
2
+ const execFileAsyncMock = jest.fn();
3
+ jest.unstable_mockModule("../../core/exec.js", () => ({
4
+ execFileAsync: execFileAsyncMock,
5
+ quoteForDeviceShell: (value) => `'${value.replace(/'/g, `'"'"'`)}'`,
6
+ execAsync: jest.fn(),
7
+ withCancelableTimeout: jest.fn(),
8
+ }));
9
+ const { iosOpenUrl, iosLaunchApp, iosTerminateApp, iosBootSimulator } = await import("../../core/ios.js");
10
+ const { androidLaunchApp, androidInputText } = await import("../../core/android.js");
11
+ const MARKER = "/tmp/execbro-marker.txt";
12
+ const SUBSTITUTION = `$(touch ${MARKER})`;
13
+ const SEPARATOR = `; touch ${MARKER}`;
14
+ function allArgs() {
15
+ return execFileAsyncMock.mock.calls.flatMap((call) => call[1] ?? []);
16
+ }
17
+ const quoted = (value) => `'${value.replace(/'/g, `'"'"'`)}'`;
18
+ function flattened() {
19
+ return execFileAsyncMock.mock.calls
20
+ .map((call) => `${call[0]} ${(call[1] ?? []).join(" ")}`)
21
+ .join("\n");
22
+ }
23
+ describe("tool arguments never reach a host shell", () => {
24
+ beforeEach(() => {
25
+ execFileAsyncMock.mockReset();
26
+ execFileAsyncMock.mockImplementation(async (file, args) => {
27
+ const argv = (args ?? []).join(" ");
28
+ if (file === "adb" && argv.startsWith("devices")) {
29
+ return { stdout: "List of devices attached\nemulator-5554\tdevice\n", stderr: "" };
30
+ }
31
+ return { stdout: "", stderr: "" };
32
+ });
33
+ });
34
+ it("ios_open_url: a url with command substitution stays one argv element", async () => {
35
+ const url = `myapp://x${SUBSTITUTION}`;
36
+ await iosOpenUrl(url, "booted").catch(() => undefined);
37
+ expect(execFileAsyncMock).toHaveBeenCalled();
38
+ expect(allArgs()).toContain(url);
39
+ for (const [file] of execFileAsyncMock.mock.calls) {
40
+ expect(file).not.toMatch(/\s/);
41
+ expect(file).not.toBe("sh");
42
+ expect(file).not.toBe("/bin/sh");
43
+ }
44
+ });
45
+ it("ios_launch_app: a bundle id with a statement separator stays one argv element", async () => {
46
+ const bundleId = `com.example.app${SEPARATOR}`;
47
+ await iosLaunchApp(bundleId, "booted").catch(() => undefined);
48
+ expect(allArgs()).toContain(bundleId);
49
+ });
50
+ it("ios_terminate_app: a bundle id with a statement separator stays one argv element", async () => {
51
+ const bundleId = `com.example.app${SEPARATOR}`;
52
+ await iosTerminateApp(bundleId, "booted").catch(() => undefined);
53
+ expect(allArgs()).toContain(bundleId);
54
+ });
55
+ it("ios_boot_simulator: a udid with a statement separator stays one argv element", async () => {
56
+ const udid = `AAAA${SEPARATOR}`;
57
+ await iosBootSimulator(udid).catch(() => undefined);
58
+ expect(allArgs()).toContain(udid);
59
+ });
60
+ it("android_launch_app: a package name with a statement separator is not shell-parsed", async () => {
61
+ const pkg = `com.example.app${SEPARATOR}`;
62
+ await androidLaunchApp(pkg).catch(() => undefined);
63
+ const flat = flattened();
64
+ expect(flat).toContain("monkey");
65
+ expect(flat).toContain(quoted(pkg));
66
+ expect(flat).not.toContain(` ${pkg} `);
67
+ });
68
+ it("android_input_text: text with command substitution is not shell-parsed", async () => {
69
+ const text = `hello ${SUBSTITUTION}`;
70
+ await androidInputText(text).catch(() => undefined);
71
+ const flat = flattened();
72
+ expect(flat).toContain("input text");
73
+ expect(flat).toContain(quoted("$"));
74
+ expect(flat).not.toContain("$(");
75
+ expect(flat).not.toContain(text);
76
+ });
77
+ it("no tool builds argv[0] as a shell invocation", async () => {
78
+ await iosOpenUrl(`myapp://x${SUBSTITUTION}`, "booted").catch(() => undefined);
79
+ await androidLaunchApp(`com.example.app${SEPARATOR}`).catch(() => undefined);
80
+ await androidInputText(`hello ${SUBSTITUTION}`).catch(() => undefined);
81
+ for (const [file] of execFileAsyncMock.mock.calls) {
82
+ expect(["sh", "bash", "zsh", "/bin/sh", "/bin/bash"]).not.toContain(file);
83
+ }
84
+ });
85
+ });
86
+ //# sourceMappingURL=toolArgInjection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolArgInjection.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/toolArgInjection.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../src/core/android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../src/core/android.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import path from "path";
3
3
  import os from "os";
4
4
  import sharp from "sharp";
5
5
  import { notifyDriverMissing } from "./logbox.js";
6
- import { execAsync } from "./exec.js";
6
+ import { execFileAsync, quoteForDeviceShell } from "./exec.js";
7
7
  import { XMLParser } from "fast-xml-parser";
8
8
  const ADB_TIMEOUT = 30000;
9
9
  let adbAvailableCache = null;
@@ -35,7 +35,7 @@ export async function isAdbAvailable() {
35
35
  if (adbAvailableCache !== null)
36
36
  return adbAvailableCache;
37
37
  try {
38
- await execAsync("adb version", { timeout: 5000 });
38
+ await execFileAsync("adb", ["version"], { timeout: 5000 });
39
39
  adbAvailableCache = true;
40
40
  return true;
41
41
  }
@@ -50,7 +50,7 @@ export async function isAdbAvailable() {
50
50
  process.env.PATH = `${dir}${sep}${process.env.PATH ?? ""}`;
51
51
  adbPathFixApplied = true;
52
52
  try {
53
- await execAsync("adb version", { timeout: 5000 });
53
+ await execFileAsync("adb", ["version"], { timeout: 5000 });
54
54
  adbAvailableCache = true;
55
55
  return true;
56
56
  }
@@ -78,7 +78,7 @@ export async function listAndroidDevices() {
78
78
  const adbMissing = await requireAdb();
79
79
  if (adbMissing)
80
80
  return adbMissing;
81
- const { stdout } = await execAsync("adb devices -l", { timeout: ADB_TIMEOUT });
81
+ const { stdout } = await execFileAsync("adb", ["devices", "-l"], { timeout: ADB_TIMEOUT });
82
82
  const lines = stdout.trim().split("\n");
83
83
  const deviceLines = lines.slice(1).filter((line) => line.trim().length > 0);
84
84
  if (deviceLines.length === 0) {
@@ -130,7 +130,7 @@ export async function listAndroidDevices() {
130
130
  }
131
131
  export async function getDefaultAndroidDevice() {
132
132
  try {
133
- const { stdout } = await execAsync("adb devices", { timeout: ADB_TIMEOUT });
133
+ const { stdout } = await execFileAsync("adb", ["devices"], { timeout: ADB_TIMEOUT });
134
134
  const lines = stdout.trim().split("\n");
135
135
  const deviceLines = lines.slice(1).filter((line) => line.trim().length > 0);
136
136
  for (const line of deviceLines) {
@@ -147,7 +147,7 @@ export async function getDefaultAndroidDevice() {
147
147
  }
148
148
  async function findEmulatorBinary() {
149
149
  try {
150
- await execAsync("emulator -help", { timeout: 3000 });
150
+ await execFileAsync("emulator", ["-help"], { timeout: 3000 });
151
151
  return "emulator";
152
152
  }
153
153
  catch {
@@ -161,7 +161,7 @@ async function findEmulatorBinary() {
161
161
  candidates.push(path.join(os.homedir(), "Library", "Android", "sdk", "emulator", "emulator"));
162
162
  for (const candidate of candidates) {
163
163
  try {
164
- await execAsync(`"${candidate}" -help`, { timeout: 3000 });
164
+ await execFileAsync(candidate, ["-help"], { timeout: 3000 });
165
165
  return `"${candidate}"`;
166
166
  }
167
167
  catch {
@@ -177,7 +177,7 @@ export async function getAndroidEmulatorAvds() {
177
177
  if (!emulatorBin)
178
178
  return [];
179
179
  try {
180
- const { stdout } = await execAsync(`${emulatorBin} -list-avds`, { timeout: ADB_TIMEOUT });
180
+ const { stdout } = await execFileAsync(emulatorBin, ["-list-avds"], { timeout: ADB_TIMEOUT });
181
181
  return stdout
182
182
  .split("\n")
183
183
  .map((line) => line.trim())
@@ -192,7 +192,7 @@ export async function getAdbIdForAvd(avdName) {
192
192
  if (adbMissing)
193
193
  return null;
194
194
  try {
195
- const { stdout: devicesOut } = await execAsync("adb devices", { timeout: ADB_TIMEOUT });
195
+ const { stdout: devicesOut } = await execFileAsync("adb", ["devices"], { timeout: ADB_TIMEOUT });
196
196
  const lines = devicesOut.trim().split("\n").slice(1);
197
197
  const emulatorSerials = lines
198
198
  .map((line) => line.trim().split(/\s+/)[0])
@@ -200,7 +200,7 @@ export async function getAdbIdForAvd(avdName) {
200
200
  const target = avdName.trim();
201
201
  for (const serial of emulatorSerials) {
202
202
  try {
203
- const { stdout } = await execAsync(`adb -s ${serial} emu avd name`, {
203
+ const { stdout } = await execFileAsync("adb", ["-s", serial, "emu", "avd", "name"], {
204
204
  timeout: ADB_TIMEOUT
205
205
  });
206
206
  const reported = stdout.split("\n")[0]?.trim() ?? "";
@@ -216,8 +216,8 @@ export async function getAdbIdForAvd(avdName) {
216
216
  return null;
217
217
  }
218
218
  }
219
- function buildDeviceArg(deviceId) {
220
- return deviceId ? `-s ${deviceId}` : "";
219
+ function buildDeviceArgs(deviceId) {
220
+ return deviceId ? ["-s", deviceId] : [];
221
221
  }
222
222
  export async function androidScreenshot(outputPath, deviceId, signal) {
223
223
  try {
@@ -231,19 +231,19 @@ export async function androidScreenshot(outputPath, deviceId, signal) {
231
231
  error: "No Android device connected. Connect a device or start an emulator."
232
232
  };
233
233
  }
234
- const deviceArg = buildDeviceArg(device);
234
+ const deviceArgs = buildDeviceArgs(device);
235
235
  const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
236
236
  const finalOutputPath = outputPath || path.join(os.tmpdir(), `android-screenshot-${timestamp}.png`);
237
237
  const remotePath = "/sdcard/screenshot-temp.png";
238
- await execAsync(`adb ${deviceArg} shell screencap -p ${remotePath}`, {
238
+ await execFileAsync("adb", [...deviceArgs, "shell", `screencap -p ${remotePath}`], {
239
239
  timeout: ADB_TIMEOUT,
240
240
  signal
241
241
  });
242
- await execAsync(`adb ${deviceArg} pull ${remotePath} "${finalOutputPath}"`, {
242
+ await execFileAsync("adb", [...deviceArgs, "pull", remotePath, finalOutputPath], {
243
243
  timeout: ADB_TIMEOUT,
244
244
  signal
245
245
  });
246
- await execAsync(`adb ${deviceArg} shell rm ${remotePath}`, {
246
+ await execFileAsync("adb", [...deviceArgs, "shell", `rm ${remotePath}`], {
247
247
  timeout: ADB_TIMEOUT,
248
248
  signal
249
249
  }).catch(() => {
@@ -304,14 +304,13 @@ export async function androidInstallApp(apkPath, deviceId, options) {
304
304
  error: "No Android device connected. Connect a device or start an emulator."
305
305
  };
306
306
  }
307
- const deviceArg = buildDeviceArg(device);
307
+ const deviceArgs = buildDeviceArgs(device);
308
308
  const flags = [];
309
309
  if (options?.replace)
310
310
  flags.push("-r");
311
311
  if (options?.grantPermissions)
312
312
  flags.push("-g");
313
- const flagsStr = flags.length > 0 ? flags.join(" ") + " " : "";
314
- const { stdout, stderr } = await execAsync(`adb ${deviceArg} install ${flagsStr}"${apkPath}"`, { timeout: 120000 });
313
+ const { stdout, stderr } = await execFileAsync("adb", [...deviceArgs, "install", ...flags, apkPath], { timeout: 120000 });
315
314
  const output = stdout + stderr;
316
315
  if (output.includes("Success")) {
317
316
  return {
@@ -345,15 +344,11 @@ export async function androidLaunchApp(packageName, activityName, deviceId) {
345
344
  error: "No Android device connected. Connect a device or start an emulator."
346
345
  };
347
346
  }
348
- const deviceArg = buildDeviceArg(device);
349
- let command;
350
- if (activityName) {
351
- command = `adb ${deviceArg} shell am start -n ${packageName}/${activityName}`;
352
- }
353
- else {
354
- command = `adb ${deviceArg} shell monkey -p ${packageName} -c android.intent.category.LAUNCHER 1`;
355
- }
356
- const { stdout, stderr } = await execAsync(command, { timeout: ADB_TIMEOUT });
347
+ const deviceArgs = buildDeviceArgs(device);
348
+ const deviceCommand = activityName
349
+ ? `am start -n ${quoteForDeviceShell(`${packageName}/${activityName}`)}`
350
+ : `monkey -p ${quoteForDeviceShell(packageName)} -c android.intent.category.LAUNCHER 1`;
351
+ const { stdout, stderr } = await execFileAsync("adb", [...deviceArgs, "shell", deviceCommand], { timeout: ADB_TIMEOUT });
357
352
  const output = stdout + stderr;
358
353
  if (output.includes("Error") || output.includes("Exception")) {
359
354
  return {
@@ -385,8 +380,8 @@ export async function androidListPackages(deviceId, filter) {
385
380
  error: "No Android device connected. Connect a device or start an emulator."
386
381
  };
387
382
  }
388
- const deviceArg = buildDeviceArg(device);
389
- const { stdout } = await execAsync(`adb ${deviceArg} shell pm list packages`, {
383
+ const deviceArgs = buildDeviceArgs(device);
384
+ const { stdout } = await execFileAsync("adb", [...deviceArgs, "shell", "pm list packages"], {
390
385
  timeout: ADB_TIMEOUT
391
386
  });
392
387
  let packages = stdout
@@ -452,8 +447,8 @@ export async function androidTap(x, y, deviceId) {
452
447
  error: "No Android device connected. Connect a device or start an emulator."
453
448
  };
454
449
  }
455
- const deviceArg = buildDeviceArg(device);
456
- await execAsync(`adb ${deviceArg} shell input tap ${Math.round(x)} ${Math.round(y)}`, {
450
+ const deviceArgs = buildDeviceArgs(device);
451
+ await execFileAsync("adb", [...deviceArgs, "shell", `input tap ${Math.round(x)} ${Math.round(y)}`], {
457
452
  timeout: ADB_TIMEOUT
458
453
  });
459
454
  return {
@@ -480,10 +475,10 @@ export async function androidLongPress(x, y, durationMs = 1000, deviceId) {
480
475
  error: "No Android device connected. Connect a device or start an emulator."
481
476
  };
482
477
  }
483
- const deviceArg = buildDeviceArg(device);
478
+ const deviceArgs = buildDeviceArgs(device);
484
479
  const xRounded = Math.round(x);
485
480
  const yRounded = Math.round(y);
486
- await execAsync(`adb ${deviceArg} shell input swipe ${xRounded} ${yRounded} ${xRounded} ${yRounded} ${durationMs}`, { timeout: ADB_TIMEOUT + durationMs });
481
+ await execFileAsync("adb", [...deviceArgs, "shell", `input swipe ${xRounded} ${yRounded} ${xRounded} ${yRounded} ${durationMs}`], { timeout: ADB_TIMEOUT + durationMs });
487
482
  return {
488
483
  success: true,
489
484
  result: `Long pressed at (${xRounded}, ${yRounded}) for ${durationMs}ms`
@@ -508,12 +503,12 @@ export async function androidSwipe(startX, startY, endX, endY, durationMs = 300,
508
503
  error: "No Android device connected. Connect a device or start an emulator."
509
504
  };
510
505
  }
511
- const deviceArg = buildDeviceArg(device);
506
+ const deviceArgs = buildDeviceArgs(device);
512
507
  const x1 = Math.round(startX);
513
508
  const y1 = Math.round(startY);
514
509
  const x2 = Math.round(endX);
515
510
  const y2 = Math.round(endY);
516
- await execAsync(`adb ${deviceArg} shell input swipe ${x1} ${y1} ${x2} ${y2} ${durationMs}`, { timeout: ADB_TIMEOUT + durationMs });
511
+ await execFileAsync("adb", [...deviceArgs, "shell", `input swipe ${x1} ${y1} ${x2} ${y2} ${durationMs}`], { timeout: ADB_TIMEOUT + durationMs });
517
512
  return {
518
513
  success: true,
519
514
  result: `Swiped from (${x1}, ${y1}) to (${x2}, ${y2}) in ${durationMs}ms`
@@ -538,74 +533,22 @@ export async function androidInputText(text, deviceId) {
538
533
  error: "No Android device connected. Connect a device or start an emulator."
539
534
  };
540
535
  }
541
- const deviceArg = buildDeviceArg(device);
536
+ const deviceArgs = buildDeviceArgs(device);
542
537
  const hasComplexChars = /[/:?=&#@%+]/.test(text);
543
538
  if (hasComplexChars) {
544
539
  for (const char of text) {
545
- let keyCmd;
546
- switch (char) {
547
- case " ":
548
- keyCmd = `adb ${deviceArg} shell input text "%s"`;
549
- break;
550
- case "'":
551
- keyCmd = `adb ${deviceArg} shell input text "\\'"`;
552
- break;
553
- case '"':
554
- keyCmd = `adb ${deviceArg} shell input text '\\"'`;
555
- break;
556
- case "\\":
557
- keyCmd = `adb ${deviceArg} shell input text "\\\\"`;
558
- break;
559
- case "&":
560
- keyCmd = `adb ${deviceArg} shell input text "\\&"`;
561
- break;
562
- case "|":
563
- keyCmd = `adb ${deviceArg} shell input text "\\|"`;
564
- break;
565
- case ";":
566
- keyCmd = `adb ${deviceArg} shell input text "\\;"`;
567
- break;
568
- case "<":
569
- keyCmd = `adb ${deviceArg} shell input text "\\<"`;
570
- break;
571
- case ">":
572
- keyCmd = `adb ${deviceArg} shell input text "\\>"`;
573
- break;
574
- case "(":
575
- keyCmd = `adb ${deviceArg} shell input text "\\("`;
576
- break;
577
- case ")":
578
- keyCmd = `adb ${deviceArg} shell input text "\\)"`;
579
- break;
580
- case "$":
581
- keyCmd = `adb ${deviceArg} shell input text "\\$"`;
582
- break;
583
- case "`":
584
- keyCmd = `adb ${deviceArg} shell input text "\\\`"`;
585
- break;
586
- case "#":
587
- keyCmd = `adb ${deviceArg} shell input text "\\#"`;
588
- break;
589
- default:
590
- keyCmd = `adb ${deviceArg} shell input text '${char}'`;
591
- }
592
- await execAsync(keyCmd, { timeout: 5000 });
540
+ const deviceCommand = char === " " ? "input text %s" : `input text ${quoteForDeviceShell(char)}`;
541
+ await execFileAsync("adb", [...deviceArgs, "shell", deviceCommand], {
542
+ timeout: 5000
543
+ });
593
544
  }
594
545
  return {
595
546
  success: true,
596
547
  result: `Typed: "${text}"`
597
548
  };
598
549
  }
599
- const escapedText = text
600
- .replace(/\\/g, "\\\\")
601
- .replace(/"/g, '\\"')
602
- .replace(/'/g, "\\'")
603
- .replace(/`/g, "\\`")
604
- .replace(/\$/g, "\\$")
605
- .replace(/ /g, "%s");
606
- await execAsync(`adb ${deviceArg} shell input text "${escapedText}"`, {
607
- timeout: ADB_TIMEOUT
608
- });
550
+ const forInput = text.replace(/ /g, "%s");
551
+ await execFileAsync("adb", [...deviceArgs, "shell", `input text ${quoteForDeviceShell(forInput)}`], { timeout: ADB_TIMEOUT });
609
552
  return {
610
553
  success: true,
611
554
  result: `Typed: "${text}"`
@@ -630,7 +573,7 @@ export async function androidKeyEvent(keyCode, deviceId) {
630
573
  error: "No Android device connected. Connect a device or start an emulator."
631
574
  };
632
575
  }
633
- const deviceArg = buildDeviceArg(device);
576
+ const deviceArgs = buildDeviceArgs(device);
634
577
  const resolvedKeyCode = typeof keyCode === "string" ? ANDROID_KEY_EVENTS[keyCode] : keyCode;
635
578
  if (resolvedKeyCode === undefined) {
636
579
  return {
@@ -638,7 +581,7 @@ export async function androidKeyEvent(keyCode, deviceId) {
638
581
  error: `Invalid key code: ${keyCode}`
639
582
  };
640
583
  }
641
- await execAsync(`adb ${deviceArg} shell input keyevent ${resolvedKeyCode}`, {
584
+ await execFileAsync("adb", [...deviceArgs, "shell", `input keyevent ${resolvedKeyCode}`], {
642
585
  timeout: ADB_TIMEOUT
643
586
  });
644
587
  const keyName = typeof keyCode === "string"
@@ -757,17 +700,17 @@ export async function androidGetUITree(deviceId, signal) {
757
700
  error: "No Android device connected. Connect a device or start an emulator."
758
701
  };
759
702
  }
760
- const deviceArg = buildDeviceArg(device);
703
+ const deviceArgs = buildDeviceArgs(device);
761
704
  const remotePath = "/sdcard/ui_dump.xml";
762
- await execAsync(`adb ${deviceArg} shell uiautomator dump ${remotePath}`, {
705
+ await execFileAsync("adb", [...deviceArgs, "shell", `uiautomator dump ${remotePath}`], {
763
706
  timeout: ADB_TIMEOUT,
764
707
  signal
765
708
  });
766
- const { stdout } = await execAsync(`adb ${deviceArg} shell cat ${remotePath}`, {
709
+ const { stdout } = await execFileAsync("adb", [...deviceArgs, "shell", `cat ${remotePath}`], {
767
710
  timeout: ADB_TIMEOUT,
768
711
  signal
769
712
  });
770
- await execAsync(`adb ${deviceArg} shell rm ${remotePath}`, {
713
+ await execFileAsync("adb", [...deviceArgs, "shell", `rm ${remotePath}`], {
771
714
  timeout: ADB_TIMEOUT,
772
715
  signal
773
716
  }).catch(() => { });
@@ -895,8 +838,8 @@ export async function androidGetScreenSize(deviceId) {
895
838
  error: "No Android device connected. Connect a device or start an emulator."
896
839
  };
897
840
  }
898
- const deviceArg = buildDeviceArg(device);
899
- const { stdout } = await execAsync(`adb ${deviceArg} shell wm size`, {
841
+ const deviceArgs = buildDeviceArgs(device);
842
+ const { stdout } = await execFileAsync("adb", [...deviceArgs, "shell", "wm size"], {
900
843
  timeout: ADB_TIMEOUT
901
844
  });
902
845
  const match = stdout.match(/(\d+)x(\d+)/);
@@ -931,8 +874,8 @@ export async function androidGetDensity(deviceId) {
931
874
  error: "No Android device connected. Connect a device or start an emulator."
932
875
  };
933
876
  }
934
- const deviceArg = buildDeviceArg(device);
935
- const { stdout } = await execAsync(`adb ${deviceArg} shell wm density`, {
877
+ const deviceArgs = buildDeviceArgs(device);
878
+ const { stdout } = await execFileAsync("adb", [...deviceArgs, "shell", "wm density"], {
936
879
  timeout: ADB_TIMEOUT
937
880
  });
938
881
  const match = stdout.match(/density:\s*(\d+)/i);
@@ -966,9 +909,9 @@ export async function androidGetStatusBarHeight(deviceId) {
966
909
  }
967
910
  const density = densityResult.density;
968
911
  const densityScale = density / 160;
969
- const deviceArg = buildDeviceArg(deviceId);
912
+ const deviceArgs = buildDeviceArgs(deviceId);
970
913
  try {
971
- const { stdout } = await execAsync(`adb ${deviceArg} shell "dumpsys window | grep -E 'statusBars|mStatusBarLayer|InsetsSource.*statusBars'"`, { timeout: ADB_TIMEOUT });
914
+ const { stdout } = await execFileAsync("adb", [...deviceArgs, "shell", "dumpsys window | grep -E 'statusBars|mStatusBarLayer|InsetsSource.*statusBars'"], { timeout: ADB_TIMEOUT });
972
915
  const frameMatch = stdout.match(/statusBars.*frame=\[[\d,]+\]\[(\d+),(\d+)\]/);
973
916
  if (frameMatch) {
974
917
  const heightPixels = parseInt(frameMatch[2], 10);
@@ -1131,17 +1074,17 @@ export async function androidDescribeAll(deviceId) {
1131
1074
  error: "No Android device connected. Connect a device or start an emulator."
1132
1075
  };
1133
1076
  }
1134
- const deviceArg = buildDeviceArg(device);
1077
+ const deviceArgs = buildDeviceArgs(device);
1135
1078
  const remotePath = "/sdcard/ui_dump.xml";
1136
- await execAsync(`adb ${deviceArg} shell uiautomator dump ${remotePath}`, {
1079
+ await execFileAsync("adb", [...deviceArgs, "shell", `uiautomator dump ${remotePath}`], {
1137
1080
  timeout: ADB_TIMEOUT
1138
1081
  });
1139
- const { stdout } = await execAsync(`adb ${deviceArg} shell cat ${remotePath}`, {
1082
+ const { stdout } = await execFileAsync("adb", [...deviceArgs, "shell", `cat ${remotePath}`], {
1140
1083
  timeout: ADB_TIMEOUT,
1141
1084
  maxBuffer: 10 * 1024 * 1024
1142
1085
  });
1143
1086
  const xmlContent = stdout.trim();
1144
- await execAsync(`adb ${deviceArg} shell rm ${remotePath}`, {
1087
+ await execFileAsync("adb", [...deviceArgs, "shell", `rm ${remotePath}`], {
1145
1088
  timeout: 5000
1146
1089
  }).catch(() => { });
1147
1090
  if (!xmlContent || !xmlContent.includes("<hierarchy")) {