execbro 2.3.0 → 2.6.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 (596) hide show
  1. package/README.md +2 -0
  2. package/build/__tests__/helpers/fake-cdp-server.d.ts +0 -12
  3. package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -1
  4. package/build/__tests__/helpers/fake-cdp-server.js +0 -22
  5. package/build/__tests__/helpers/fake-cdp-server.js.map +1 -1
  6. package/build/__tests__/helpers/tap-test-helpers.d.ts +0 -23
  7. package/build/__tests__/helpers/tap-test-helpers.d.ts.map +1 -1
  8. package/build/__tests__/helpers/tap-test-helpers.js +2 -29
  9. package/build/__tests__/helpers/tap-test-helpers.js.map +1 -1
  10. package/build/__tests__/integration/auto-reconnect.test.js +4 -14
  11. package/build/__tests__/integration/auto-reconnect.test.js.map +1 -1
  12. package/build/__tests__/integration/connection-health.test.js +1 -10
  13. package/build/__tests__/integration/connection-health.test.js.map +1 -1
  14. package/build/__tests__/integration/execute-in-app.test.js +1 -11
  15. package/build/__tests__/integration/execute-in-app.test.js.map +1 -1
  16. package/build/__tests__/integration/native-logs.test.js +0 -5
  17. package/build/__tests__/integration/native-logs.test.js.map +1 -1
  18. package/build/__tests__/integration/per-call-timeout.test.js +1 -5
  19. package/build/__tests__/integration/per-call-timeout.test.js.map +1 -1
  20. package/build/__tests__/integration/socket-close-midflight.test.js +2 -12
  21. package/build/__tests__/integration/socket-close-midflight.test.js.map +1 -1
  22. package/build/__tests__/integration/stale-target-probe.test.js +2 -17
  23. package/build/__tests__/integration/stale-target-probe.test.js.map +1 -1
  24. package/build/__tests__/integration/tap-strategies.test.js +2 -36
  25. package/build/__tests__/integration/tap-strategies.test.js.map +1 -1
  26. package/build/__tests__/integration/text-input.test.js +0 -39
  27. package/build/__tests__/integration/text-input.test.js.map +1 -1
  28. package/build/__tests__/integration/tools.test.js +1 -7
  29. package/build/__tests__/integration/tools.test.js.map +1 -1
  30. package/build/__tests__/setup.js +0 -2
  31. package/build/__tests__/setup.js.map +1 -1
  32. package/build/__tests__/unit/androidEmulatorAvds.test.js +0 -10
  33. package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -1
  34. package/build/__tests__/unit/androidPinch.test.d.ts +2 -0
  35. package/build/__tests__/unit/androidPinch.test.d.ts.map +1 -0
  36. package/build/__tests__/unit/androidPinch.test.js +119 -0
  37. package/build/__tests__/unit/androidPinch.test.js.map +1 -0
  38. package/build/__tests__/unit/appContext.test.js +0 -2
  39. package/build/__tests__/unit/appContext.test.js.map +1 -1
  40. package/build/__tests__/unit/appRequest.test.js +0 -3
  41. package/build/__tests__/unit/appRequest.test.js.map +1 -1
  42. package/build/__tests__/unit/buildToken.test.js +0 -6
  43. package/build/__tests__/unit/buildToken.test.js.map +1 -1
  44. package/build/__tests__/unit/burst.test.js +0 -1
  45. package/build/__tests__/unit/burst.test.js.map +1 -1
  46. package/build/__tests__/unit/clearLogsNative.test.js +0 -8
  47. package/build/__tests__/unit/clearLogsNative.test.js.map +1 -1
  48. package/build/__tests__/unit/componentFormatNaming.test.js +0 -13
  49. package/build/__tests__/unit/componentFormatNaming.test.js.map +1 -1
  50. package/build/__tests__/unit/componentSource.test.js +0 -4
  51. package/build/__tests__/unit/componentSource.test.js.map +1 -1
  52. package/build/__tests__/unit/componentSourceResolve.test.js +0 -1
  53. package/build/__tests__/unit/componentSourceResolve.test.js.map +1 -1
  54. package/build/__tests__/unit/contextWiring.test.js +0 -3
  55. package/build/__tests__/unit/contextWiring.test.js.map +1 -1
  56. package/build/__tests__/unit/coordinateMiss.test.js +0 -16
  57. package/build/__tests__/unit/coordinateMiss.test.js.map +1 -1
  58. package/build/__tests__/unit/deviceDiscovery.test.js +0 -4
  59. package/build/__tests__/unit/deviceDiscovery.test.js.map +1 -1
  60. package/build/__tests__/unit/deviceResolution.test.js +0 -2
  61. package/build/__tests__/unit/deviceResolution.test.js.map +1 -1
  62. package/build/__tests__/unit/deviceResolver.test.js +0 -1
  63. package/build/__tests__/unit/deviceResolver.test.js.map +1 -1
  64. package/build/__tests__/unit/deviceResolverStaleRetry.test.js +0 -8
  65. package/build/__tests__/unit/deviceResolverStaleRetry.test.js.map +1 -1
  66. package/build/__tests__/unit/emulatorBridge.test.d.ts +2 -0
  67. package/build/__tests__/unit/emulatorBridge.test.d.ts.map +1 -0
  68. package/build/__tests__/unit/emulatorBridge.test.js +76 -0
  69. package/build/__tests__/unit/emulatorBridge.test.js.map +1 -0
  70. package/build/__tests__/unit/emulatorGrpc.test.d.ts +2 -0
  71. package/build/__tests__/unit/emulatorGrpc.test.d.ts.map +1 -0
  72. package/build/__tests__/unit/emulatorGrpc.test.js +33 -0
  73. package/build/__tests__/unit/emulatorGrpc.test.js.map +1 -0
  74. package/build/__tests__/unit/epochRender.test.js +0 -3
  75. package/build/__tests__/unit/epochRender.test.js.map +1 -1
  76. package/build/__tests__/unit/errorCategorization.test.js +0 -18
  77. package/build/__tests__/unit/errorCategorization.test.js.map +1 -1
  78. package/build/__tests__/unit/exec.test.js +0 -1
  79. package/build/__tests__/unit/exec.test.js.map +1 -1
  80. package/build/__tests__/unit/executor.test.js +0 -15
  81. package/build/__tests__/unit/executor.test.js.map +1 -1
  82. package/build/__tests__/unit/findElementTreeReuse.test.js +0 -12
  83. package/build/__tests__/unit/findElementTreeReuse.test.js.map +1 -1
  84. package/build/__tests__/unit/fingerprint.test.js +0 -4
  85. package/build/__tests__/unit/fingerprint.test.js.map +1 -1
  86. package/build/__tests__/unit/focusedInputTools.test.js +0 -4
  87. package/build/__tests__/unit/focusedInputTools.test.js.map +1 -1
  88. package/build/__tests__/unit/getLogsEmptyContract.test.js +0 -30
  89. package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -1
  90. package/build/__tests__/unit/getLogsNativeSource.test.js +0 -22
  91. package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -1
  92. package/build/__tests__/unit/graphqlOperation.test.d.ts +2 -0
  93. package/build/__tests__/unit/graphqlOperation.test.d.ts.map +1 -0
  94. package/build/__tests__/unit/graphqlOperation.test.js +107 -0
  95. package/build/__tests__/unit/graphqlOperation.test.js.map +1 -0
  96. package/build/__tests__/unit/inputTarget.test.js +0 -16
  97. package/build/__tests__/unit/inputTarget.test.js.map +1 -1
  98. package/build/__tests__/unit/inputTextTool.test.js +0 -3
  99. package/build/__tests__/unit/inputTextTool.test.js.map +1 -1
  100. package/build/__tests__/unit/jsLogEvents.test.js +0 -3
  101. package/build/__tests__/unit/jsLogEvents.test.js.map +1 -1
  102. package/build/__tests__/unit/keyboardMetrics.test.js +0 -2
  103. package/build/__tests__/unit/keyboardMetrics.test.js.map +1 -1
  104. package/build/__tests__/unit/keyboardRaise.test.js +0 -2
  105. package/build/__tests__/unit/keyboardRaise.test.js.map +1 -1
  106. package/build/__tests__/unit/licenseGrace.test.js +1 -4
  107. package/build/__tests__/unit/licenseGrace.test.js.map +1 -1
  108. package/build/__tests__/unit/logEventFormat.test.js +0 -27
  109. package/build/__tests__/unit/logEventFormat.test.js.map +1 -1
  110. package/build/__tests__/unit/logEvents.test.js +1 -5
  111. package/build/__tests__/unit/logEvents.test.js.map +1 -1
  112. package/build/__tests__/unit/logGrouping.test.js +0 -2
  113. package/build/__tests__/unit/logGrouping.test.js.map +1 -1
  114. package/build/__tests__/unit/logOwnership.test.js +0 -11
  115. package/build/__tests__/unit/logOwnership.test.js.map +1 -1
  116. package/build/__tests__/unit/logRelevance.test.js +0 -6
  117. package/build/__tests__/unit/logRelevance.test.js.map +1 -1
  118. package/build/__tests__/unit/logSourceAndroid.test.js +0 -4
  119. package/build/__tests__/unit/logSourceAndroid.test.js.map +1 -1
  120. package/build/__tests__/unit/logSourceIos.test.js +0 -5
  121. package/build/__tests__/unit/logSourceIos.test.js.map +1 -1
  122. package/build/__tests__/unit/logs.test.js +0 -1
  123. package/build/__tests__/unit/logs.test.js.map +1 -1
  124. package/build/__tests__/unit/measureComponentTools.test.js +0 -1
  125. package/build/__tests__/unit/measureComponentTools.test.js.map +1 -1
  126. package/build/__tests__/unit/metro.test.js +0 -2
  127. package/build/__tests__/unit/metro.test.js.map +1 -1
  128. package/build/__tests__/unit/nativeInputValue.test.js +0 -4
  129. package/build/__tests__/unit/nativeInputValue.test.js.map +1 -1
  130. package/build/__tests__/unit/nativeLogs.test.js +1 -23
  131. package/build/__tests__/unit/nativeLogs.test.js.map +1 -1
  132. package/build/__tests__/unit/navigateVerify.test.js +0 -6
  133. package/build/__tests__/unit/navigateVerify.test.js.map +1 -1
  134. package/build/__tests__/unit/navigation.test.js +0 -5
  135. package/build/__tests__/unit/navigation.test.js.map +1 -1
  136. package/build/__tests__/unit/networkInterceptor.test.js +0 -2
  137. package/build/__tests__/unit/networkInterceptor.test.js.map +1 -1
  138. package/build/__tests__/unit/overlayGuard.test.d.ts +2 -0
  139. package/build/__tests__/unit/overlayGuard.test.d.ts.map +1 -0
  140. package/build/__tests__/unit/overlayGuard.test.js +123 -0
  141. package/build/__tests__/unit/overlayGuard.test.js.map +1 -0
  142. package/build/__tests__/unit/pendingExecutions.test.js +0 -6
  143. package/build/__tests__/unit/pendingExecutions.test.js.map +1 -1
  144. package/build/__tests__/unit/pinchGeometry.test.d.ts +2 -0
  145. package/build/__tests__/unit/pinchGeometry.test.d.ts.map +1 -0
  146. package/build/__tests__/unit/pinchGeometry.test.js +139 -0
  147. package/build/__tests__/unit/pinchGeometry.test.js.map +1 -0
  148. package/build/__tests__/unit/pinchTool.test.d.ts +2 -0
  149. package/build/__tests__/unit/pinchTool.test.d.ts.map +1 -0
  150. package/build/__tests__/unit/pinchTool.test.js +39 -0
  151. package/build/__tests__/unit/pinchTool.test.js.map +1 -0
  152. package/build/__tests__/unit/probe.test.js +0 -1
  153. package/build/__tests__/unit/probe.test.js.map +1 -1
  154. package/build/__tests__/unit/projectMemory.test.js +6 -7
  155. package/build/__tests__/unit/projectMemory.test.js.map +1 -1
  156. package/build/__tests__/unit/projectStore.test.js +2 -2
  157. package/build/__tests__/unit/projectStore.test.js.map +1 -1
  158. package/build/__tests__/unit/reloadAppAutoConnect.test.js +0 -9
  159. package/build/__tests__/unit/reloadAppAutoConnect.test.js.map +1 -1
  160. package/build/__tests__/unit/rnGlobalsBootstrap.test.js +3 -3
  161. package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -1
  162. package/build/__tests__/unit/routeHistory.test.d.ts +2 -0
  163. package/build/__tests__/unit/routeHistory.test.d.ts.map +1 -0
  164. package/build/__tests__/unit/routeHistory.test.js +136 -0
  165. package/build/__tests__/unit/routeHistory.test.js.map +1 -0
  166. package/build/__tests__/unit/screenSpace.test.js +30 -13
  167. package/build/__tests__/unit/screenSpace.test.js.map +1 -1
  168. package/build/__tests__/unit/screenState.test.js +3 -6
  169. package/build/__tests__/unit/screenState.test.js.map +1 -1
  170. package/build/__tests__/unit/screenStateInputValue.test.js +0 -7
  171. package/build/__tests__/unit/screenStateInputValue.test.js.map +1 -1
  172. package/build/__tests__/unit/screenStateKeyboard.test.js +0 -1
  173. package/build/__tests__/unit/screenStateKeyboard.test.js.map +1 -1
  174. package/build/__tests__/unit/screenshot-diff.test.js +0 -6
  175. package/build/__tests__/unit/screenshot-diff.test.js.map +1 -1
  176. package/build/__tests__/unit/sdkMirrorPoller.test.js +0 -8
  177. package/build/__tests__/unit/sdkMirrorPoller.test.js.map +1 -1
  178. package/build/__tests__/unit/settleAndDiff.test.js +0 -11
  179. package/build/__tests__/unit/settleAndDiff.test.js.map +1 -1
  180. package/build/__tests__/unit/signedVerdict.test.js +0 -5
  181. package/build/__tests__/unit/signedVerdict.test.js.map +1 -1
  182. package/build/__tests__/unit/swipeDirection.test.js +6 -9
  183. package/build/__tests__/unit/swipeDirection.test.js.map +1 -1
  184. package/build/__tests__/unit/symbolicate.test.js +0 -1
  185. package/build/__tests__/unit/symbolicate.test.js.map +1 -1
  186. package/build/__tests__/unit/tap.test.js +2 -40
  187. package/build/__tests__/unit/tap.test.js.map +1 -1
  188. package/build/__tests__/unit/textEntry.test.js +0 -27
  189. package/build/__tests__/unit/textEntry.test.js.map +1 -1
  190. package/build/__tests__/unit/toolDescriptions.test.js +0 -40
  191. package/build/__tests__/unit/toolDescriptions.test.js.map +1 -1
  192. package/build/__tests__/unit/toolsJson.test.js +0 -10
  193. package/build/__tests__/unit/toolsJson.test.js.map +1 -1
  194. package/build/__tests__/unit/transportClassify.test.js +0 -20
  195. package/build/__tests__/unit/transportClassify.test.js.map +1 -1
  196. package/build/__tests__/unit/truncate.test.js +0 -5
  197. package/build/__tests__/unit/truncate.test.js.map +1 -1
  198. package/build/__tests__/unit/usageCache.test.js +0 -3
  199. package/build/__tests__/unit/usageCache.test.js.map +1 -1
  200. package/build/__tests__/unit/usageGate.test.js +1 -1
  201. package/build/__tests__/unit/usageGate.test.js.map +1 -1
  202. package/build/__tests__/unit/visibility.test.js +0 -8
  203. package/build/__tests__/unit/visibility.test.js.map +1 -1
  204. package/build/__tests__/unit/waitForMeasurements.test.js +2 -7
  205. package/build/__tests__/unit/waitForMeasurements.test.js.map +1 -1
  206. package/build/bin.js +0 -18
  207. package/build/bin.js.map +1 -1
  208. package/build/core/android.d.ts +0 -120
  209. package/build/core/android.d.ts.map +1 -1
  210. package/build/core/android.js +4 -259
  211. package/build/core/android.js.map +1 -1
  212. package/build/core/androidPinch.d.ts +21 -0
  213. package/build/core/androidPinch.d.ts.map +1 -0
  214. package/build/core/androidPinch.js +72 -0
  215. package/build/core/androidPinch.js.map +1 -0
  216. package/build/core/androidSystemBars.d.ts +7 -0
  217. package/build/core/androidSystemBars.d.ts.map +1 -0
  218. package/build/core/androidSystemBars.js +21 -0
  219. package/build/core/androidSystemBars.js.map +1 -0
  220. package/build/core/appContext.d.ts +0 -50
  221. package/build/core/appContext.d.ts.map +1 -1
  222. package/build/core/appContext.js +0 -50
  223. package/build/core/appContext.js.map +1 -1
  224. package/build/core/appDetection.d.ts +0 -16
  225. package/build/core/appDetection.d.ts.map +1 -1
  226. package/build/core/appDetection.js +0 -36
  227. package/build/core/appDetection.js.map +1 -1
  228. package/build/core/appRequest.d.ts +0 -12
  229. package/build/core/appRequest.d.ts.map +1 -1
  230. package/build/core/appRequest.js +0 -15
  231. package/build/core/appRequest.js.map +1 -1
  232. package/build/core/bufferConfig.d.ts +0 -2
  233. package/build/core/bufferConfig.d.ts.map +1 -1
  234. package/build/core/bufferConfig.js +0 -2
  235. package/build/core/bufferConfig.js.map +1 -1
  236. package/build/core/bundle.js +0 -40
  237. package/build/core/bundle.js.map +1 -1
  238. package/build/core/componentSearch.d.ts +0 -19
  239. package/build/core/componentSearch.d.ts.map +1 -1
  240. package/build/core/componentSearch.js +1 -22
  241. package/build/core/componentSearch.js.map +1 -1
  242. package/build/core/componentSource.d.ts +0 -21
  243. package/build/core/componentSource.d.ts.map +1 -1
  244. package/build/core/componentSource.js +0 -27
  245. package/build/core/componentSource.js.map +1 -1
  246. package/build/core/componentTree.js +0 -12
  247. package/build/core/componentTree.js.map +1 -1
  248. package/build/core/config.d.ts +0 -8
  249. package/build/core/config.d.ts.map +1 -1
  250. package/build/core/config.js +0 -10
  251. package/build/core/config.js.map +1 -1
  252. package/build/core/connection.d.ts +0 -76
  253. package/build/core/connection.d.ts.map +1 -1
  254. package/build/core/connection.js +15 -340
  255. package/build/core/connection.js.map +1 -1
  256. package/build/core/connectionState.d.ts +0 -78
  257. package/build/core/connectionState.d.ts.map +1 -1
  258. package/build/core/connectionState.js +4 -92
  259. package/build/core/connectionState.js.map +1 -1
  260. package/build/core/debugGlobals.js +0 -68
  261. package/build/core/debugGlobals.js.map +1 -1
  262. package/build/core/deviceDiscovery.d.ts +0 -5
  263. package/build/core/deviceDiscovery.d.ts.map +1 -1
  264. package/build/core/deviceDiscovery.js +0 -12
  265. package/build/core/deviceDiscovery.js.map +1 -1
  266. package/build/core/deviceResolver.d.ts +0 -10
  267. package/build/core/deviceResolver.d.ts.map +1 -1
  268. package/build/core/deviceResolver.js +0 -54
  269. package/build/core/deviceResolver.js.map +1 -1
  270. package/build/core/emulatorBridge.d.ts +17 -0
  271. package/build/core/emulatorBridge.d.ts.map +1 -0
  272. package/build/core/emulatorBridge.js +78 -0
  273. package/build/core/emulatorBridge.js.map +1 -0
  274. package/build/core/emulatorGrpc.d.ts +14 -0
  275. package/build/core/emulatorGrpc.d.ts.map +1 -0
  276. package/build/core/emulatorGrpc.js +93 -0
  277. package/build/core/emulatorGrpc.js.map +1 -0
  278. package/build/core/epochRender.d.ts +0 -12
  279. package/build/core/epochRender.d.ts.map +1 -1
  280. package/build/core/epochRender.js +0 -12
  281. package/build/core/epochRender.js.map +1 -1
  282. package/build/core/errorScreenParser.d.ts +0 -21
  283. package/build/core/errorScreenParser.d.ts.map +1 -1
  284. package/build/core/errorScreenParser.js +0 -50
  285. package/build/core/errorScreenParser.js.map +1 -1
  286. package/build/core/errors.d.ts +0 -15
  287. package/build/core/errors.d.ts.map +1 -1
  288. package/build/core/errors.js +0 -15
  289. package/build/core/errors.js.map +1 -1
  290. package/build/core/escapeNonAscii.d.ts +0 -9
  291. package/build/core/escapeNonAscii.d.ts.map +1 -1
  292. package/build/core/escapeNonAscii.js +1 -43
  293. package/build/core/escapeNonAscii.js.map +1 -1
  294. package/build/core/exec.d.ts +0 -12
  295. package/build/core/exec.d.ts.map +1 -1
  296. package/build/core/exec.js +2 -14
  297. package/build/core/exec.js.map +1 -1
  298. package/build/core/executor.js +0 -3
  299. package/build/core/executor.js.map +1 -1
  300. package/build/core/fastRefreshRecorder.js +0 -4
  301. package/build/core/fastRefreshRecorder.js.map +1 -1
  302. package/build/core/fastRefreshTools.js +0 -3
  303. package/build/core/fastRefreshTools.js.map +1 -1
  304. package/build/core/feedback.js +0 -4
  305. package/build/core/feedback.js.map +1 -1
  306. package/build/core/graphqlOperation.d.ts +13 -0
  307. package/build/core/graphqlOperation.d.ts.map +1 -0
  308. package/build/core/graphqlOperation.js +80 -0
  309. package/build/core/graphqlOperation.js.map +1 -0
  310. package/build/core/guides.d.ts +0 -10
  311. package/build/core/guides.d.ts.map +1 -1
  312. package/build/core/guides.js +18 -12
  313. package/build/core/guides.js.map +1 -1
  314. package/build/core/iconSemantics.d.ts +0 -15
  315. package/build/core/iconSemantics.d.ts.map +1 -1
  316. package/build/core/iconSemantics.js +0 -31
  317. package/build/core/iconSemantics.js.map +1 -1
  318. package/build/core/index.d.ts +2 -0
  319. package/build/core/index.d.ts.map +1 -1
  320. package/build/core/index.js +5 -47
  321. package/build/core/index.js.map +1 -1
  322. package/build/core/injected/visibility.d.ts +0 -30
  323. package/build/core/injected/visibility.d.ts.map +1 -1
  324. package/build/core/injected/visibility.js +0 -33
  325. package/build/core/injected/visibility.js.map +1 -1
  326. package/build/core/injectedFilters.d.ts +0 -28
  327. package/build/core/injectedFilters.d.ts.map +1 -1
  328. package/build/core/injectedFilters.js +0 -28
  329. package/build/core/injectedFilters.js.map +1 -1
  330. package/build/core/inputTarget.d.ts +1 -34
  331. package/build/core/inputTarget.d.ts.map +1 -1
  332. package/build/core/inputTarget.js +0 -26
  333. package/build/core/inputTarget.js.map +1 -1
  334. package/build/core/inputTargetTools.d.ts +0 -7
  335. package/build/core/inputTargetTools.d.ts.map +1 -1
  336. package/build/core/inputTargetTools.js +0 -7
  337. package/build/core/inputTargetTools.js.map +1 -1
  338. package/build/core/inspector.d.ts +0 -33
  339. package/build/core/inspector.d.ts.map +1 -1
  340. package/build/core/inspector.js +27 -40
  341. package/build/core/inspector.js.map +1 -1
  342. package/build/core/ios.d.ts +11 -122
  343. package/build/core/ios.d.ts.map +1 -1
  344. package/build/core/ios.js +32 -299
  345. package/build/core/ios.js.map +1 -1
  346. package/build/core/jsExecute.d.ts +0 -100
  347. package/build/core/jsExecute.d.ts.map +1 -1
  348. package/build/core/jsExecute.js +0 -261
  349. package/build/core/jsExecute.js.map +1 -1
  350. package/build/core/jsLogEvents.d.ts +0 -8
  351. package/build/core/jsLogEvents.d.ts.map +1 -1
  352. package/build/core/jsLogEvents.js +0 -8
  353. package/build/core/jsLogEvents.js.map +1 -1
  354. package/build/core/keyboardMetrics.js +0 -8
  355. package/build/core/keyboardMetrics.js.map +1 -1
  356. package/build/core/keyboardRaise.d.ts +0 -8
  357. package/build/core/keyboardRaise.d.ts.map +1 -1
  358. package/build/core/keyboardRaise.js +0 -23
  359. package/build/core/keyboardRaise.js.map +1 -1
  360. package/build/core/license.d.ts +0 -4
  361. package/build/core/license.d.ts.map +1 -1
  362. package/build/core/license.js +2 -55
  363. package/build/core/license.js.map +1 -1
  364. package/build/core/logDiagnosis.d.ts +0 -34
  365. package/build/core/logDiagnosis.d.ts.map +1 -1
  366. package/build/core/logDiagnosis.js +0 -15
  367. package/build/core/logDiagnosis.js.map +1 -1
  368. package/build/core/logEventFormat.d.ts +0 -1
  369. package/build/core/logEventFormat.d.ts.map +1 -1
  370. package/build/core/logEventFormat.js +0 -30
  371. package/build/core/logEventFormat.js.map +1 -1
  372. package/build/core/logEvents.d.ts +0 -54
  373. package/build/core/logEvents.d.ts.map +1 -1
  374. package/build/core/logEvents.js +0 -37
  375. package/build/core/logEvents.js.map +1 -1
  376. package/build/core/logGrouping.d.ts +0 -9
  377. package/build/core/logGrouping.d.ts.map +1 -1
  378. package/build/core/logGrouping.js +0 -17
  379. package/build/core/logGrouping.js.map +1 -1
  380. package/build/core/logOwnership.d.ts +0 -17
  381. package/build/core/logOwnership.d.ts.map +1 -1
  382. package/build/core/logOwnership.js +0 -34
  383. package/build/core/logOwnership.js.map +1 -1
  384. package/build/core/logRelevance.d.ts +0 -8
  385. package/build/core/logRelevance.d.ts.map +1 -1
  386. package/build/core/logRelevance.js +0 -15
  387. package/build/core/logRelevance.js.map +1 -1
  388. package/build/core/logSourceAndroid.d.ts +0 -8
  389. package/build/core/logSourceAndroid.d.ts.map +1 -1
  390. package/build/core/logSourceAndroid.js +0 -11
  391. package/build/core/logSourceAndroid.js.map +1 -1
  392. package/build/core/logSourceIos.d.ts +0 -8
  393. package/build/core/logSourceIos.d.ts.map +1 -1
  394. package/build/core/logSourceIos.js +1 -24
  395. package/build/core/logSourceIos.js.map +1 -1
  396. package/build/core/logbox.d.ts +0 -30
  397. package/build/core/logbox.d.ts.map +1 -1
  398. package/build/core/logbox.js +0 -43
  399. package/build/core/logbox.js.map +1 -1
  400. package/build/core/logs.d.ts +0 -6
  401. package/build/core/logs.d.ts.map +1 -1
  402. package/build/core/logs.js +0 -19
  403. package/build/core/logs.js.map +1 -1
  404. package/build/core/metro.d.ts +0 -14
  405. package/build/core/metro.d.ts.map +1 -1
  406. package/build/core/metro.js +1 -32
  407. package/build/core/metro.js.map +1 -1
  408. package/build/core/moduleRegistry.d.ts +0 -17
  409. package/build/core/moduleRegistry.d.ts.map +1 -1
  410. package/build/core/moduleRegistry.js +0 -17
  411. package/build/core/moduleRegistry.js.map +1 -1
  412. package/build/core/nativeInputValue.d.ts +0 -29
  413. package/build/core/nativeInputValue.d.ts.map +1 -1
  414. package/build/core/nativeInputValue.js +0 -18
  415. package/build/core/nativeInputValue.js.map +1 -1
  416. package/build/core/nativeLogs.d.ts +0 -47
  417. package/build/core/nativeLogs.d.ts.map +1 -1
  418. package/build/core/nativeLogs.js +0 -82
  419. package/build/core/nativeLogs.js.map +1 -1
  420. package/build/core/nativeOnlyHints.js +0 -4
  421. package/build/core/nativeOnlyHints.js.map +1 -1
  422. package/build/core/navigate.d.ts +0 -15
  423. package/build/core/navigate.d.ts.map +1 -1
  424. package/build/core/navigate.js +0 -22
  425. package/build/core/navigate.js.map +1 -1
  426. package/build/core/navigation.d.ts +0 -60
  427. package/build/core/navigation.d.ts.map +1 -1
  428. package/build/core/navigation.js +0 -60
  429. package/build/core/navigation.js.map +1 -1
  430. package/build/core/network.d.ts +0 -5
  431. package/build/core/network.d.ts.map +1 -1
  432. package/build/core/network.js +10 -31
  433. package/build/core/network.js.map +1 -1
  434. package/build/core/networkInterceptor.d.ts +0 -19
  435. package/build/core/networkInterceptor.d.ts.map +1 -1
  436. package/build/core/networkInterceptor.js +3 -27
  437. package/build/core/networkInterceptor.js.map +1 -1
  438. package/build/core/ocr.d.ts +0 -31
  439. package/build/core/ocr.d.ts.map +1 -1
  440. package/build/core/ocr.js +1 -71
  441. package/build/core/ocr.js.map +1 -1
  442. package/build/core/paths.js +0 -1
  443. package/build/core/paths.js.map +1 -1
  444. package/build/core/pinchGeometry.d.ts +28 -0
  445. package/build/core/pinchGeometry.d.ts.map +1 -0
  446. package/build/core/pinchGeometry.js +97 -0
  447. package/build/core/pinchGeometry.js.map +1 -0
  448. package/build/core/pinchThresholds.d.ts +14 -0
  449. package/build/core/pinchThresholds.d.ts.map +1 -0
  450. package/build/core/pinchThresholds.js +9 -0
  451. package/build/core/pinchThresholds.js.map +1 -0
  452. package/build/core/posthog.js +0 -7
  453. package/build/core/posthog.js.map +1 -1
  454. package/build/core/pressables.d.ts +0 -25
  455. package/build/core/pressables.d.ts.map +1 -1
  456. package/build/core/pressables.js +0 -37
  457. package/build/core/pressables.js.map +1 -1
  458. package/build/core/probe.d.ts +0 -9
  459. package/build/core/probe.d.ts.map +1 -1
  460. package/build/core/probe.js +0 -9
  461. package/build/core/probe.js.map +1 -1
  462. package/build/core/projectMemory.d.ts +0 -2
  463. package/build/core/projectMemory.d.ts.map +1 -1
  464. package/build/core/projectMemory.js +2 -7
  465. package/build/core/projectMemory.js.map +1 -1
  466. package/build/core/projectStore.d.ts +0 -18
  467. package/build/core/projectStore.d.ts.map +1 -1
  468. package/build/core/projectStore.js +0 -19
  469. package/build/core/projectStore.js.map +1 -1
  470. package/build/core/promiseHandles.d.ts +0 -13
  471. package/build/core/promiseHandles.d.ts.map +1 -1
  472. package/build/core/promiseHandles.js +0 -25
  473. package/build/core/promiseHandles.js.map +1 -1
  474. package/build/core/register.js +0 -44
  475. package/build/core/register.js.map +1 -1
  476. package/build/core/rnGlobalsBootstrap.d.ts +0 -13
  477. package/build/core/rnGlobalsBootstrap.d.ts.map +1 -1
  478. package/build/core/rnGlobalsBootstrap.js +0 -22
  479. package/build/core/rnGlobalsBootstrap.js.map +1 -1
  480. package/build/core/routeHistory.d.ts +24 -0
  481. package/build/core/routeHistory.d.ts.map +1 -0
  482. package/build/core/routeHistory.js +186 -0
  483. package/build/core/routeHistory.js.map +1 -0
  484. package/build/core/screenLayout.d.ts +0 -11
  485. package/build/core/screenLayout.d.ts.map +1 -1
  486. package/build/core/screenLayout.js +24 -61
  487. package/build/core/screenLayout.js.map +1 -1
  488. package/build/core/screenSpace.d.ts +32 -44
  489. package/build/core/screenSpace.d.ts.map +1 -1
  490. package/build/core/screenSpace.js +80 -46
  491. package/build/core/screenSpace.js.map +1 -1
  492. package/build/core/screenSpaceDevice.d.ts +0 -8
  493. package/build/core/screenSpaceDevice.d.ts.map +1 -1
  494. package/build/core/screenSpaceDevice.js +31 -14
  495. package/build/core/screenSpaceDevice.js.map +1 -1
  496. package/build/core/screenState.d.ts +2 -74
  497. package/build/core/screenState.d.ts.map +1 -1
  498. package/build/core/screenState.js +204 -145
  499. package/build/core/screenState.js.map +1 -1
  500. package/build/core/sdkBridge.js +0 -8
  501. package/build/core/sdkBridge.js.map +1 -1
  502. package/build/core/sdkMirrorPoller.d.ts +0 -18
  503. package/build/core/sdkMirrorPoller.d.ts.map +1 -1
  504. package/build/core/sdkMirrorPoller.js +0 -47
  505. package/build/core/sdkMirrorPoller.js.map +1 -1
  506. package/build/core/selectionBuffer.d.ts +0 -6
  507. package/build/core/selectionBuffer.d.ts.map +1 -1
  508. package/build/core/selectionBuffer.js +0 -5
  509. package/build/core/selectionBuffer.js.map +1 -1
  510. package/build/core/signedVerdict.js +0 -6
  511. package/build/core/signedVerdict.js.map +1 -1
  512. package/build/core/state.d.ts +0 -31
  513. package/build/core/state.d.ts.map +1 -1
  514. package/build/core/state.js +0 -57
  515. package/build/core/state.js.map +1 -1
  516. package/build/core/symbolicate.js +0 -11
  517. package/build/core/symbolicate.js.map +1 -1
  518. package/build/core/telemetry.d.ts +0 -47
  519. package/build/core/telemetry.d.ts.map +1 -1
  520. package/build/core/telemetry.js +1 -173
  521. package/build/core/telemetry.js.map +1 -1
  522. package/build/core/textEntry.d.ts +0 -34
  523. package/build/core/textEntry.d.ts.map +1 -1
  524. package/build/core/textEntry.js +0 -73
  525. package/build/core/textEntry.js.map +1 -1
  526. package/build/core/toolHelpers.d.ts +0 -12
  527. package/build/core/toolHelpers.d.ts.map +1 -1
  528. package/build/core/toolHelpers.js +2 -47
  529. package/build/core/toolHelpers.js.map +1 -1
  530. package/build/core/truncate.d.ts +0 -17
  531. package/build/core/truncate.d.ts.map +1 -1
  532. package/build/core/truncate.js +0 -32
  533. package/build/core/truncate.js.map +1 -1
  534. package/build/core/types.d.ts +0 -6
  535. package/build/core/types.d.ts.map +1 -1
  536. package/build/core/usageCache.js +0 -12
  537. package/build/core/usageCache.js.map +1 -1
  538. package/build/index.js +0 -18
  539. package/build/index.js.map +1 -1
  540. package/build/pro/coordinateMiss.d.ts +0 -30
  541. package/build/pro/coordinateMiss.d.ts.map +1 -1
  542. package/build/pro/coordinateMiss.js +0 -17
  543. package/build/pro/coordinateMiss.js.map +1 -1
  544. package/build/pro/overlayGuard.d.ts +27 -0
  545. package/build/pro/overlayGuard.d.ts.map +1 -0
  546. package/build/pro/overlayGuard.js +103 -0
  547. package/build/pro/overlayGuard.js.map +1 -0
  548. package/build/pro/screenshot-diff.js +4 -6
  549. package/build/pro/screenshot-diff.js.map +1 -1
  550. package/build/pro/tap.d.ts +0 -55
  551. package/build/pro/tap.d.ts.map +1 -1
  552. package/build/pro/tap.js +72 -316
  553. package/build/pro/tap.js.map +1 -1
  554. package/build/pro/usageGate.js +0 -9
  555. package/build/pro/usageGate.js.map +1 -1
  556. package/build/pro/usageNotifications.js +1 -13
  557. package/build/pro/usageNotifications.js.map +1 -1
  558. package/build/pro/verifyAction.d.ts +0 -13
  559. package/build/pro/verifyAction.d.ts.map +1 -1
  560. package/build/pro/verifyAction.js +0 -45
  561. package/build/pro/verifyAction.js.map +1 -1
  562. package/build/tools/_deviceArg.d.ts +0 -35
  563. package/build/tools/_deviceArg.d.ts.map +1 -1
  564. package/build/tools/_deviceArg.js +0 -35
  565. package/build/tools/_deviceArg.js.map +1 -1
  566. package/build/tools/accountTools.js +2 -2
  567. package/build/tools/accountTools.js.map +1 -1
  568. package/build/tools/bundleTools.js +0 -16
  569. package/build/tools/bundleTools.js.map +1 -1
  570. package/build/tools/componentTools.d.ts.map +1 -1
  571. package/build/tools/componentTools.js +47 -53
  572. package/build/tools/componentTools.js.map +1 -1
  573. package/build/tools/connectionTools.js +1 -59
  574. package/build/tools/connectionTools.js.map +1 -1
  575. package/build/tools/deviceTools.js +0 -11
  576. package/build/tools/deviceTools.js.map +1 -1
  577. package/build/tools/executionTools.js +1 -18
  578. package/build/tools/executionTools.js.map +1 -1
  579. package/build/tools/interactionTools.d.ts +0 -10
  580. package/build/tools/interactionTools.d.ts.map +1 -1
  581. package/build/tools/interactionTools.js +190 -59
  582. package/build/tools/interactionTools.js.map +1 -1
  583. package/build/tools/logTools.d.ts +0 -13
  584. package/build/tools/logTools.d.ts.map +1 -1
  585. package/build/tools/logTools.js +2 -126
  586. package/build/tools/logTools.js.map +1 -1
  587. package/build/tools/metaTools.js +0 -10
  588. package/build/tools/metaTools.js.map +1 -1
  589. package/build/tools/networkTools.js +4 -43
  590. package/build/tools/networkTools.js.map +1 -1
  591. package/build/tools/requestTools.js +0 -5
  592. package/build/tools/requestTools.js.map +1 -1
  593. package/build/tools/screenshotTools.js +5 -111
  594. package/build/tools/screenshotTools.js.map +1 -1
  595. package/package.json +2 -2
  596. package/tools.json +16 -1
