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
@@ -0,0 +1,78 @@
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ export function emulatorRunningDir(platform = process.platform, home = homedir()) {
5
+ if (platform === "darwin") {
6
+ return join(home, "Library", "Caches", "TemporaryItems", "avd", "running");
7
+ }
8
+ return null;
9
+ }
10
+ function parseIni(text) {
11
+ const out = {};
12
+ for (const line of text.split("\n")) {
13
+ const eq = line.indexOf("=");
14
+ if (eq <= 0)
15
+ continue;
16
+ out[line.slice(0, eq).trim()] = line.slice(eq + 1).trim();
17
+ }
18
+ return out;
19
+ }
20
+ export async function resolveEmulatorBridge(serial, runningDir) {
21
+ const match = /^emulator-(\d+)$/.exec(serial.trim());
22
+ if (!match) {
23
+ return {
24
+ ok: false,
25
+ reason: "not-emulator",
26
+ message: `'${serial}' is a physical Android device. Multi-touch needs the emulator's ` +
27
+ `gRPC bridge, which physical devices do not expose. Run the app on an emulator to use pinch.`,
28
+ };
29
+ }
30
+ const consolePort = match[1];
31
+ const dir = runningDir ?? emulatorRunningDir();
32
+ if (!dir) {
33
+ return {
34
+ ok: false,
35
+ reason: "unsupported-host",
36
+ message: `The emulator discovery directory is only verified on macOS, so pinch is not ` +
37
+ `enabled on ${process.platform} yet.`,
38
+ };
39
+ }
40
+ let entries;
41
+ try {
42
+ entries = await readdir(dir);
43
+ }
44
+ catch {
45
+ entries = [];
46
+ }
47
+ for (const name of entries) {
48
+ if (!name.startsWith("pid_") || !name.endsWith(".ini"))
49
+ continue;
50
+ let ini;
51
+ try {
52
+ ini = parseIni(await readFile(join(dir, name), "utf8"));
53
+ }
54
+ catch {
55
+ continue;
56
+ }
57
+ if (ini["port.serial"] !== consolePort)
58
+ continue;
59
+ const port = Number(ini["grpc.port"]);
60
+ const token = ini["grpc.token"];
61
+ if (!Number.isInteger(port) || port <= 0 || !token) {
62
+ return {
63
+ ok: false,
64
+ reason: "no-grpc-keys",
65
+ message: `${name} has no gRPC bridge (missing grpc.port/grpc.token). The emulator is ` +
66
+ `too old or was started with gRPC disabled; pinch needs a version that exposes it.`,
67
+ };
68
+ }
69
+ return { ok: true, bridge: { port, token, avdName: ini["avd.name"] } };
70
+ }
71
+ return {
72
+ ok: false,
73
+ reason: "no-discovery-file",
74
+ message: `No emulator discovery file in ${dir} matches console port ${consolePort}. ` +
75
+ `Expected a pid_*.ini with port.serial=${consolePort}.`,
76
+ };
77
+ }
78
+ //# sourceMappingURL=emulatorBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulatorBridge.js","sourceRoot":"","sources":["../../src/core/emulatorBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { EmulatorBridge } from "./emulatorBridge.js";
2
+ export interface TouchPoint {
3
+ x: number;
4
+ y: number;
5
+ identifier: number;
6
+ pressure: number;
7
+ }
8
+ export declare function encodeTouchEvent(touches: TouchPoint[]): Buffer;
9
+ export declare function frameGrpcMessage(message: Buffer): Buffer;
10
+ export declare function sendTouchFrames(bridge: EmulatorBridge, frames: TouchPoint[][], frameDelayMs: number): Promise<{
11
+ success: boolean;
12
+ error?: string;
13
+ }>;
14
+ //# sourceMappingURL=emulatorGrpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulatorGrpc.d.ts","sourceRoot":"","sources":["../../src/core/emulatorGrpc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,UAAU;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAqCD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAc9D;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAyDD,wBAAsB,eAAe,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,EAAE,EAAE,EACtB,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB/C"}
@@ -0,0 +1,93 @@
1
+ import http2 from "node:http2";
2
+ const SEND_TOUCH_PATH = "/android.emulation.control.EmulatorController/sendTouch";
3
+ const FRAME_TIMEOUT_MS = 5000;
4
+ function varint(value) {
5
+ const out = [];
6
+ let v = value;
7
+ while (v > 0x7f) {
8
+ out.push((v & 0x7f) | 0x80);
9
+ v >>>= 7;
10
+ }
11
+ out.push(v);
12
+ return Buffer.from(out);
13
+ }
14
+ function varintField(fieldNumber, value) {
15
+ return Buffer.concat([varint(fieldNumber << 3), varint(value)]);
16
+ }
17
+ function lengthField(fieldNumber, payload) {
18
+ return Buffer.concat([varint((fieldNumber << 3) | 2), varint(payload.length), payload]);
19
+ }
20
+ export function encodeTouchEvent(touches) {
21
+ return Buffer.concat(touches.map((t) => lengthField(1, Buffer.concat([
22
+ varintField(1, Math.max(0, Math.round(t.x))),
23
+ varintField(2, Math.max(0, Math.round(t.y))),
24
+ varintField(3, t.identifier),
25
+ varintField(4, t.pressure),
26
+ ]))));
27
+ }
28
+ export function frameGrpcMessage(message) {
29
+ const header = Buffer.alloc(5);
30
+ header.writeUInt8(0, 0);
31
+ header.writeUInt32BE(message.length, 1);
32
+ return Buffer.concat([header, message]);
33
+ }
34
+ function sendOneFrame(session, bridge, touches) {
35
+ return new Promise((resolve, reject) => {
36
+ const req = session.request({
37
+ ":method": "POST",
38
+ ":path": SEND_TOUCH_PATH,
39
+ "content-type": "application/grpc",
40
+ authorization: `Bearer ${bridge.token}`,
41
+ te: "trailers",
42
+ });
43
+ let status = null;
44
+ const timer = setTimeout(() => {
45
+ req.close();
46
+ reject(new Error("timed out waiting for sendTouch"));
47
+ }, FRAME_TIMEOUT_MS);
48
+ const readStatus = (headers) => {
49
+ const s = headers["grpc-status"];
50
+ if (s != null)
51
+ status = String(s);
52
+ };
53
+ req.on("response", readStatus);
54
+ req.on("trailers", readStatus);
55
+ req.on("error", (err) => {
56
+ clearTimeout(timer);
57
+ reject(err);
58
+ });
59
+ req.on("end", () => {
60
+ clearTimeout(timer);
61
+ if (status === null || status === "0")
62
+ resolve();
63
+ else
64
+ reject(new Error(`grpc-status ${status}`));
65
+ });
66
+ req.end(frameGrpcMessage(encodeTouchEvent(touches)));
67
+ req.resume();
68
+ });
69
+ }
70
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
71
+ export async function sendTouchFrames(bridge, frames, frameDelayMs) {
72
+ let session;
73
+ try {
74
+ session = http2.connect(`http://127.0.0.1:${bridge.port}`);
75
+ session.on("error", () => { });
76
+ for (let i = 0; i < frames.length; i++) {
77
+ await sendOneFrame(session, bridge, frames[i]);
78
+ if (i < frames.length - 1 && frameDelayMs > 0)
79
+ await sleep(frameDelayMs);
80
+ }
81
+ return { success: true };
82
+ }
83
+ catch (error) {
84
+ return {
85
+ success: false,
86
+ error: error instanceof Error ? error.message : String(error),
87
+ };
88
+ }
89
+ finally {
90
+ session?.close();
91
+ }
92
+ }
93
+ //# sourceMappingURL=emulatorGrpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulatorGrpc.js","sourceRoot":"","sources":["../../src/core/emulatorGrpc.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,7 @@
1
1
  export type EpochParam = number | "current" | "all" | undefined;
