execbro 0.0.1-reserve → 1.10.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/LICENSE +32 -0
  2. package/README.md +496 -0
  3. package/build/__tests__/helpers/fake-cdp-server.d.ts +56 -0
  4. package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -0
  5. package/build/__tests__/helpers/fake-cdp-server.js +120 -0
  6. package/build/__tests__/helpers/fake-cdp-server.js.map +1 -0
  7. package/build/__tests__/helpers/tap-test-helpers.d.ts +36 -0
  8. package/build/__tests__/helpers/tap-test-helpers.d.ts.map +1 -0
  9. package/build/__tests__/helpers/tap-test-helpers.js +130 -0
  10. package/build/__tests__/helpers/tap-test-helpers.js.map +1 -0
  11. package/build/__tests__/integration/auto-reconnect.test.d.ts +2 -0
  12. package/build/__tests__/integration/auto-reconnect.test.d.ts.map +1 -0
  13. package/build/__tests__/integration/auto-reconnect.test.js +118 -0
  14. package/build/__tests__/integration/auto-reconnect.test.js.map +1 -0
  15. package/build/__tests__/integration/connection-health.test.d.ts +2 -0
  16. package/build/__tests__/integration/connection-health.test.d.ts.map +1 -0
  17. package/build/__tests__/integration/connection-health.test.js +157 -0
  18. package/build/__tests__/integration/connection-health.test.js.map +1 -0
  19. package/build/__tests__/integration/execute-in-app.test.d.ts +2 -0
  20. package/build/__tests__/integration/execute-in-app.test.d.ts.map +1 -0
  21. package/build/__tests__/integration/execute-in-app.test.js +124 -0
  22. package/build/__tests__/integration/execute-in-app.test.js.map +1 -0
  23. package/build/__tests__/integration/per-call-timeout.test.d.ts +2 -0
  24. package/build/__tests__/integration/per-call-timeout.test.d.ts.map +1 -0
  25. package/build/__tests__/integration/per-call-timeout.test.js +103 -0
  26. package/build/__tests__/integration/per-call-timeout.test.js.map +1 -0
  27. package/build/__tests__/integration/tap-strategies.test.d.ts +2 -0
  28. package/build/__tests__/integration/tap-strategies.test.d.ts.map +1 -0
  29. package/build/__tests__/integration/tap-strategies.test.js +330 -0
  30. package/build/__tests__/integration/tap-strategies.test.js.map +1 -0
  31. package/build/__tests__/integration/tools.test.d.ts +2 -0
  32. package/build/__tests__/integration/tools.test.d.ts.map +1 -0
  33. package/build/__tests__/integration/tools.test.js +227 -0
  34. package/build/__tests__/integration/tools.test.js.map +1 -0
  35. package/build/__tests__/setup.d.ts +2 -0
  36. package/build/__tests__/setup.d.ts.map +1 -0
  37. package/build/__tests__/setup.js +15 -0
  38. package/build/__tests__/setup.js.map +1 -0
  39. package/build/__tests__/unit/androidEmulatorAvds.test.d.ts +2 -0
  40. package/build/__tests__/unit/androidEmulatorAvds.test.d.ts.map +1 -0
  41. package/build/__tests__/unit/androidEmulatorAvds.test.js +98 -0
  42. package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -0
  43. package/build/__tests__/unit/buildToken.test.d.ts +2 -0
  44. package/build/__tests__/unit/buildToken.test.d.ts.map +1 -0
  45. package/build/__tests__/unit/buildToken.test.js +22 -0
  46. package/build/__tests__/unit/buildToken.test.js.map +1 -0
  47. package/build/__tests__/unit/bundle.test.d.ts +2 -0
  48. package/build/__tests__/unit/bundle.test.d.ts.map +1 -0
  49. package/build/__tests__/unit/bundle.test.js +53 -0
  50. package/build/__tests__/unit/bundle.test.js.map +1 -0
  51. package/build/__tests__/unit/burst.test.d.ts +2 -0
  52. package/build/__tests__/unit/burst.test.d.ts.map +1 -0
  53. package/build/__tests__/unit/burst.test.js +54 -0
  54. package/build/__tests__/unit/burst.test.js.map +1 -0
  55. package/build/__tests__/unit/connection-health.test.d.ts +2 -0
  56. package/build/__tests__/unit/connection-health.test.d.ts.map +1 -0
  57. package/build/__tests__/unit/connection-health.test.js +38 -0
  58. package/build/__tests__/unit/connection-health.test.js.map +1 -0
  59. package/build/__tests__/unit/debugGlobals.test.d.ts +2 -0
  60. package/build/__tests__/unit/debugGlobals.test.d.ts.map +1 -0
  61. package/build/__tests__/unit/debugGlobals.test.js +14 -0
  62. package/build/__tests__/unit/debugGlobals.test.js.map +1 -0
  63. package/build/__tests__/unit/deviceDiscovery.test.d.ts +2 -0
  64. package/build/__tests__/unit/deviceDiscovery.test.d.ts.map +1 -0
  65. package/build/__tests__/unit/deviceDiscovery.test.js +119 -0
  66. package/build/__tests__/unit/deviceDiscovery.test.js.map +1 -0
  67. package/build/__tests__/unit/deviceResolver.test.d.ts +2 -0
  68. package/build/__tests__/unit/deviceResolver.test.d.ts.map +1 -0
  69. package/build/__tests__/unit/deviceResolver.test.js +261 -0
  70. package/build/__tests__/unit/deviceResolver.test.js.map +1 -0
  71. package/build/__tests__/unit/escapeNonAscii.test.d.ts +2 -0
  72. package/build/__tests__/unit/escapeNonAscii.test.d.ts.map +1 -0
  73. package/build/__tests__/unit/escapeNonAscii.test.js +76 -0
  74. package/build/__tests__/unit/escapeNonAscii.test.js.map +1 -0
  75. package/build/__tests__/unit/exec.test.d.ts +2 -0
  76. package/build/__tests__/unit/exec.test.d.ts.map +1 -0
  77. package/build/__tests__/unit/exec.test.js +54 -0
  78. package/build/__tests__/unit/exec.test.js.map +1 -0
  79. package/build/__tests__/unit/executor.test.d.ts +2 -0
  80. package/build/__tests__/unit/executor.test.d.ts.map +1 -0
  81. package/build/__tests__/unit/executor.test.js +220 -0
  82. package/build/__tests__/unit/executor.test.js.map +1 -0
  83. package/build/__tests__/unit/failureArtifact.test.d.ts +2 -0
  84. package/build/__tests__/unit/failureArtifact.test.d.ts.map +1 -0
  85. package/build/__tests__/unit/failureArtifact.test.js +207 -0
  86. package/build/__tests__/unit/failureArtifact.test.js.map +1 -0
  87. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts +2 -0
  88. package/build/__tests__/unit/fastRefreshRecorder.test.d.ts.map +1 -0
  89. package/build/__tests__/unit/fastRefreshRecorder.test.js +68 -0
  90. package/build/__tests__/unit/fastRefreshRecorder.test.js.map +1 -0
  91. package/build/__tests__/unit/fastRefreshTools.test.d.ts +2 -0
  92. package/build/__tests__/unit/fastRefreshTools.test.d.ts.map +1 -0
  93. package/build/__tests__/unit/fastRefreshTools.test.js +112 -0
  94. package/build/__tests__/unit/fastRefreshTools.test.js.map +1 -0
  95. package/build/__tests__/unit/fiberMatch.test.d.ts +2 -0
  96. package/build/__tests__/unit/fiberMatch.test.d.ts.map +1 -0
  97. package/build/__tests__/unit/fiberMatch.test.js +114 -0
  98. package/build/__tests__/unit/fiberMatch.test.js.map +1 -0
  99. package/build/__tests__/unit/fingerprint.test.d.ts +2 -0
  100. package/build/__tests__/unit/fingerprint.test.d.ts.map +1 -0
  101. package/build/__tests__/unit/fingerprint.test.js +99 -0
  102. package/build/__tests__/unit/fingerprint.test.js.map +1 -0
  103. package/build/__tests__/unit/focusedInput.test.d.ts +2 -0
  104. package/build/__tests__/unit/focusedInput.test.d.ts.map +1 -0
  105. package/build/__tests__/unit/focusedInput.test.js +58 -0
  106. package/build/__tests__/unit/focusedInput.test.js.map +1 -0
  107. package/build/__tests__/unit/focusedInputTools.test.d.ts +2 -0
  108. package/build/__tests__/unit/focusedInputTools.test.d.ts.map +1 -0
  109. package/build/__tests__/unit/focusedInputTools.test.js +79 -0
  110. package/build/__tests__/unit/focusedInputTools.test.js.map +1 -0
  111. package/build/__tests__/unit/iconSemantics.test.d.ts +2 -0
  112. package/build/__tests__/unit/iconSemantics.test.d.ts.map +1 -0
  113. package/build/__tests__/unit/iconSemantics.test.js +80 -0
  114. package/build/__tests__/unit/iconSemantics.test.js.map +1 -0
  115. package/build/__tests__/unit/imageBuffer.test.d.ts +2 -0
  116. package/build/__tests__/unit/imageBuffer.test.d.ts.map +1 -0
  117. package/build/__tests__/unit/imageBuffer.test.js +128 -0
  118. package/build/__tests__/unit/imageBuffer.test.js.map +1 -0
  119. package/build/__tests__/unit/logs.test.d.ts +2 -0
  120. package/build/__tests__/unit/logs.test.d.ts.map +1 -0
  121. package/build/__tests__/unit/logs.test.js +90 -0
  122. package/build/__tests__/unit/logs.test.js.map +1 -0
  123. package/build/__tests__/unit/measureComponent.test.d.ts +2 -0
  124. package/build/__tests__/unit/measureComponent.test.d.ts.map +1 -0
  125. package/build/__tests__/unit/measureComponent.test.js +66 -0
  126. package/build/__tests__/unit/measureComponent.test.js.map +1 -0
  127. package/build/__tests__/unit/measureComponentTools.test.d.ts +2 -0
  128. package/build/__tests__/unit/measureComponentTools.test.d.ts.map +1 -0
  129. package/build/__tests__/unit/measureComponentTools.test.js +94 -0
  130. package/build/__tests__/unit/measureComponentTools.test.js.map +1 -0
  131. package/build/__tests__/unit/metro.test.d.ts +2 -0
  132. package/build/__tests__/unit/metro.test.d.ts.map +1 -0
  133. package/build/__tests__/unit/metro.test.js +61 -0
  134. package/build/__tests__/unit/metro.test.js.map +1 -0
  135. package/build/__tests__/unit/network.test.d.ts +2 -0
  136. package/build/__tests__/unit/network.test.d.ts.map +1 -0
  137. package/build/__tests__/unit/network.test.js +102 -0
  138. package/build/__tests__/unit/network.test.js.map +1 -0
  139. package/build/__tests__/unit/networkInterceptor.test.d.ts +2 -0
  140. package/build/__tests__/unit/networkInterceptor.test.d.ts.map +1 -0
  141. package/build/__tests__/unit/networkInterceptor.test.js +104 -0
  142. package/build/__tests__/unit/networkInterceptor.test.js.map +1 -0
  143. package/build/__tests__/unit/probe.test.d.ts +2 -0
  144. package/build/__tests__/unit/probe.test.d.ts.map +1 -0
  145. package/build/__tests__/unit/probe.test.js +62 -0
  146. package/build/__tests__/unit/probe.test.js.map +1 -0
  147. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts +2 -0
  148. package/build/__tests__/unit/rnGlobalsBootstrap.test.d.ts.map +1 -0
  149. package/build/__tests__/unit/rnGlobalsBootstrap.test.js +29 -0
  150. package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -0
  151. package/build/__tests__/unit/screenState.test.d.ts +2 -0
  152. package/build/__tests__/unit/screenState.test.d.ts.map +1 -0
  153. package/build/__tests__/unit/screenState.test.js +384 -0
  154. package/build/__tests__/unit/screenState.test.js.map +1 -0
  155. package/build/__tests__/unit/screenshot-diff.test.d.ts +2 -0
  156. package/build/__tests__/unit/screenshot-diff.test.d.ts.map +1 -0
  157. package/build/__tests__/unit/screenshot-diff.test.js +97 -0
  158. package/build/__tests__/unit/screenshot-diff.test.js.map +1 -0
  159. package/build/__tests__/unit/tap-evidence.test.d.ts +2 -0
  160. package/build/__tests__/unit/tap-evidence.test.d.ts.map +1 -0
  161. package/build/__tests__/unit/tap-evidence.test.js +89 -0
  162. package/build/__tests__/unit/tap-evidence.test.js.map +1 -0
  163. package/build/__tests__/unit/tap.test.d.ts +2 -0
  164. package/build/__tests__/unit/tap.test.d.ts.map +1 -0
  165. package/build/__tests__/unit/tap.test.js +767 -0
  166. package/build/__tests__/unit/tap.test.js.map +1 -0
  167. package/build/__tests__/unit/timeoutClamp.test.d.ts +2 -0
  168. package/build/__tests__/unit/timeoutClamp.test.d.ts.map +1 -0
  169. package/build/__tests__/unit/timeoutClamp.test.js +17 -0
  170. package/build/__tests__/unit/timeoutClamp.test.js.map +1 -0
  171. package/build/__tests__/unit/toolDescriptions.test.d.ts +2 -0
  172. package/build/__tests__/unit/toolDescriptions.test.d.ts.map +1 -0
  173. package/build/__tests__/unit/toolDescriptions.test.js +145 -0
  174. package/build/__tests__/unit/toolDescriptions.test.js.map +1 -0
  175. package/build/__tests__/unit/transportClassify.test.d.ts +2 -0
  176. package/build/__tests__/unit/transportClassify.test.d.ts.map +1 -0
  177. package/build/__tests__/unit/transportClassify.test.js +60 -0
  178. package/build/__tests__/unit/transportClassify.test.js.map +1 -0
  179. package/build/__tests__/unit/verifyAction.test.d.ts +2 -0
  180. package/build/__tests__/unit/verifyAction.test.d.ts.map +1 -0
  181. package/build/__tests__/unit/verifyAction.test.js +26 -0
  182. package/build/__tests__/unit/verifyAction.test.js.map +1 -0
  183. package/build/core/android.d.ts +299 -0
  184. package/build/core/android.d.ts.map +1 -0
  185. package/build/core/android.js +1582 -0
  186. package/build/core/android.js.map +1 -0
  187. package/build/core/appDetection.d.ts +20 -0
  188. package/build/core/appDetection.d.ts.map +1 -0
  189. package/build/core/appDetection.js +167 -0
  190. package/build/core/appDetection.js.map +1 -0
  191. package/build/core/bundle.d.ts +49 -0
  192. package/build/core/bundle.d.ts.map +1 -0
  193. package/build/core/bundle.js +356 -0
  194. package/build/core/bundle.js.map +1 -0
  195. package/build/core/componentSearch.d.ts +41 -0
  196. package/build/core/componentSearch.d.ts.map +1 -0
  197. package/build/core/componentSearch.js +588 -0
  198. package/build/core/componentSearch.js.map +1 -0
  199. package/build/core/componentTree.d.ts +13 -0
  200. package/build/core/componentTree.d.ts.map +1 -0
  201. package/build/core/componentTree.js +275 -0
  202. package/build/core/componentTree.js.map +1 -0
  203. package/build/core/config.d.ts +9 -0
  204. package/build/core/config.d.ts.map +1 -0
  205. package/build/core/config.js +28 -0
  206. package/build/core/config.js.map +1 -0
  207. package/build/core/connection.d.ts +102 -0
  208. package/build/core/connection.d.ts.map +1 -0
  209. package/build/core/connection.js +1710 -0
  210. package/build/core/connection.js.map +1 -0
  211. package/build/core/connectionState.d.ts +122 -0
  212. package/build/core/connectionState.d.ts.map +1 -0
  213. package/build/core/connectionState.js +313 -0
  214. package/build/core/connectionState.js.map +1 -0
  215. package/build/core/debugGlobals.d.ts +6 -0
  216. package/build/core/debugGlobals.d.ts.map +1 -0
  217. package/build/core/debugGlobals.js +370 -0
  218. package/build/core/debugGlobals.js.map +1 -0
  219. package/build/core/deviceDiscovery.d.ts +52 -0
  220. package/build/core/deviceDiscovery.d.ts.map +1 -0
  221. package/build/core/deviceDiscovery.js +74 -0
  222. package/build/core/deviceDiscovery.js.map +1 -0
  223. package/build/core/deviceResolver.d.ts +44 -0
  224. package/build/core/deviceResolver.d.ts.map +1 -0
  225. package/build/core/deviceResolver.js +225 -0
  226. package/build/core/deviceResolver.js.map +1 -0
  227. package/build/core/errorScreenParser.d.ts +30 -0
  228. package/build/core/errorScreenParser.d.ts.map +1 -0
  229. package/build/core/errorScreenParser.js +198 -0
  230. package/build/core/errorScreenParser.js.map +1 -0
  231. package/build/core/errors.d.ts +14 -0
  232. package/build/core/errors.d.ts.map +1 -0
  233. package/build/core/errors.js +17 -0
  234. package/build/core/errors.js.map +1 -0
  235. package/build/core/escapeNonAscii.d.ts +18 -0
  236. package/build/core/escapeNonAscii.d.ts.map +1 -0
  237. package/build/core/escapeNonAscii.js +352 -0
  238. package/build/core/escapeNonAscii.js.map +1 -0
  239. package/build/core/exec.d.ts +22 -0
  240. package/build/core/exec.d.ts.map +1 -0
  241. package/build/core/exec.js +54 -0
  242. package/build/core/exec.js.map +1 -0
  243. package/build/core/executor.d.ts +9 -0
  244. package/build/core/executor.d.ts.map +1 -0
  245. package/build/core/executor.js +12 -0
  246. package/build/core/executor.js.map +1 -0
  247. package/build/core/failureArtifact.d.ts +120 -0
  248. package/build/core/failureArtifact.d.ts.map +1 -0
  249. package/build/core/failureArtifact.js +113 -0
  250. package/build/core/failureArtifact.js.map +1 -0
  251. package/build/core/fastRefreshRecorder.d.ts +23 -0
  252. package/build/core/fastRefreshRecorder.d.ts.map +1 -0
  253. package/build/core/fastRefreshRecorder.js +83 -0
  254. package/build/core/fastRefreshRecorder.js.map +1 -0
  255. package/build/core/fastRefreshTools.d.ts +19 -0
  256. package/build/core/fastRefreshTools.d.ts.map +1 -0
  257. package/build/core/fastRefreshTools.js +71 -0
  258. package/build/core/fastRefreshTools.js.map +1 -0
  259. package/build/core/feedback.d.ts +18 -0
  260. package/build/core/feedback.d.ts.map +1 -0
  261. package/build/core/feedback.js +73 -0
  262. package/build/core/feedback.js.map +1 -0
  263. package/build/core/fiberMatch.d.ts +25 -0
  264. package/build/core/fiberMatch.d.ts.map +1 -0
  265. package/build/core/fiberMatch.js +35 -0
  266. package/build/core/fiberMatch.js.map +1 -0
  267. package/build/core/fingerprint.d.ts +4 -0
  268. package/build/core/fingerprint.d.ts.map +1 -0
  269. package/build/core/fingerprint.js +47 -0
  270. package/build/core/fingerprint.js.map +1 -0
  271. package/build/core/focusedInput.d.ts +27 -0
  272. package/build/core/focusedInput.d.ts.map +1 -0
  273. package/build/core/focusedInput.js +110 -0
  274. package/build/core/focusedInput.js.map +1 -0
  275. package/build/core/focusedInputTools.d.ts +21 -0
  276. package/build/core/focusedInputTools.d.ts.map +1 -0
  277. package/build/core/focusedInputTools.js +51 -0
  278. package/build/core/focusedInputTools.js.map +1 -0
  279. package/build/core/format.d.ts +8 -0
  280. package/build/core/format.d.ts.map +1 -0
  281. package/build/core/format.js +34 -0
  282. package/build/core/format.js.map +1 -0
  283. package/build/core/guides.d.ts +21 -0
  284. package/build/core/guides.d.ts.map +1 -0
  285. package/build/core/guides.js +397 -0
  286. package/build/core/guides.js.map +1 -0
  287. package/build/core/iconSemantics.d.ts +18 -0
  288. package/build/core/iconSemantics.d.ts.map +1 -0
  289. package/build/core/iconSemantics.js +114 -0
  290. package/build/core/iconSemantics.js.map +1 -0
  291. package/build/core/imageBuffer.d.ts +37 -0
  292. package/build/core/imageBuffer.d.ts.map +1 -0
  293. package/build/core/imageBuffer.js +58 -0
  294. package/build/core/imageBuffer.js.map +1 -0
  295. package/build/core/index.d.ts +37 -0
  296. package/build/core/index.d.ts.map +1 -0
  297. package/build/core/index.js +66 -0
  298. package/build/core/index.js.map +1 -0
  299. package/build/core/inspector.d.ts +55 -0
  300. package/build/core/inspector.d.ts.map +1 -0
  301. package/build/core/inspector.js +603 -0
  302. package/build/core/inspector.js.map +1 -0
  303. package/build/core/ios.d.ts +263 -0
  304. package/build/core/ios.d.ts.map +1 -0
  305. package/build/core/ios.js +1705 -0
  306. package/build/core/ios.js.map +1 -0
  307. package/build/core/jsExecute.d.ts +62 -0
  308. package/build/core/jsExecute.d.ts.map +1 -0
  309. package/build/core/jsExecute.js +696 -0
  310. package/build/core/jsExecute.js.map +1 -0
  311. package/build/core/license.d.ts +48 -0
  312. package/build/core/license.d.ts.map +1 -0
  313. package/build/core/license.js +267 -0
  314. package/build/core/license.js.map +1 -0
  315. package/build/core/logbox.d.ts +58 -0
  316. package/build/core/logbox.d.ts.map +1 -0
  317. package/build/core/logbox.js +330 -0
  318. package/build/core/logbox.js.map +1 -0
  319. package/build/core/logs.d.ts +44 -0
  320. package/build/core/logs.d.ts.map +1 -0
  321. package/build/core/logs.js +149 -0
  322. package/build/core/logs.js.map +1 -0
  323. package/build/core/measureComponent.d.ts +19 -0
  324. package/build/core/measureComponent.d.ts.map +1 -0
  325. package/build/core/measureComponent.js +94 -0
  326. package/build/core/measureComponent.js.map +1 -0
  327. package/build/core/measureComponentTools.d.ts +6 -0
  328. package/build/core/measureComponentTools.d.ts.map +1 -0
  329. package/build/core/measureComponentTools.js +43 -0
  330. package/build/core/measureComponentTools.js.map +1 -0
  331. package/build/core/metro.d.ts +31 -0
  332. package/build/core/metro.d.ts.map +1 -0
  333. package/build/core/metro.js +124 -0
  334. package/build/core/metro.js.map +1 -0
  335. package/build/core/nativeOnlyHints.d.ts +14 -0
  336. package/build/core/nativeOnlyHints.d.ts.map +1 -0
  337. package/build/core/nativeOnlyHints.js +58 -0
  338. package/build/core/nativeOnlyHints.js.map +1 -0
  339. package/build/core/network.d.ts +43 -0
  340. package/build/core/network.d.ts.map +1 -0
  341. package/build/core/network.js +217 -0
  342. package/build/core/network.js.map +1 -0
  343. package/build/core/networkInterceptor.d.ts +30 -0
  344. package/build/core/networkInterceptor.d.ts.map +1 -0
  345. package/build/core/networkInterceptor.js +211 -0
  346. package/build/core/networkInterceptor.js.map +1 -0
  347. package/build/core/ocr.d.ts +87 -0
  348. package/build/core/ocr.d.ts.map +1 -0
  349. package/build/core/ocr.js +335 -0
  350. package/build/core/ocr.js.map +1 -0
  351. package/build/core/paths.d.ts +2 -0
  352. package/build/core/paths.d.ts.map +1 -0
  353. package/build/core/paths.js +28 -0
  354. package/build/core/paths.js.map +1 -0
  355. package/build/core/posthog.d.ts +5 -0
  356. package/build/core/posthog.d.ts.map +1 -0
  357. package/build/core/posthog.js +52 -0
  358. package/build/core/posthog.js.map +1 -0
  359. package/build/core/pressables.d.ts +46 -0
  360. package/build/core/pressables.d.ts.map +1 -0
  361. package/build/core/pressables.js +1719 -0
  362. package/build/core/pressables.js.map +1 -0
  363. package/build/core/probe.d.ts +12 -0
  364. package/build/core/probe.d.ts.map +1 -0
  365. package/build/core/probe.js +56 -0
  366. package/build/core/probe.js.map +1 -0
  367. package/build/core/redux.d.ts +22 -0
  368. package/build/core/redux.d.ts.map +1 -0
  369. package/build/core/redux.js +116 -0
  370. package/build/core/redux.js.map +1 -0
  371. package/build/core/register.d.ts +8 -0
  372. package/build/core/register.d.ts.map +1 -0
  373. package/build/core/register.js +202 -0
  374. package/build/core/register.js.map +1 -0
  375. package/build/core/rnGlobalsBootstrap.d.ts +16 -0
  376. package/build/core/rnGlobalsBootstrap.d.ts.map +1 -0
  377. package/build/core/rnGlobalsBootstrap.js +116 -0
  378. package/build/core/rnGlobalsBootstrap.js.map +1 -0
  379. package/build/core/screenLayout.d.ts +53 -0
  380. package/build/core/screenLayout.d.ts.map +1 -0
  381. package/build/core/screenLayout.js +878 -0
  382. package/build/core/screenLayout.js.map +1 -0
  383. package/build/core/screenState.d.ts +166 -0
  384. package/build/core/screenState.d.ts.map +1 -0
  385. package/build/core/screenState.js +1352 -0
  386. package/build/core/screenState.js.map +1 -0
  387. package/build/core/sdkBridge.d.ts +67 -0
  388. package/build/core/sdkBridge.d.ts.map +1 -0
  389. package/build/core/sdkBridge.js +148 -0
  390. package/build/core/sdkBridge.js.map +1 -0
  391. package/build/core/state.d.ts +37 -0
  392. package/build/core/state.d.ts.map +1 -0
  393. package/build/core/state.js +124 -0
  394. package/build/core/state.js.map +1 -0
  395. package/build/core/telemetry.d.ts +50 -0
  396. package/build/core/telemetry.d.ts.map +1 -0
  397. package/build/core/telemetry.js +653 -0
  398. package/build/core/telemetry.js.map +1 -0
  399. package/build/core/toolHelpers.d.ts +24 -0
  400. package/build/core/toolHelpers.d.ts.map +1 -0
  401. package/build/core/toolHelpers.js +118 -0
  402. package/build/core/toolHelpers.js.map +1 -0
  403. package/build/core/types.d.ts +162 -0
  404. package/build/core/types.d.ts.map +1 -0
  405. package/build/core/types.js +2 -0
  406. package/build/core/types.js.map +1 -0
  407. package/build/index.d.ts +4 -0
  408. package/build/index.d.ts.map +1 -0
  409. package/build/index.js +132 -0
  410. package/build/index.js.map +1 -0
  411. package/build/pro/screenshot-diff.d.ts +10 -0
  412. package/build/pro/screenshot-diff.d.ts.map +1 -0
  413. package/build/pro/screenshot-diff.js +38 -0
  414. package/build/pro/screenshot-diff.js.map +1 -0
  415. package/build/pro/tap.d.ts +291 -0
  416. package/build/pro/tap.d.ts.map +1 -0
  417. package/build/pro/tap.js +1839 -0
  418. package/build/pro/tap.js.map +1 -0
  419. package/build/pro/verifyAction.d.ts +50 -0
  420. package/build/pro/verifyAction.d.ts.map +1 -0
  421. package/build/pro/verifyAction.js +285 -0
  422. package/build/pro/verifyAction.js.map +1 -0
  423. package/build/tools/_deviceArg.d.ts +45 -0
  424. package/build/tools/_deviceArg.d.ts.map +1 -0
  425. package/build/tools/_deviceArg.js +58 -0
  426. package/build/tools/_deviceArg.js.map +1 -0
  427. package/build/tools/accountTools.d.ts +46 -0
  428. package/build/tools/accountTools.d.ts.map +1 -0
  429. package/build/tools/accountTools.js +223 -0
  430. package/build/tools/accountTools.js.map +1 -0
  431. package/build/tools/bundleTools.d.ts +3 -0
  432. package/build/tools/bundleTools.d.ts.map +1 -0
  433. package/build/tools/bundleTools.js +375 -0
  434. package/build/tools/bundleTools.js.map +1 -0
  435. package/build/tools/componentTools.d.ts +3 -0
  436. package/build/tools/componentTools.d.ts.map +1 -0
  437. package/build/tools/componentTools.js +746 -0
  438. package/build/tools/componentTools.js.map +1 -0
  439. package/build/tools/connectionTools.d.ts +3 -0
  440. package/build/tools/connectionTools.d.ts.map +1 -0
  441. package/build/tools/connectionTools.js +625 -0
  442. package/build/tools/connectionTools.js.map +1 -0
  443. package/build/tools/deviceTools.d.ts +3 -0
  444. package/build/tools/deviceTools.d.ts.map +1 -0
  445. package/build/tools/deviceTools.js +423 -0
  446. package/build/tools/deviceTools.js.map +1 -0
  447. package/build/tools/executionTools.d.ts +3 -0
  448. package/build/tools/executionTools.d.ts.map +1 -0
  449. package/build/tools/executionTools.js +243 -0
  450. package/build/tools/executionTools.js.map +1 -0
  451. package/build/tools/interactionTools.d.ts +3 -0
  452. package/build/tools/interactionTools.d.ts.map +1 -0
  453. package/build/tools/interactionTools.js +539 -0
  454. package/build/tools/interactionTools.js.map +1 -0
  455. package/build/tools/logTools.d.ts +3 -0
  456. package/build/tools/logTools.d.ts.map +1 -0
  457. package/build/tools/logTools.js +371 -0
  458. package/build/tools/logTools.js.map +1 -0
  459. package/build/tools/metaTools.d.ts +7 -0
  460. package/build/tools/metaTools.d.ts.map +1 -0
  461. package/build/tools/metaTools.js +186 -0
  462. package/build/tools/metaTools.js.map +1 -0
  463. package/build/tools/networkTools.d.ts +3 -0
  464. package/build/tools/networkTools.d.ts.map +1 -0
  465. package/build/tools/networkTools.js +478 -0
  466. package/build/tools/networkTools.js.map +1 -0
  467. package/build/tools/reduxTools.d.ts +3 -0
  468. package/build/tools/reduxTools.d.ts.map +1 -0
  469. package/build/tools/reduxTools.js +83 -0
  470. package/build/tools/reduxTools.js.map +1 -0
  471. package/build/tools/screenshotTools.d.ts +3 -0
  472. package/build/tools/screenshotTools.d.ts.map +1 -0
  473. package/build/tools/screenshotTools.js +703 -0
  474. package/build/tools/screenshotTools.js.map +1 -0
  475. package/package.json +63 -2