package/README.md CHANGED
@@ -44,6 +44,7 @@ Linking your installation here is also **required to unlock [ExecBro Pro](#prici
44
44
  - **Android Devices** - Screenshots, app install/launch, package management (via ADB)
45
45
  - **Unified Tap** - Single `tap` tool with automatic fallback chain: fiber tree → accessibility → OCR → coordinates. Auto-detects platform, accepts coordinates from screenshots and layout tools unchanged. Returns post-tap screenshot and verifies visual change by default
46
46
  - **Unified Swipe** - Single `swipe` tool that auto-routes to iOS or Android based on the connected device. Takes coordinates in the same screen space as the layout tools and screenshots — no conversion — and returns a `verification.meaningful` signal so agents detect end-of-list, non-scrollable surfaces, and missed coordinates. Essential for scrolling virtualized lists (FlatList/SectionList) where off-screen items aren't in the fiber tree
47
+ - **Real Multi-Touch Pinch** *(Android emulator only — iOS in progress)* - A `pinch` tool that sends two genuine kernel touch contacts through the Android emulator's multi-touch bridge, so it zooms maps, galleries, WebViews, and native views alike — it works below the app, not through React Native. Returns the same `verification.meaningful` signal as `swipe`, and refuses on unsupported targets instead of faking a result
47
48
  - **UI Automation** - Swipe, long press, key events, and text input on both platforms. On Bridgeless/Fabric apps, `dismiss_keyboard` operates on whatever has focus, and `ios_input_text` / `android_input_text` accept `replace:true` to overwrite pre-filled values — updating React state through `onChangeText` so controlled components (Formik, react-hook-form, useState) stay consistent
48
49
  - **Accessibility Inspection** - Query UI hierarchy to find elements by text, label, or resource ID
49
50
  - **OCR Text Extraction** - Extract visible text with tap-ready coordinates via Google Cloud Vision (works on any screen content)
@@ -113,6 +114,7 @@ See the [full tool reference](docs/tools.md) for all tools with descriptions. Ke
113
114
  | `get_screen_state` | **Orientation snapshot** — active route, overlays, and every element with a tap-ready `(x, y)` |
114
115
  | `get_screen_layout` | Screen map of visible components with positions, sizes, and text content |
115
116
  | `tap` | **Unified tap** — auto-detects platform, tries fiber → accessibility → OCR → coordinates |
117
+ | `pinch` | **Real two-finger pinch-to-zoom** — Android emulator only (iOS in progress) |
116
118
  | `ios_input_text` / `android_input_text` | Type text into the focused field. `replace:true` clears pre-filled values first (Fabric) |
117
119
  | `dismiss_keyboard` | Blur the focused input and close the on-screen keyboard |
118
120
  | `execute_in_app` | Run JS expressions in the app runtime (REPL-style) |
@@ -35,29 +35,17 @@ export declare class FakeCDPServer {
35
35
  port: number;
36
36
  start(): Promise<number>;
37
37
  private handleMessage;
38
- /** Set a handler for Runtime.evaluate — receives params, returns CDP response shape */
39
38
  onEvaluate(handler: ResponseHandler): void;
40
- /** Convenience: respond with a successful value */
41
39
  respondWithValue(value: unknown, type?: string): void;
42
- /** Convenience: respond with a JS exception */
43
40
  respondWithError(errorType: string, message: string): void;
44
- /** Convenience: don't respond (causes timeout) */
45
41
  respondWithTimeout(): void;
46
- /**
47
- * Control the built-in `1+1` liveness answer. Turn off to simulate a stale
48
- * CDP target: the socket stays open and keeps ponging, but no evaluate —
49
- * probe included — ever comes back.
50
- */
51
42
  setAutoAnswerProbe(enabled: boolean): void;
52
- /** Drop every live device socket without shutting the server down. */
53
43
  closeAllConnections(): void;
54
- /** Get all received messages */
55
44
  get receivedMessages(): {
56
45
  id: number;
57
46
  method: string;
58
47
  params: Record<string, unknown>;
59
48
  }[];
60
- /** Get the WebSocket URL for connecting as a device */
61
49
  get wsUrl(): string;
62
50
  stop(): Promise<void>;
63
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fake-cdp-server.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/fake-cdp-server.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACjB,MAAM,CAAC,EAAE;QACL,MAAM,CAAC,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,WAAW,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,gBAAgB,CAAC,EAAE;YACf,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC;gBACb,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,KAAK,CAAC,EAAE,OAAO,CAAC;aACnB,CAAC;SACL,CAAC;KACL,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,WAAW,GAAG,IAAI,CAAC;AAE/E,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAA8E;IACvG,IAAI,SAAK;IAEH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAqB9B,OAAO,CAAC,aAAa;IA0CrB,uFAAuF;IACvF,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAI1C,mDAAmD;IACnD,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,SAAW,GAAG,IAAI;IAMvD,+CAA+C;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAmB1D,kDAAkD;IAClD,kBAAkB,IAAI,IAAI;IAK1B;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C,sEAAsE;IACtE,mBAAmB,IAAI,IAAI;IAM3B,gCAAgC;IAChC,IAAI,gBAAgB;YAzHmB,MAAM;gBAAU,MAAM;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QA2H7F;IAED,uDAAuD;IACvD,IAAI,KAAK,IAAI,MAAM,CAElB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAY9B"}
1
+ {"version":3,"file":"fake-cdp-server.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/fake-cdp-server.ts"],"names":[],"mappings":"AAEA,UAAU,WAAW;IACjB,MAAM,CAAC,EAAE;QACL,MAAM,CAAC,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,WAAW,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,gBAAgB,CAAC,EAAE;YACf,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC;gBACb,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,WAAW,CAAC,EAAE,MAAM,CAAC;gBACrB,KAAK,CAAC,EAAE,OAAO,CAAC;aACnB,CAAC;SACL,CAAC;KACL,CAAC;IACF,KAAK,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,WAAW,GAAG,IAAI,CAAC;AAE/E,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAA8E;IACvG,IAAI,SAAK;IAEH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAqB9B,OAAO,CAAC,aAAa;IA2CrB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAK1C,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,SAAW,GAAG,IAAI;IAOvD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAoB1D,kBAAkB,IAAI,IAAI;IAU1B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK1C,mBAAmB,IAAI,IAAI;IAO3B,IAAI,gBAAgB;YAzHmB,MAAM;gBAAU,MAAM;gBAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QA2H7F;IAGD,IAAI,KAAK,IAAI,MAAM,CAElB;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAY9B"}
@@ -26,16 +26,10 @@ export class FakeCDPServer {
26
26
  });