2
- /**
3
- * Render entries with a visible boundary wherever the app run changes, so the
4
- * agent can tell "this happened before the restart" from "this is the live run".
5
- */
6
2
  export declare function withRestartDividers<T extends {
7
3
  epoch: number;
8
4
  }>(entries: T[], render: (entry: T) => string): string;
9
- /**
10
- * Silence here is the failure mode: a capped, truncated view is otherwise
11
- * indistinguishable from a complete one.
12
- */
13
5
  export declare function evictionNotice(droppedCount: number, envVar: string): string;
14
- /**
15
- * Defaults to undefined (no filter) so pre-restart data is visible by default —
16
- * hiding it would reintroduce the exact symptom this feature fixes.
17
- */
18
6
  export declare function resolveEpochFilter(epoch: EpochParam, device?: string): number | undefined;
19
7
  //# sourceMappingURL=epochRender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"epochRender.d.ts","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAC7B,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIzF"}
1
+ {"version":3,"file":"epochRender.d.ts","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAMhE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAC7B,MAAM,CAWR;AAMD,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3E;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIzF"}
@@ -1,8 +1,4 @@
1
1
  import { resolveDeviceEpoch } from "./state.js";
2
- /**
3
- * Render entries with a visible boundary wherever the app run changes, so the
4
- * agent can tell "this happened before the restart" from "this is the live run".
5
- */
6
2
  export function withRestartDividers(entries, render) {
7
3
  const lines = [];
8
4
  let previousEpoch = null;
@@ -15,19 +11,11 @@ export function withRestartDividers(entries, render) {
15
11
  }
16
12
  return lines.join("\n");
17
13
  }