@@ -0,0 +1,211 @@
1
+ import { getNextMessageId } from "./state.js";
2
+ /**
3
+ * Returns a JS IIFE string that patches XMLHttpRequest and fetch
4
+ * to capture network requests in React Native Bridgeless targets
5
+ * where CDP Network.enable is unsupported.
6
+ */
7
+ export function getInterceptorScript() {
8
+ // Two-phase injection to capture both early and late requests:
9
+ // Phase 1 (sync): Set __RN_NET_INJECTED__ flag and define helper functions.
10
+ // Install defineProperty setter trap on fetch — may or may not work on Hermes.
11
+ // Phase 2 (setTimeout 0): After RN modules finish initializing, wrap fetch.
12
+ // This is the reliable path that always works.
13
+ return `(function() { try {
14
+ if (globalThis.__RN_NET_INJECTED__) return;
15
+ globalThis.__RN_NET_INJECTED__ = true;
16
+
17
+ var _counter = 0;
18
+ var _prefix = 'js-' + Math.random().toString(36).substring(2, 6) + '-';
19
+
20
+ function _genId() {
21
+ return _prefix + (++_counter);
22
+ }
23
+
24
+ function _report(evt) {
25
+ // Suppressed when the in-app SDK is the source of truth — the MCP
26
+ // flips this flag via Runtime.evaluate once it detects __RN_AI_DEVTOOLS__,
27
+ // so the wrapper stops emitting debug lines and CDP traffic.
28
+ if (globalThis.__RN_NET_DISABLED__) return;
29
+ try {
30
+ console.debug('__RN_NET__:' + JSON.stringify(evt));
31
+ } catch(e) {}
32
+ }
33
+
34
+ function _wrapFetch(origFetch) {
35
+ if (typeof origFetch !== 'function') return origFetch;
36
+ if (origFetch.__rn_net_wrapped__) return origFetch;
37
+
38
+ var wrapped = function(input, init) {
39
+ var id = _genId();
40
+ var method = (init && init.method) ? init.method : 'GET';
41
+ var url = '';
42
+ if (typeof input === 'string') {
43
+ url = input;
44
+ } else if (input && typeof input === 'object' && input.url) {
45
+ url = String(input.url);
46
+ } else {
47
+ url = String(input);
48
+ }
49
+ var startTime = Date.now();
50
+
51
+ _report({type: 'request', id: id, method: method, url: url, timestamp: startTime});
52
+
53
+ try {
54
+ return origFetch.apply(globalThis, arguments).then(
55
+ function(response) {
56
+ try {
57
+ var duration = Date.now() - startTime;
58
+ _report({type: 'response', id: id, status: response.status, statusText: response.statusText || '', duration: duration});
59
+ } catch(e) {}
60
+ return response;
61
+ },
62
+ function(err) {
63
+ try {
64
+ var duration = Date.now() - startTime;
65
+ _report({type: 'error', id: id, error: (err && err.message) ? err.message : 'Fetch failed', duration: duration});
66
+ } catch(e) {}
67
+ throw err;
68
+ }
69
+ );
70
+ } catch(e) {
71
+ try {
72
+ var duration = Date.now() - startTime;
73
+ _report({type: 'error', id: id, error: (e && e.message) ? e.message : 'Fetch failed', duration: duration});
74
+ } catch(e2) {}
75
+ throw e;
76
+ }
77
+ };
78
+ wrapped.__rn_net_wrapped__ = true;
79
+ return wrapped;
80
+ }
81
+
82
+ // Phase 1: try to trap fetch assignment via defineProperty (best-effort)
83
+ try {
84
+ if (typeof globalThis.fetch === 'function') {
85
+ globalThis.fetch = _wrapFetch(globalThis.fetch);
86
+ }
87
+ var _storedFetch = globalThis.fetch;
88
+ Object.defineProperty(globalThis, 'fetch', {
89
+ configurable: true,
90
+ enumerable: true,
91
+ get: function() { return _storedFetch; },
92
+ set: function(v) { _storedFetch = _wrapFetch(v); }
93
+ });
94
+ } catch(e) {}
95
+
96
+ // Phase 2: wrap fetch after module init completes (reliable fallback)
97
+ setTimeout(function() {
98
+ try {
99
+ if (typeof globalThis.fetch === 'function' && !globalThis.fetch.__rn_net_wrapped__) {
100
+ globalThis.fetch = _wrapFetch(globalThis.fetch);
101
+ }
102
+ } catch(e) {}
103
+ }, 0);
104
+
105
+ } catch(e) {} })();`;
106
+ }
107
+ /**
108
+ * Injects the network interceptor script into the app via Runtime.evaluate.
109
+ * Fire-and-forget — does not wait for a response.
110
+ */
111
+ export function injectNetworkInterceptor(ws) {
112
+ const message = JSON.stringify({
113
+ id: getNextMessageId(),
114
+ method: "Runtime.evaluate",
115
+ params: {
116
+ expression: getInterceptorScript(),
117
+ silent: true,
118
+ },
119
+ });
120
+ ws.send(message);
121
+ }
122
+ /**
123
+ * Sends Network.enable CDP command. Returns the message ID used.
124
+ */
125
+ export function sendNetworkEnable(ws) {
126
+ const id = getNextMessageId();
127
+ const message = JSON.stringify({
128
+ id,
129
+ method: "Network.enable",
130
+ });
131
+ ws.send(message);
132
+ return id;
133
+ }
134
+ /**
135
+ * Checks if console event args contain a __RN_NET__: prefixed message.
136
+ * Returns the JSON string after the prefix, or null.
137
+ */
138
+ export function isInterceptorEvent(args) {
139
+ if (!args || args.length === 0)
140
+ return null;
141
+ const first = args[0];
142
+ if (first.type !== "string" || typeof first.value !== "string")
143
+ return null;
144
+ const prefix = "__RN_NET__:";
145
+ const val = first.value;
146
+ if (!val.startsWith(prefix))
147
+ return null;
148
+ return val.slice(prefix.length);
149
+ }
150
+ /**
151
+ * Parses an intercepted network event JSON string and routes it to the buffer.
152
+ */
153
+ export function applyInterceptedEvent(jsonStr, networkBuffer) {
154
+ let event;
155
+ try {
156
+ event = JSON.parse(jsonStr);
157
+ }
158
+ catch {
159
+ return; // Invalid JSON — silently ignore
160
+ }
161
+ if (!event || typeof event !== "object" || !event.type || !event.id) {
162
+ return;
163
+ }
164
+ const id = String(event.id);
165
+ const type = event.type;
166
+ if (type === "request") {
167
+ const request = {
168
+ requestId: id,
169
+ timestamp: event.timestamp
170
+ ? new Date(event.timestamp)
171
+ : new Date(),
172
+ method: String(event.method || "GET"),
173
+ url: String(event.url || ""),
174
+ headers: {},
175
+ completed: false,
176
+ };
177
+ networkBuffer.set(id, request);
178
+ }
179
+ else if (type === "response") {
180
+ const existing = networkBuffer.get(id);
181
+ if (!existing)
182
+ return; // No matching request — silently ignore
183
+ const duration = typeof event.duration === "number" ? event.duration : undefined;
184
+ existing.status = typeof event.status === "number" ? event.status : undefined;
185
+ existing.statusText =
186
+ typeof event.statusText === "string" ? event.statusText : undefined;
187
+ existing.completed = true;
188
+ existing.timing = {
189
+ ...existing.timing,
190
+ responseTime: Date.now(),
191
+ duration,
192
+ };
193
+ networkBuffer.set(id, existing);
194
+ }
195
+ else if (type === "error") {
196
+ const existing = networkBuffer.get(id);
197
+ if (!existing)
198
+ return; // No matching request — silently ignore
199
+ const duration = typeof event.duration === "number" ? event.duration : undefined;
200
+ existing.error =
201
+ typeof event.error === "string" ? event.error : "Unknown error";
202
+ existing.completed = true;
203
+ existing.timing = {
204
+ ...existing.timing,
205
+ responseTime: Date.now(),
206
+ duration,
207
+ };
208
+ networkBuffer.set(id, existing);
209
+ }
210
+ }
211
+ //# sourceMappingURL=networkInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkInterceptor.js","sourceRoot":"","sources":["../../src/core/networkInterceptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ export interface OCRWord {
2
+ text: string;
3
+ confidence: number;
4
+ bbox: {
5
+ x0: number;
6
+ y0: number;
7
+ x1: number;
8
+ y1: number;
9
+ };
10
+ center: {
11
+ x: number;
12
+ y: number;
13
+ };
14
+ /** Tap-ready coordinates (adjusted for scale and device pixel ratio) */
15
+ tapCenter: {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ }
20
+ export interface OCROptions {
21
+ /** Scale factor from image resizing (default: 1) */
22
+ scaleFactor?: number;
23
+ /** Platform for coordinate conversion: ios uses points, android uses raw pixels */
24
+ platform?: "ios" | "android";
25
+ /** Device pixel ratio for iOS coordinate conversion (default: 3 for @3x devices, use 2 for older/iPad) */
26
+ devicePixelRatio?: number;
27
+ /**
28
+ * Optional cancellation signal. When aborted, recognizeText rejects
29
+ * immediately so callers (e.g. the OCR strategy in tap.ts) don't wait past
30
+ * their cap. The cloud fetch passes the signal directly; the local easyocr
31
+ * path can't kill the Python process inside node-easyocr, so the work
32
+ * continues in the background until the host process exits.
33
+ */
34
+ signal?: AbortSignal;
35
+ }
36
+ export interface OCRLine {
37
+ text: string;
38
+ confidence: number;
39
+ bbox: {
40
+ x0: number;
41
+ y0: number;
42
+ x1: number;
43
+ y1: number;
44
+ };
45
+ center: {
46
+ x: number;
47
+ y: number;
48
+ };
49
+ /** Tap-ready coordinates (adjusted for scale and device pixel ratio) */
50
+ tapCenter: {
51
+ x: number;
52
+ y: number;
53
+ };
54
+ }
55
+ export interface OCRResult {
56
+ success: boolean;
57
+ fullText: string;
58
+ confidence: number;
59
+ words: OCRWord[];
60
+ lines: OCRLine[];
61
+ processingTimeMs: number;
62
+ engine: "easyocr" | "cloud";
63
+ }
64
+ /**
65
+ * Infer iOS device pixel ratio from screenshot dimensions
66
+ * @3x devices: Most modern iPhones (width >= 1080)
67
+ * @2x devices: Older iPhones, iPads (width 640-1080 or width >= 1500 for iPads)
68
+ * @1x devices: Very old (rare)
69
+ */
70
+ export declare function inferIOSDevicePixelRatio(width: number, height: number): number;
71
+ /**
72
+ * Convert OCR bounding box coordinate to screenshot-image-pixel space.
73
+ * OCR runs on the downscaled image, so coordinates are already in image-pixel space.
74
+ * We return them as-is — tap() handles un-downscaling and platform conversion.
75
+ */
76
+ export declare function toTapCoord(ocrCoord: number, _scaleFactor: number): number;
77
+ /**
78
+ * Run OCR — tries cloud (Google Vision) first, falls back to local EasyOCR.
79
+ *
80
+ * If `options.signal` aborts, this rejects immediately so callers don't wait
81
+ * past their cap. Inflight cloud fetch aborts; local easyocr work continues
82
+ * in the background (node-easyocr offers no cancel hook) and is dropped on
83
+ * resolve.
84
+ */
85
+ export declare function recognizeText(imageBuffer: Buffer, options?: OCROptions): Promise<OCRResult>;
86
+ export declare function terminateOCRWorker(): Promise<void>;
87
+ //# sourceMappingURL=ocr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../../src/core/ocr.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACJ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,wEAAwE;IACxE,SAAS,EAAE;QACP,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACL;AAED,MAAM,WAAW,UAAU;IACvB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B,0GAA0G;IAC1G,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE;QACJ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,wEAAwE;IACxE,SAAS,EAAE;QACP,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACL;AAED,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;CAC/B;AA6GD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAsB9E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzE;AAyHD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAmBjG;AAgFD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUxD"}
@@ -0,0 +1,335 @@
1
+ import { tmpdir } from "os";
2
+ import { join, dirname } from "path";
3
+ import { writeFile, unlink } from "fs/promises";
4
+ import { existsSync } from "fs";
5
+ import { randomUUID } from "crypto";
6
+ import { createRequire } from "module";
7
+ import { spawn } from "child_process";
8
+ import { getInstallationId } from "./telemetry.js";
9
+ // ============================================================================
10
+ // Cloud OCR Configuration
11
+ // ============================================================================
12
+ const OCR_ENDPOINT = "https://rn-debugger-ocr.500griven.workers.dev";
13
+ const OCR_API_KEY = "4adf74c1f1afa5c4dc5eddcfc17787aea3b21b4a518bad27df152515d71f3d54";
14
+ const OCR_TIMEOUT_MS = 5_000;
15
+ // EasyOCR instance
16
+ let easyOCRInstance = null;
17
+ let easyOCRInitPromise = null;
18
+ /**
19
+ * Promise with timeout helper
20
+ */
21
+ function withTimeout(promise, ms, errorMsg) {
22
+ return Promise.race([
23
+ promise,
24
+ new Promise((_, reject) => setTimeout(() => reject(new Error(errorMsg)), ms))
25
+ ]);
26
+ }
27
+ /**
28
+ * Get configured OCR languages from environment variable
29
+ * English is always included as fallback
30
+ * Default: "en" (English only)
31
+ * Example: EASYOCR_LANGUAGES="es,fr" for Spanish, French (+ English)
32
+ */
33
+ function getOCRLanguages() {
34
+ const envLangs = process.env.EASYOCR_LANGUAGES;
35
+ const languages = envLangs
36
+ ? envLangs.split(",").map(lang => lang.trim()).filter(Boolean)
37
+ : [];
38
+ // Always include English as fallback
39
+ if (!languages.includes("en")) {
40
+ languages.push("en");
41
+ }
42
+ return languages;
43
+ }
44
+ /**
45
+ * Initialize EasyOCR (Python-based, better for colored backgrounds)
46
+ * Requires Python 3.6+ on the system; easyocr is provided by node-easyocr's bundled venv.
47
+ */
48
+ async function getEasyOCR() {
49
+ if (easyOCRInstance) {
50
+ return easyOCRInstance;
51
+ }
52
+ if (easyOCRInitPromise) {
53
+ return easyOCRInitPromise;
54
+ }
55
+ easyOCRInitPromise = (async () => {
56
+ try {
57
+ const languages = getOCRLanguages();
58
+ const { EasyOCR } = await import("node-easyocr");
59
+ const ocr = new EasyOCR();
60
+ // node-easyocr's preinstall creates a venv with easyocr, but the
61
+ // runtime hardcodes pythonPath to system 'python3' which won't have it.
62
+ // Resolve the package location and point at its bundled venv instead.
63
+ const require = createRequire(import.meta.url);
64
+ const easyocrPkgDir = dirname(require.resolve("node-easyocr"));
65
+ // Matches the convention in node-easyocr's own setup-python-env.js
66
+ const venvBin = process.platform === "win32" ? "Scripts" : "bin";
67
+ const venvExe = process.platform === "win32" ? "python.exe" : "python";
68
+ const venvPython = join(easyocrPkgDir, "..", "venv", venvBin, venvExe);
69
+ if (existsSync(venvPython)) {
70
+ ocr.pythonPath = venvPython;
71
+ }
72
+ // node-easyocr's JSON parser chokes on easyocr's progress bar output
73
+ // during model downloads. Pre-download models with verbose=False so
74
+ // node-easyocr's init never sees non-JSON output on stdout.
75
+ // Always run with the configured languages since each language has its
76
+ // own recognition model that may need downloading.
77
+ const pythonPath = ocr.pythonPath || "python3";
78
+ const langArg = JSON.stringify(languages);
79
+ await withTimeout(new Promise((resolve, reject) => {
80
+ const proc = spawn(pythonPath, [
81
+ "-c", `import easyocr; easyocr.Reader(${langArg}, verbose=False)`
82
+ ]);
83
+ let stderr = "";
84
+ proc.stderr.on("data", (d) => { stderr += d; });
85
+ proc.on("close", (code) => {
86
+ if (code === 0)
87
+ resolve();
88
+ else
89
+ reject(new Error(`EasyOCR model setup failed (code ${code}): ${stderr.trim() || "unknown error"}. Ensure Python 3.6+ is installed.`));
90
+ });
91
+ proc.on("error", reject);
92
+ }), 120000, "EasyOCR model download timeout -- check your network connection");
93
+ await withTimeout(ocr.init(languages), 30000, "EasyOCR init timeout. Ensure Python 3.6+ is available on your system.");
94
+ easyOCRInstance = ocr;
95
+ return ocr;
96
+ }
97
+ catch (error) {
98
+ easyOCRInitPromise = null;
99
+ throw error;
100
+ }
101
+ })();
102
+ return easyOCRInitPromise;
103
+ }
104
+ /**
105
+ * Infer iOS device pixel ratio from screenshot dimensions
106
+ * @3x devices: Most modern iPhones (width >= 1080)
107
+ * @2x devices: Older iPhones, iPads (width 640-1080 or width >= 1500 for iPads)
108
+ * @1x devices: Very old (rare)
109
+ */
110
+ export function inferIOSDevicePixelRatio(width, height) {
111
+ // Ensure we're looking at the shorter dimension for width
112
+ const shortSide = Math.min(width, height);
113
+ const longSide = Math.max(width, height);
114
+ // iPads are typically @2x regardless of size
115
+ // iPad resolutions have aspect ratios closer to 4:3 (e.g., 2048x2732)
116
+ const aspectRatio = longSide / shortSide;
117
+ if (aspectRatio < 1.5) {
118
+ // Likely an iPad (4:3 ish aspect ratio)
119
+ return 2;
120
+ }
121
+ // iPhones: Check short side dimension
122
+ // @3x phones have short side >= 1080 (e.g., 1170, 1179, 1284, 1290)
123
+ // @2x phones have short side < 1080 (e.g., 640, 750)
124
+ if (shortSide >= 1080) {
125
+ return 3;
126
+ }
127
+ // Older @2x iPhones (iPhone 8, SE, etc.)
128
+ return 2;
129
+ }
130
+ /**
131
+ * Convert OCR bounding box coordinate to screenshot-image-pixel space.
132
+ * OCR runs on the downscaled image, so coordinates are already in image-pixel space.
133
+ * We return them as-is — tap() handles un-downscaling and platform conversion.
134
+ */
135
+ export function toTapCoord(ocrCoord, _scaleFactor) {
136
+ return Math.round(ocrCoord);
137
+ }
138
+ /**
139
+ * Run OCR via Cloudflare Worker → Google Cloud Vision.
140
+ * Returns null on failure (caller should fall back to local EasyOCR).
141
+ */
142
+ async function recognizeTextCloud(imageBuffer, options) {
143
+ const scaleFactor = options?.scaleFactor ?? 1;
144
+ const startTime = Date.now();
145
+ const body = new Uint8Array(imageBuffer);
146
+ const fetchOptions = {
147
+ method: "POST",
148
+ headers: {
149
+ "X-API-Key": OCR_API_KEY,
150
+ "X-Installation-Id": getInstallationId(),
151
+ "Content-Type": "image/png",
152
+ },
153
+ body,
154
+ };
155
+ const externalSignal = options?.signal;
156
+ const racedSignal = () => {
157
+ const controller = new AbortController();
158
+ const timeout = setTimeout(() => controller.abort(), OCR_TIMEOUT_MS);
159
+ const onExternalAbort = () => { clearTimeout(timeout); controller.abort(); };
160
+ if (externalSignal) {
161
+ if (externalSignal.aborted)
162
+ controller.abort();
163
+ else
164
+ externalSignal.addEventListener("abort", onExternalAbort, { once: true });
165
+ }
166
+ return controller.signal;
167
+ };
168
+ let response;
169
+ try {
170
+ response = await fetch(`${OCR_ENDPOINT}/ocr`, {
171
+ ...fetchOptions,
172
+ signal: racedSignal(),
173
+ });
174
+ }
175
+ catch {
176
+ return null; // Network error or timeout — fall back to local
177
+ }
178
+ // On 502, retry once after 500ms
179
+ if (response.status === 502) {
180
+ await new Promise((resolve) => setTimeout(resolve, 500));
181
+ try {
182
+ response = await fetch(`${OCR_ENDPOINT}/ocr`, {
183
+ ...fetchOptions,
184
+ signal: racedSignal(),
185
+ });
186
+ }
187
+ catch {
188
+ return null;
189
+ }
190
+ }
191
+ // Any non-200 → fall back to local
192
+ if (!response.ok) {
193
+ return null;
194
+ }
195
+ let data;
196
+ try {
197
+ data = (await response.json());
198
+ }
199
+ catch {
200
+ return null;
201
+ }
202
+ if (!data.success) {
203
+ return null;
204
+ }
205
+ // Map cloud response to OCRResult, computing center and tapCenter client-side
206
+ const words = data.words.map((w) => {
207
+ const centerX = Math.round((w.bbox.x0 + w.bbox.x1) / 2);
208
+ const centerY = Math.round((w.bbox.y0 + w.bbox.y1) / 2);
209
+ return {
210
+ text: w.text,
211
+ confidence: w.confidence,
212
+ bbox: w.bbox,
213
+ center: { x: centerX, y: centerY },
214
+ tapCenter: {
215
+ x: toTapCoord(centerX, scaleFactor),
216
+ y: toTapCoord(centerY, scaleFactor),
217
+ },
218
+ };
219
+ });
220
+ return {
221
+ success: true,
222
+ fullText: data.fullText,
223
+ confidence: data.confidence,
224
+ words,
225
+ lines: [],
226
+ processingTimeMs: Date.now() - startTime,
227
+ engine: "cloud",
228
+ };
229
+ }
230
+ /**
231
+ * Run OCR — tries cloud (Google Vision) first, falls back to local EasyOCR.
232
+ *
233
+ * If `options.signal` aborts, this rejects immediately so callers don't wait
234
+ * past their cap. Inflight cloud fetch aborts; local easyocr work continues
235
+ * in the background (node-easyocr offers no cancel hook) and is dropped on
236
+ * resolve.
237
+ */
238
+ export async function recognizeText(imageBuffer, options) {
239
+ const signal = options?.signal;
240
+ const abortPromise = signal
241
+ ? new Promise((_, reject) => {
242
+ if (signal.aborted) {
243
+ reject(new Error("recognizeText aborted"));
244
+ return;
245
+ }
246
+ signal.addEventListener("abort", () => reject(new Error("recognizeText aborted")), { once: true });
247
+ })
248
+ : null;
249
+ const work = (async () => {
250
+ const cloudResult = await recognizeTextCloud(imageBuffer, options);
251
+ if (cloudResult)
252
+ return cloudResult;
253
+ return recognizeTextLocal(imageBuffer, options);
254
+ })();
255
+ return abortPromise ? Promise.race([work, abortPromise]) : work;
256
+ }
257
+ /**
258
+ * Run OCR using local EasyOCR (fallback).
259
+ * Requires Python 3.6+ on the system; easyocr is provided by node-easyocr's bundled venv.
260
+ */
261
+ async function recognizeTextLocal(imageBuffer, options) {
262
+ const scaleFactor = options?.scaleFactor ?? 1;
263
+ const startTime = Date.now();
264
+ let ocr;
265
+ try {
266
+ ocr = await getEasyOCR();
267
+ }
268
+ catch (error) {
269
+ const message = error instanceof Error ? error.message : String(error);
270
+ throw new Error(`EasyOCR initialization failed. Ensure Python 3.6+ is available on your system. Error: ${message}`);
271
+ }
272
+ // Write buffer to temp file (EasyOCR requires file path)
273
+ const tempPath = join(tmpdir(), `ocr-${randomUUID()}.png`);
274
+ try {
275
+ await writeFile(tempPath, imageBuffer);
276
+ const results = await withTimeout(ocr.readText(tempPath), 15000, "EasyOCR readText timeout");
277
+ const words = [];
278
+ const textParts = [];
279
+ let totalConfidence = 0;
280
+ for (const result of results) {
281
+ if (result.text && result.bbox) {
282
+ // EasyOCR bbox is [[x1,y1], [x2,y2], [x3,y3], [x4,y4]] (4 corners)
283
+ const x0 = Math.min(result.bbox[0][0], result.bbox[3][0]);
284
+ const y0 = Math.min(result.bbox[0][1], result.bbox[1][1]);
285
+ const x1 = Math.max(result.bbox[1][0], result.bbox[2][0]);
286
+ const y1 = Math.max(result.bbox[2][1], result.bbox[3][1]);
287
+ const centerX = Math.round((x0 + x1) / 2);
288
+ const centerY = Math.round((y0 + y1) / 2);
289
+ words.push({
290
+ text: result.text.trim(),
291
+ confidence: result.confidence * 100,
292
+ bbox: { x0, y0, x1, y1 },
293
+ center: { x: centerX, y: centerY },
294
+ tapCenter: {
295
+ x: toTapCoord(centerX, scaleFactor),
296
+ y: toTapCoord(centerY, scaleFactor),
297
+ },
298
+ });
299
+ textParts.push(result.text.trim());
300
+ totalConfidence += result.confidence;
301
+ }
302
+ }
303
+ return {
304
+ success: true,
305
+ fullText: textParts.join(" "),
306
+ confidence: results.length > 0 ? (totalConfidence / results.length) * 100 : 0,
307
+ words,
308
+ lines: [],
309
+ processingTimeMs: Date.now() - startTime,
310
+ engine: "easyocr",
311
+ };
312
+ }
313
+ finally {
314
+ // Clean up temp file
315
+ try {
316
+ await unlink(tempPath);
317
+ }
318
+ catch {
319
+ // Ignore cleanup errors
320
+ }
321
+ }
322
+ }
323
+ export async function terminateOCRWorker() {
324
+ if (easyOCRInstance) {
325
+ try {
326
+ await easyOCRInstance.close();
327
+ }
328
+ catch {
329
+ // Ignore close errors
330
+ }
331
+ easyOCRInstance = null;
332
+ easyOCRInitPromise = null;
333
+ }
334
+ }
335
+ //# sourceMappingURL=ocr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocr.js","sourceRoot":"","sources":["../../src/core/ocr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const CONFIG_DIR: string;
2
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/core/paths.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,UAAU,QAAqB,CAAC"}