27
27
  }
28
28
  handleMessage(ws, msg) {
29
- // Auto-respond to domain enable messages
30
29
  if (msg.method === "Runtime.enable" || msg.method === "Log.enable" || msg.method === "Network.enable") {
31
30
  ws.send(JSON.stringify({ id: msg.id, result: {} }));
32
31
  return;
33
32
  }
34
- // Answer the liveness probe correctly so connectToDevice can proceed.
35
- // The probe sends `1+1` with returnByValue; treat any such request as live.
36
- // Tests that need to simulate a stale target (socket alive, JS context
37
- // gone) turn this off via setAutoAnswerProbe(false) and let their own
38
- // evaluate handler decide.
39
33
  if (msg.method === "Runtime.evaluate" && this.autoAnswerProbe) {
40
34
  const expr = msg.params?.expression ?? "";
41
35
  if (expr === "1+1") {
@@ -46,17 +40,14 @@ export class FakeCDPServer {
46
40
  return;
47
41
  }
48
42
  }
49
- // Handle Runtime.evaluate with custom handler
50
43
  if (msg.method === "Runtime.evaluate") {
51
44
  if (this.evaluateHandler) {
52
45
  const response = this.evaluateHandler(msg.params || {});
53
- // If handler returns null, don't send a response (simulates timeout)
54
46
  if (response !== null) {
55
47
  ws.send(JSON.stringify({ id: msg.id, ...response }));
56
48
  }
57
49
  }
58
50
  else {
59
- // Default: return undefined
60
51
  ws.send(JSON.stringify({
61
52
  id: msg.id,
62
53
  result: { result: { type: "undefined" } },
@@ -65,17 +56,14 @@ export class FakeCDPServer {
65
56
  return;
66
57
  }
67
58
  }
68
- /** Set a handler for Runtime.evaluate — receives params, returns CDP response shape */
69
59
  onEvaluate(handler) {
70
60
  this.evaluateHandler = handler;
71
61
  }
72
- /** Convenience: respond with a successful value */
73
62
  respondWithValue(value, type = "object") {
74
63
  this.onEvaluate(() => ({
75
64
  result: { result: { type, value } },
76
65
  }));
77
66
  }
78
- /** Convenience: respond with a JS exception */
79
67
  respondWithError(errorType, message) {
80
68
  this.onEvaluate(() => ({
81
69
  result: {
@@ -94,30 +82,20 @@ export class FakeCDPServer {
94
82
  },
95
83
  }));
96
84
  }
97
- /** Convenience: don't respond (causes timeout) */
98
85
  respondWithTimeout() {
99
- // Set a handler that returns null — handleMessage skips sending
100
86
  this.onEvaluate(() => null);
101
87
  }
102
- /**
103
- * Control the built-in `1+1` liveness answer. Turn off to simulate a stale
104
- * CDP target: the socket stays open and keeps ponging, but no evaluate —
105
- * probe included — ever comes back.
106
- */
107
88
  setAutoAnswerProbe(enabled) {
108
89
  this.autoAnswerProbe = enabled;
109
90
  }
110
- /** Drop every live device socket without shutting the server down. */
111
91
  closeAllConnections() {
112
92
  for (const ws of [...this.connections]) {
113
93
  ws.close();
114
94
  }
115
95
  }
116
- /** Get all received messages */
117
96
  get receivedMessages() {
118
97
  return this._receivedMessages;
119
98
  }
120
- /** Get the WebSocket URL for connecting as a device */
121
99
  get wsUrl() {
122
100
  return `ws://localhost:${this.port}`;
123
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fake-cdp-server.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/fake-cdp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAa,MAAM,IAAI,CAAC;AAgChD,MAAM,OAAO,aAAa;IACd,MAAM,GAA2B,IAAI,CAAC;IACtC,WAAW,GAAgB,EAAE,CAAC;IAC9B,eAAe,GAA2B,IAAI,CAAC;IAC/C,eAAe,GAAG,IAAI,CAAC;IACvB,iBAAiB,GAA2E,EAAE,CAAC;IACvG,IAAI,GAAG,CAAC,CAAC;IAET,KAAK,CAAC,KAAK;QACP,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE;gBAChD,IAAI,CAAC,IAAI,GAAI,IAAI,CAAC,MAAO,CAAC,OAAO,EAAuB,CAAC,IAAI,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;gBAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1B,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,aAAa,CAAC,EAAa,EAAE,GAAqE;QACtG,yCAAyC;QACzC,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;YACpG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO;QACX,CAAC;QAED,sEAAsE;QACtE,4EAA4E;QAC5E,uEAAuE;QACvE,sEAAsE;QACtE,2BAA2B;QAC3B,IAAI,GAAG,CAAC,MAAM,KAAK,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAI,GAAG,CAAC,MAAM,EAAE,UAAiC,IAAI,EAAE,CAAC;YAClE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACjB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;iBACnD,CAAC,CAAC,CAAC;gBACJ,OAAO;YACX,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,IAAI,GAAG,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBACxD,qEAAqE;gBACrE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACpB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,4BAA4B;gBAC5B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACnB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;iBAC5C,CAAC,CAAC,CAAC;YACR,CAAC;YACD,OAAO;QACX,CAAC;IACL,CAAC;IAED,uFAAuF;IACvF,UAAU,CAAC,OAAwB;QAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,mDAAmD;IACnD,gBAAgB,CAAC,KAAc,EAAE,IAAI,GAAG,QAAQ;QAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;SACtC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,+CAA+C;IAC/C,gBAAgB,CAAC,SAAiB,EAAE,OAAe;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YACnB,MAAM,EAAE;gBACJ,gBAAgB,EAAE;oBACd,WAAW,EAAE,CAAC;oBACd,IAAI,EAAE,UAAU;oBAChB,UAAU,EAAE,CAAC;oBACb,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,OAAO;wBAChB,SAAS,EAAE,SAAS;wBACpB,WAAW,EAAE,GAAG,SAAS,KAAK,OAAO,EAAE;qBAC1C;iBACJ;aACJ;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;IAED,kDAAkD;IAClD,kBAAkB;QACd,gEAAgE;QAChE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACnC,CAAC;IAED,sEAAsE;IACtE,mBAAmB;QACf,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,EAAE,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACL,CAAC;IAED,gCAAgC;IAChC,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,uDAAuD;IACvD,IAAI,KAAK;QACL,OAAO,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,EAAE,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACJ,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"fake-cdp-server.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/fake-cdp-server.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,13 @@
1
1
  import type { TapResult } from "../../pro/tap.js";
2
2
  export type Platform = "ios" | "android";
3
- /**
4
- * Detect which platform is available by checking for booted simulators/emulators.
5
- * Returns the first available platform.
6
- */
7
3
  export declare function detectPlatform(): Promise<Platform>;
8
- /**
9
- * Connect to Metro and return the platform of the connected device.
10
- */
11
4
  export declare function connectToMetro(): Promise<Platform>;
12
- /**
13
- * Disconnect all apps and clean up state.
14
- */
15
5
  export declare function disconnectAll(): Promise<void>;
16
- /**
17
- * Read the test app's global state to verify a tap was registered.
18
- * Returns { tapCount, lastTapped } or null if not available.
19
- */
20
6
  export declare function readTestState(): Promise<{
21
7
  tapCount: number;
22
8
  lastTapped: string;
23
9
  } | null>;
24
- /**
25
- * Reset the test app's tap counter and last-tapped state.
26
- */
27
10
  export declare function resetTestState(): Promise<void>;
28
- /**
29
- * Assert that a tap result succeeded and the test app registered the tap on the expected element.
30
- */
31
11
  export declare function assertTapWorked(result: TapResult, expectedElement: string): Promise<void>;
32
- /**
33
- * Wait for a short duration (ms) to let UI settle.
34
- */
35
12
  export declare function sleep(ms: number): Promise<void>;
36
13
  //# sourceMappingURL=tap-test-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tap-test-helpers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/tap-test-helpers.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAEzC;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAYxD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CA+BxD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBnD;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAU9F;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/F;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"tap-test-helpers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/tap-test-helpers.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAMzC,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAYxD;AAKD,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CA+BxD;AAKD,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBnD;AAMD,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAU9F;AAKD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD;AAKD,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/F;AAKD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
@@ -1,13 +1,8 @@
1
- // src/__tests__/helpers/tap-test-helpers.ts
2
1
  import { scanMetroPorts, fetchDevices, selectMainDevice } from "../../core/metro.js";
3
2
  import { connectToDevice } from "../../core/connection.js";
4
3
  import { executeInApp } from "../../core/executor.js";
5
4
  import { connectedApps, pendingExecutions } from "../../core/state.js";
6
5
  import { cancelAllReconnectionTimers, clearAllConnectionState } from "../../core/connectionState.js";
7
- /**
8
- * Detect which platform is available by checking for booted simulators/emulators.
9
- * Returns the first available platform.
10
- */
11
6
  export async function detectPlatform() {
12
7
  const { execSync } = await import("child_process");
13
8
  try {
@@ -15,19 +10,16 @@ export async function detectPlatform() {
15
10
  if (result.includes("Booted"))
16
11
  return "ios";
17
12
  }
18
- catch { /* no iOS */ }
13
+ catch { }
19
14
  try {
20
15
  const result = execSync("adb devices 2>/dev/null", { encoding: "utf-8" });
21
16
  const lines = result.trim().split("\n").filter(l => l.includes("device") && !l.includes("List"));
22
17
  if (lines.length > 0)
23
18
  return "android";
24
19
  }
25
- catch { /* no Android */ }
20
+ catch { }
26
21
  throw new Error("No booted iOS simulator or Android emulator found");
27
22
  }
28
- /**
29
- * Connect to Metro and return the platform of the connected device.
30
- */
31
23
  export async function connectToMetro() {
32
24
  const ports = await scanMetroPorts();
33
25
  if (ports.length === 0) {
@@ -46,9 +38,6 @@ export async function connectToMetro() {
46
38
  backoffMultiplier: 1,
47
39
  },
48
40
  });
49
- // connectToDevice resolves with a message string, not the map key.
50
- // Wait briefly for the async platform detection (findSimulatorByName)
51
- // to complete, then read the first connected app's platform.
52
41
  await new Promise((resolve) => setTimeout(resolve, 2000));
53
42
  for (const app of connectedApps.values()) {
54
43
  if (app.platform)
@@ -58,9 +47,6 @@ export async function connectToMetro() {
58
47
  }
59
48
  throw new Error("Connected to Metro but could not determine platform");
60
49
  }
61
- /**
62
- * Disconnect all apps and clean up state.
63
- */
64
50
  export async function disconnectAll() {
65
51
  const closePromises = [];
66
52
  for (const [key, app] of connectedApps.entries()) {
@@ -85,10 +71,6 @@ export async function disconnectAll() {
85
71
  cancelAllReconnectionTimers();
86
72
  clearAllConnectionState();
87
73
  }
88
- /**
89
- * Read the test app's global state to verify a tap was registered.
90
- * Returns { tapCount, lastTapped } or null if not available.
91
- */
92
74
  export async function readTestState() {
93
75
  const result = await executeInApp("JSON.stringify({ tapCount: global.__TEST_STATE__?.tapCount ?? -1, lastTapped: global.__TEST_STATE__?.lastTapped ?? 'unknown' })");
94
76
  if (!result.success || !result.result)
@@ -100,15 +82,9 @@ export async function readTestState() {
100
82
  return null;
101
83
  }
102
84
  }
103
- /**
104
- * Reset the test app's tap counter and last-tapped state.
105
- */
106
85
  export async function resetTestState() {
107
86
  await executeInApp("global.__TEST_STATE__?.reset?.()");
108
87
  }
109
- /**
110
- * Assert that a tap result succeeded and the test app registered the tap on the expected element.
111
- */
112
88
  export async function assertTapWorked(result, expectedElement) {
113
89
  if (!result.success) {
114
90
  throw new Error(`Tap failed: ${result.error ?? result.suggestion ?? "unknown reason"}`);
@@ -121,9 +97,6 @@ export async function assertTapWorked(result, expectedElement) {
121
97
  throw new Error(`Expected lastTapped="${expectedElement}" but got "${state.lastTapped}"`);
122
98
  }
123
99
  }
124
- /**
125
- * Wait for a short duration (ms) to let UI settle.
126
- */
127
100
  export function sleep(ms) {
128
101
  return new Promise((resolve) => setTimeout(resolve, ms));
129
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tap-test-helpers.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/tap-test-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tap-test-helpers.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/tap-test-helpers.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ describe("auto-reconnect via CDP wrapper", () => {
17
17
  try {
18
18
  app.ws.close();
19
19
  }
20
- catch { /* ignore */ }
20
+ catch { }
21
21
  connectedApps.delete(key);
22
22
  }
23
23
  pendingExecutions.clear();
@@ -66,13 +66,12 @@ describe("auto-reconnect via CDP wrapper", () => {
66
66
  originatingToolName: "execute_in_app",
67
67
  });
68
68
  expect(result.success).toBe(false);
69
- // Logical CDP exception — outer wrapper must NOT mark _meta.reconnected.
70
69
  expect(result._meta?.reconnected).toBeFalsy();
71
70
  expect(result.error).not.toMatch(/^reconnect/);
72
71
  expect(result.error).toMatch(/ReferenceError/);
73
72
  });
74
73
  it("does NOT auto-retry on server-side timeoutMs (logical, not transport)", async () => {
75
- server.respondWithTimeout(); // never replies
74
+ server.respondWithTimeout();
76
75
  const result = await executeInApp("blockForever()", false, {
77
76
  maxRetries: 0,
78
77
  timeoutMs: 300,
@@ -80,31 +79,22 @@ describe("auto-reconnect via CDP wrapper", () => {
80
79
  });
81
80
  expect(result.success).toBe(false);
82
81
  expect(result.error).toMatch(/Timeout: Expression took too long/);
83
- // Critical: a server-side timer hit is logical — no reconnect.
84
82
  expect(result._meta?.reconnected).toBeFalsy();
85
83
  expect(result.error).not.toMatch(/^reconnect/);
86
84
  });
87
85
  it("attempts reconnect on transport failure and surfaces _meta on the result", async () => {
88
- // Force a transport-classified failure by closing the WebSocket before the call.
89
- // executeInAppInner will return "WebSocket connection is not open." → classified as ws_closed.
90
86
  const app = [...connectedApps.values()][0];
91
87
  try {
92
88
  app.ws.close();
93
89
  }
94
- catch { /* ignore */ }
90
+ catch { }
95
91
  await new Promise((r) => setTimeout(r, 50));
96
92
  const result = await executeInApp("doSomething()", false, {
97
93
  maxRetries: 0,
98
- autoReconnect: false, // disable inner reconnect so outer wrapper's path is exercised
94
+ autoReconnect: false,
99
95
  originatingToolName: "execute_in_app",
100
96
  });
101
97
  expect(result.success).toBe(false);
102
- // The outer wrapper triggered reconnect path — Metro discovery from the test process
103
- // probes real ports (8081, 8082, 19000-19002). Either outcome is acceptable:
104
- // - scan_failed → error starts "reconnect_attempted:"
105
- // - retry_failed → error starts "reconnected_but_still_failed:"
106
- // - success → result.success === true, _meta.reconnected === true
107
- // What MUST hold: _meta exists and transportError captures the original message.
108
98
  if (result.success) {
109
99
  expect(result._meta?.reconnected).toBe(true);
110
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auto-reconnect.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/auto-reconnect.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-reconnect.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/auto-reconnect.test.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,6 @@ import { checkAndEnsureConnection, getPassiveConnectionStatus } from "../../core
4
4
  import { connectedApps, pendingExecutions, updateLastCDPMessageTime, clearAllCDPMessageTimes } from "../../core/state.js";
5
5
  import { scanMetroPorts } from "../../core/metro.js";
6
6
  import { FakeCDPServer } from "../helpers/fake-cdp-server.js";
7
- // checkAndEnsureConnection() scans the real Metro ports, so the "nothing is
8
- // available" case only holds when the machine running the suite genuinely has
9
- // no Metro up. Developers usually do (port 8081), so probe the same ports the
10
- // code under test scans and skip rather than fail on a false negative.
11
7
  const metroPortsInUse = await scanMetroPorts();
12
8
  const itWithoutMetro = metroPortsInUse.length > 0 ? it.skip : it;
13
9
  describe("Connection health (integration)", () => {
@@ -23,7 +19,7 @@ describe("Connection health (integration)", () => {
23
19
  try {
24
20
  app.ws.close();
25
21
  }
26
- catch { /* ignore */ }
22
+ catch { }
27
23
  connectedApps.delete(key);
28
24
  }
29
25
  pendingExecutions.clear();
@@ -74,7 +70,6 @@ describe("Connection health (integration)", () => {
74
70
  await connectToDevice(device, port, {
75
71
  reconnectionConfig: { enabled: false, maxAttempts: 0, initialDelayMs: 0, maxDelayMs: 0, backoffMultiplier: 1 },
76
72
  });
77
- // Simulate recent CDP activity
78
73
  updateLastCDPMessageTime(`${port}-test-device`, new Date());
79
74
  const status = getPassiveConnectionStatus();
80
75
  expect(status.connected).toBe(true);
@@ -95,7 +90,6 @@ describe("Connection health (integration)", () => {
95
90
  await connectToDevice(device, port, {
96
91
  reconnectionConfig: { enabled: false, maxAttempts: 0, initialDelayMs: 0, maxDelayMs: 0, backoffMultiplier: 1 },
97
92
  });
98
- // Set last activity to 60 seconds ago
99
93
  updateLastCDPMessageTime(`${port}-test-device`, new Date(Date.now() - 60_000));
100
94
  const status = getPassiveConnectionStatus();
101
95
  expect(status.connected).toBe(true);
@@ -103,7 +97,6 @@ describe("Connection health (integration)", () => {
103
97
  expect(status.reason).toBe("activity_stale");
104
98
  });
105
99
  it("checks specific device when appKey is provided", () => {
106
- // With no connections, should return no_connection regardless of appKey
107
100
  const result = getPassiveConnectionStatus("8081-somedevice");
108
101
  expect(result.connected).toBe(false);
109
102
  expect(result.reason).toBe("no_connection");
@@ -123,8 +116,6 @@ describe("Connection health (integration)", () => {
123
116
  await connectToDevice(device, port, {
124
117
  reconnectionConfig: { enabled: false, maxAttempts: 0, initialDelayMs: 0, maxDelayMs: 0, backoffMultiplier: 1 },
125
118
  });
126
- // Note: handleCDPMessage will fire for enable responses, which updates timestamp
127
- // Reset it to null to simulate the "never received" case
128
119
  clearAllCDPMessageTimes();
129
120
  const status = getPassiveConnectionStatus();
130
121
  expect(status.connected).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"connection-health.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/connection-health.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-health.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/connection-health.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE1H,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAM9D,MAAM,eAAe,GAAG,MAAM,cAAc,EAAE,CAAC;AAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAEjE,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC7C,IAAI,MAAqB,CAAC;IAE1B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACV,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK,IAAI,EAAE;QAClB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC;gBAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAc,CAAC;YAC9C,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC1B,uBAAuB,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,aAAa,GAAoB,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,aAAa,CAAC,IAAI,CACd,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC1B,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,KAAK,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;oBACtC,OAAO,EAAE,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACJ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBACpC,IAAI,CAAC;wBAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC;wBAAC,OAAO,EAAE,CAAC;oBAAC,CAAC;gBAChD,CAAC;YACL,CAAC,CAAC,CACL,CAAC;YACF,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,MAAM;YAAE,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAC/C,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,MAAM,MAAM,GAAe;gBACvB,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,MAAM;gBACZ,oBAAoB,EAAE,GAAG,MAAM,CAAC,KAAK,0BAA0B;gBAC/D,UAAU,EAAE,MAAM;aACrB,CAAC;YAEF,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE;gBAChC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE;aACjH,CAAC,CAAC;YAGH,wBAAwB,CAAC,GAAG,IAAI,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAE5D,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,MAAM,MAAM,GAAe;gBACvB,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,MAAM;gBACZ,oBAAoB,EAAE,GAAG,MAAM,CAAC,KAAK,0BAA0B;gBAC/D,UAAU,EAAE,MAAM;aACrB,CAAC;YAEF,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE;gBAChC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE;aACjH,CAAC,CAAC;YAGH,wBAAwB,CAAC,GAAG,IAAI,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;YAE/E,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAEtD,MAAM,MAAM,GAAG,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,MAAM,MAAM,GAAe;gBACvB,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,MAAM;gBACZ,oBAAoB,EAAE,GAAG,MAAM,CAAC,KAAK,0BAA0B;gBAC/D,UAAU,EAAE,MAAM;aACrB,CAAC;YAEF,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE;gBAChC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE;aACjH,CAAC,CAAC;YAIH,uBAAuB,EAAE,CAAC;YAE1B,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACtC,cAAc,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YAElC,MAAM,MAAM,GAAe;gBACvB,EAAE,EAAE,aAAa;gBACjB,KAAK,EAAE,qBAAqB;gBAC5B,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,MAAM;gBACZ,oBAAoB,EAAE,GAAG,MAAM,CAAC,KAAK,0BAA0B;gBAC/D,UAAU,EAAE,MAAM;aACrB,CAAC;YAEF,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE;gBAChC,kBAAkB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE;aACjH,CAAC,CAAC;YAEH,wBAAwB,CAAC,GAAG,IAAI,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,wBAAwB,EAAE,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -13,19 +13,16 @@ describe("executeInApp (integration)", () => {
13
13
  jest.restoreAllMocks();
14
14
  });
15
15
  beforeEach(async () => {
16
- // Clean up any existing state
17
16
  for (const [key, app] of connectedApps.entries()) {
18
17
  try {
19
18
  app.ws.close();
20
19
  }
21
- catch { /* ignore */ }
20
+ catch { }
22
21
  connectedApps.delete(key);
23
22
  }
24
23
  pendingExecutions.clear();
25
- // Start fake CDP server
26
24
  server = new FakeCDPServer();
27
25
  const port = await server.start();
28
- // Create device info pointing to fake server
29
26
  device = {
30
27
  id: "test-device",
31
28
  title: "Hermes React Native",
@@ -35,14 +32,11 @@ describe("executeInApp (integration)", () => {
35
32
  webSocketDebuggerUrl: `${server.wsUrl}/inspector/device?page=1`,
36
33
  deviceName: "Test",
37
34
  };
38
- // Connect to the fake server with reconnection disabled
39
- // to avoid background reconnection attempts during cleanup
40
35
  await connectToDevice(device, port, {
41
36
  reconnectionConfig: { enabled: false, maxAttempts: 0, initialDelayMs: 0, maxDelayMs: 0, backoffMultiplier: 1 },
42
37
  });
43
38
  });
44
39
  afterEach(async () => {
45
- // Close all connected WebSockets and wait for them to fully close
46
40
  const closePromises = [];
47
41
  for (const [key, app] of connectedApps.entries()) {
48
42
  closePromises.push(new Promise((resolve) => {
@@ -104,17 +98,13 @@ describe("executeInApp (integration)", () => {
104
98
  server.respondWithValue("\\u{1F600}", "string");
105
99
  const result = await executeInApp("'\ud83d\ude00'", false, { timeoutMs: 5000 });
106
100
  expect(result.success).toBe(true);
107
- // The wire expression must be pure ASCII \u2014 emoji is rewritten to \u{...}
108
- // escape sequences inside the string literal so Hermes can compile it.
109
101
  const evalMsg = server.receivedMessages.find((m) => m.method === "Runtime.evaluate" &&
110
102
  m.params.expression.includes("\\u{1F600}"));
111
103
  expect(evalMsg).toBeDefined();
112
104
  const expr = evalMsg.params.expression;
113
- // The raw surrogate code units must NOT appear on the wire
114
105
  expect(/[\uD800-\uDFFF]/.test(expr)).toBe(false);
115
106
  });
116
107
  it("handles timeout gracefully", async () => {
117
- // Don't respond — causes timeout
118
108
  server.respondWithTimeout();
119
109
  const result = await executeInApp("slow()", false, { timeoutMs: 500, maxRetries: 0 });
120
110
  expect(result.success).toBe(false);
@@ -1 +1 @@
1
- {"version":3,"file":"execute-in-app.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/execute-in-app.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute-in-app.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/execute-in-app.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- // Device-gated: skips cleanly when no emulator/simulator is attached, matching
2
- // the pattern in connection-health.test.ts. CI has no device, and a real
3
- // tombstone cannot be provoked there — the parsing and filtering logic is
4
- // covered by the unit fixtures instead.
5
1
  import { describe, it, expect } from "@jest/globals";
6
2
  import { execSync } from "node:child_process";
7
3
  import { fetchAndroidLines, buildLogcatArgs } from "../../core/logSourceAndroid.js";
@@ -26,7 +22,6 @@ maybe("android native log acquisition (live device)", () => {
26
22
  }
27
23
  }, 30_000);
28
24
  it("does not blow the exec buffer on an unwindowed read", async () => {
29
- // A full dump is ~13.8MB against node's 1MiB default.
30
25
  const lines = await fetchAndroidLines({});
31
26
  expect(lines.length).toBeGreaterThan(0);
32
27
  }, 30_000);
@@ -1 +1 @@
1
- {"version":3,"file":"native-logs.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/native-logs.test.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,yEAAyE;AACzE,0EAA0E;AAC1E,wCAAwC;AAExC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEpF,SAAS,gBAAgB;IACrB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE5D,KAAK,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC,EAAE,MAAM,CAAC,CAAC;IAEX,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACjE,sDAAsD;QACtD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,MAAM,CAAC,CAAC;IAEX,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChF,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"native-logs.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/native-logs.test.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEpF,SAAS,gBAAgB;IACrB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AAE5D,KAAK,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACvD,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC,EAAE,MAAM,CAAC,CAAC;IAEX,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QAEjE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,MAAM,CAAC,CAAC;IAEX,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,GAAG,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAChF,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}