18
- /**
19
- * Silence here is the failure mode: a capped, truncated view is otherwise
20
- * indistinguishable from a complete one.
21
- */
22
14
  export function evictionNotice(droppedCount, envVar) {
23
15
  if (droppedCount <= 0)
24
16
  return "";
25
17
  return `\n\n[${droppedCount.toLocaleString("en-US")} older entries evicted — raise ${envVar} to retain more]`;
26
18
  }
27
- /**
28
- * Defaults to undefined (no filter) so pre-restart data is visible by default —
29
- * hiding it would reintroduce the exact symptom this feature fixes.
30
- */
31
19
  export function resolveEpochFilter(epoch, device) {
32
20
  if (epoch === undefined || epoch === "all")
33
21
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"epochRender.js","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIhD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAC/B,OAAY,EACZ,MAA4B;IAE5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,YAAoB,EAAE,MAAc;IAC/D,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,QAAQ,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,kCAAkC,MAAM,kBAAkB,CAAC;AAClH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAiB,EAAE,MAAe;IACjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"epochRender.js","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQhD,MAAM,UAAU,mBAAmB,CAC/B,OAAY,EACZ,MAA4B;IAE5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,YAAoB,EAAE,MAAc;IAC/D,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,QAAQ,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,kCAAkC,MAAM,kBAAkB,CAAC;AAClH,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAAC,KAAiB,EAAE,MAAe;IACjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -1,30 +1,9 @@
1
- /**
2
- * Error Screen Parser
3
- *
4
- * Parses React Native error screens from OCR text to extract structured error information.
5
- * Used as fallback when CDP connection cannot be established due to bundle errors.
6
- */
7
1
  import { BundleError } from "./bundle.js";
8
- /**
9
- * Result of parsing an error screen
10
- */
11
2
  export interface ParsedErrorScreen {
12
3
  found: boolean;
13
4
  error?: BundleError;
14
5
  rawText?: string;
15
6
  }
16
- /**
17
- * Parse OCR text from a React Native error screen (red screen of death)
18
- *
19
- * Common error formats:
20
- * - "Unable to resolve \"@/module\" from \"path/to/file.ts\""
21
- * - "SyntaxError: ..."
22
- * - "TransformError: ..."
23
- * - "Error: ..."
24
- */
25
7
  export declare function parseErrorScreenText(ocrText: string): ParsedErrorScreen;
26
- /**
27
- * Format parsed error for display
28
- */
29
8
  export declare function formatParsedError(parsed: ParsedErrorScreen): string;
30
9
  //# sourceMappingURL=errorScreenParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorScreenParser.d.ts","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA2FvE;AAiGD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAgCnE"}
1
+ {"version":3,"file":"errorScreenParser.d.ts","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA2FvE;AAoGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAgCnE"}
@@ -1,24 +1,8 @@
1
- /**
2
- * Error Screen Parser
3
- *
4
- * Parses React Native error screens from OCR text to extract structured error information.
5
- * Used as fallback when CDP connection cannot be established due to bundle errors.
6
- */
7
- /**
8
- * Parse OCR text from a React Native error screen (red screen of death)
9
- *
10
- * Common error formats:
11
- * - "Unable to resolve \"@/module\" from \"path/to/file.ts\""
12
- * - "SyntaxError: ..."
13
- * - "TransformError: ..."
14
- * - "Error: ..."
15
- */
16
1
  export function parseErrorScreenText(ocrText) {
17
2
  if (!ocrText || ocrText.trim().length === 0) {
18
3
  return { found: false };
19
4
  }
20
5
  const normalizedText = normalizeOcrText(ocrText);
21
- // Check if this looks like an error screen
22
6
  if (!looksLikeErrorScreen(normalizedText)) {
23
7
  return { found: false, rawText: ocrText };
24
8
  }
@@ -27,23 +11,18 @@ export function parseErrorScreenText(ocrText) {
27
11
  type: "other",
28
12
  message: ""
29
13
  };
30
- // Try to parse different error types
31
- // 1. Module resolution errors: "Unable to resolve \"module\" from \"file\""
32
14
  const resolutionMatch = normalizedText.match(/unable\s+to\s+resolve\s+["']([^"']+)["']\s+from\s+["']([^"']+)["']/i);
33
15
  if (resolutionMatch) {
34
16
  error.type = "resolution";
35
17
  error.message = `Unable to resolve "${resolutionMatch[1]}"`;
36
18
  error.file = resolutionMatch[2];
37
- // Try to extract import stack
38
19
  error.importStack = extractImportStack(normalizedText);
39
20
  return { found: true, error, rawText: ocrText };
40
21
  }
41
- // 2. Syntax errors
42
22
  const syntaxMatch = normalizedText.match(/syntax\s*error[:\s]+(.+?)(?:\n|$)/i);
43
23
  if (syntaxMatch) {
44
24
  error.type = "syntax";
45
25
  error.message = `SyntaxError: ${syntaxMatch[1].trim()}`;
46
- // Try to extract file location
47
26
  const locationInfo = extractFileLocation(normalizedText);
48
27
  if (locationInfo) {
49
28
  error.file = locationInfo.file;
@@ -52,7 +31,6 @@ export function parseErrorScreenText(ocrText) {
52
31
  }
53
32
  return { found: true, error, rawText: ocrText };
54
33
  }
55
- // 3. Transform errors (Babel/Metro transforms)
56
34
  const transformMatch = normalizedText.match(/transform\s*error[:\s]+(.+?)(?:\n|$)/i);
57
35
  if (transformMatch) {
58
36
  error.type = "transform";
@@ -65,7 +43,6 @@ export function parseErrorScreenText(ocrText) {
65
43
  }
66
44
  return { found: true, error, rawText: ocrText };
67
45
  }
68
- // 4. Generic error pattern: "Error: message"
69
46
  const errorMatch = normalizedText.match(/error[:\s]+(.+?)(?:\n|$)/i);
70
47
  if (errorMatch) {
71
48
  error.message = errorMatch[1].trim();
@@ -77,33 +54,22 @@ export function parseErrorScreenText(ocrText) {
77
54
  }
78
55
  return { found: true, error, rawText: ocrText };
79
56
  }
80
- // 5. Fallback: use the entire text as the error message
81
- // Truncate if too long
82
57
  const maxLength = 500;
83
58
  error.message = normalizedText.length > maxLength
84
59
  ? normalizedText.substring(0, maxLength) + "..."
85
60
  : normalizedText;
86
61
  return { found: true, error, rawText: ocrText };
87
62
  }
88
- /**
89
- * Normalize OCR text by fixing common OCR errors and standardizing whitespace
90
- */
91
63
  function normalizeOcrText(text) {
92
64
  return text
93
- // Replace multiple whitespace with single space
94
65
  .replace(/\s+/g, " ")
95
- // Fix common OCR misreadings
96
66
  .replace(/[|l]mport/gi, "import")
97
67
  .replace(/reso[|l]ve/gi, "resolve")
98
68
  .replace(/unab[|l]e/gi, "unable")
99
69
  .replace(/modu[|l]e/gi, "module")
100
- // Normalize quotes
101
70
  .replace(/[""'']/g, '"')
102
71
  .trim();
103
72
  }
104
- /**
105
- * Check if OCR text looks like a React Native error screen
106
- */
107
73
  function looksLikeErrorScreen(text) {
108
74
  const lowerText = text.toLowerCase();
109
75
  const errorIndicators = [
@@ -125,11 +91,7 @@ function looksLikeErrorScreen(text) {
125
91
  ];
126
92
  return errorIndicators.some(indicator => lowerText.includes(indicator));
127
93
  }
128
- /**
129
- * Extract file location (file:line:column) from text
130
- */
131
94
  function extractFileLocation(text) {
132
- // Pattern: /path/to/file.tsx:123:45 or /path/to/file.tsx:123
133
95
  const locationMatch = text.match(/([a-zA-Z0-9_\-./\\@]+\.(tsx?|jsx?|mjs|cjs)):(\d+)(?::(\d+))?/i);
134
96
  if (locationMatch) {
135
97
  return {
@@ -138,36 +100,24 @@ function extractFileLocation(text) {
138
100
  column: locationMatch[4] ? parseInt(locationMatch[4], 10) : undefined
139
101
  };
140
102
  }
141
- // Try to find just a file path
142
103
  const fileMatch = text.match(/([a-zA-Z0-9_\-./\\@]+\.(tsx?|jsx?|mjs|cjs))/i);
143
104
  if (fileMatch) {
144
105
  return { file: fileMatch[1] };
145
106
  }
146
107
  return null;
147
108
  }
148
- /**
149
- * Extract import stack from error text
150
- */
151
109
  function extractImportStack(text) {
152
110
  const stack = [];
153
- // Look for patterns like:
154
- // - "import from file.tsx"
155
- // - "app/hooks/useAuth.ts"
156
- // - file references in the text
157
111
  const filePattern = /([a-zA-Z0-9_\-./\\@]+\.(tsx?|jsx?|mjs|cjs))/gi;
158
112
  let match;
159
113
  while ((match = filePattern.exec(text)) !== null) {
160
114
  const file = match[1];
161
- // Avoid duplicates
162
115
  if (!stack.includes(file)) {
163
116
  stack.push(file);
164
117
  }
165
118
  }
166
119
  return stack.length > 0 ? stack : undefined;
167
120
  }
168
- /**
169
- * Format parsed error for display
170
- */
171
121
  export function formatParsedError(parsed) {
172
122
  if (!parsed.found || !parsed.error) {
173
123
  return "No error detected in screenshot.";
@@ -1 +1 @@
1
- {"version":3,"file":"errorScreenParser.js","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorScreenParser.js","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,4 @@
1
- /**
2
- * Marker class for errors caused by invalid agent input (wrong device name,
3
- * missing required predicate, ambiguous match, etc). H2 (Step 9 in the
4
- * 2026-05-15 plan): the top-level catch in index.ts skips PostHog
5
- * captureException for these so error tracking surfaces real product bugs,
6
- * not validation noise (~13% of recent dashboard volume).
7
- *
8
- * The trade-off vs regex-matching the message: this is self-documenting at
9
- * the throw site and survives message reformatting / translation.
10
- */
11
1
  export declare class UserInputError extends Error {
12
- /**
13
- * Optional low-cardinality tag (e.g. "device_mismatch") forwarded to
14
- * telemetry's error-context column. Lets the dashboard cluster validation
15
- * failures by cause instead of regex-matching free-form messages.
16
- */
17
2
  readonly context?: string;
18
3
  constructor(message: string, context?: string);
19
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACrC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAKhD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAUA,qBAAa,cAAe,SAAQ,KAAK;IAMrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAKhD"}
@@ -1,19 +1,4 @@
1
- /**
2
- * Marker class for errors caused by invalid agent input (wrong device name,
3
- * missing required predicate, ambiguous match, etc). H2 (Step 9 in the
4
- * 2026-05-15 plan): the top-level catch in index.ts skips PostHog
5
- * captureException for these so error tracking surfaces real product bugs,
6
- * not validation noise (~13% of recent dashboard volume).
7
- *
8
- * The trade-off vs regex-matching the message: this is self-documenting at
9
- * the throw site and survives message reformatting / translation.
10
- */
11
1
  export class UserInputError extends Error {
12
- /**
13
- * Optional low-cardinality tag (e.g. "device_mismatch") forwarded to
14
- * telemetry's error-context column. Lets the dashboard cluster validation
15
- * failures by cause instead of regex-matching free-form messages.
16
- */
17
2
  context;
18
3
  constructor(message, context) {
19
4
  super(message);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACrC;;;;OAIG;IACM,OAAO,CAAU;IAE1B,YAAY,OAAe,EAAE,OAAgB;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAM5B,OAAO,CAAU;IAE1B,YAAY,OAAe,EAAE,OAAgB;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ"}
@@ -5,14 +5,5 @@ export type EscapeResult = {
5
5
  ok: false;
6
6
  reason: string;
7
7
  };
8
- /**
9
- * Walk a JS source string and rewrite non-ASCII-printable code points that
10
- * occur inside string literals (single quote, double quote, template literal
11
- * cooked body) to \uXXXX or \u{XXXXX} escape sequences. Code in regular
12
- * expression bodies, comments, identifiers, and template-literal `${...}`
13
- * substitution expressions is left untouched.
14
- *
15
- * Returns a structured error on unbalanced quotes / unterminated literals.
16
- */
17
8
  export declare function escapeNonAsciiInStringLiterals(src: string): EscapeResult;
18
9
  //# sourceMappingURL=escapeNonAscii.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"escapeNonAscii.d.ts","sourceRoot":"","sources":["../../src/core/escapeNonAscii.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA4B5F;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAuVxE"}
1
+ {"version":3,"file":"escapeNonAscii.d.ts","sourceRoot":"","sources":["../../src/core/escapeNonAscii.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAqC5F,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAuVxE"}