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 @@
1
+ {"version":3,"file":"measureComponent.js","sourceRoot":"","sources":["../../src/core/measureComponent.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,+BAA+B,CAAC,aAAqB,EAAE,KAAa;IAChF,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,OAAO;;;;;;;;;;;;0BAYe,WAAW;0BACX,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EhC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ExecutionResult } from "./types.js";
2
+ import { type MeasureToolResult } from "./measureComponent.js";
3
+ export type { MeasureOutcome, MeasureBounds, MeasureToolResult } from "./measureComponent.js";
4
+ export type ExecuteFn = (expression: string, device?: string) => Promise<ExecutionResult>;
5
+ export declare function measureComponent(componentName: string, index?: number, device?: string, execute?: ExecuteFn): Promise<MeasureToolResult>;
6
+ //# sourceMappingURL=measureComponentTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureComponentTools.d.ts","sourceRoot":"","sources":["../../src/core/measureComponentTools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAGH,KAAK,iBAAiB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE9F,MAAM,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAK1F,wBAAsB,gBAAgB,CAClC,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,MAAU,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,SAA0B,GACpC,OAAO,CAAC,iBAAiB,CAAC,CAgD5B"}
@@ -0,0 +1,43 @@
1
+ import { executeInApp } from "./executor.js";
2
+ import { buildMeasureComponentExpression } from "./measureComponent.js";
3
+ const defaultExecute = (expression, device) => executeInApp(expression, true, { timeoutMs: 5000, originatingToolName: "measure" }, device);
4
+ export async function measureComponent(componentName, index = 0, device, execute = defaultExecute) {
5
+ const safeIndex = typeof index === "number" && Number.isFinite(index) ? index : 0;
6
+ const exec = await execute(buildMeasureComponentExpression(componentName, safeIndex), device);
7
+ if (!exec.success) {
8
+ return { success: false, outcome: "error", error: exec.error ?? "executor failed" };
9
+ }
10
+ let parsed = null;
11
+ try {
12
+ parsed = exec.result ? JSON.parse(exec.result) : null;
13
+ }
14
+ catch {
15
+ return { success: false, outcome: "error", error: "could not parse executor result" };
16
+ }
17
+ if (!parsed) {
18
+ return { success: false, outcome: "error", error: "empty executor result" };
19
+ }
20
+ if (parsed.outcome === "measured" &&
21
+ typeof parsed.x === "number" &&
22
+ typeof parsed.y === "number" &&
23
+ typeof parsed.width === "number" &&
24
+ typeof parsed.height === "number" &&
25
+ typeof parsed.name === "string") {
26
+ return {
27
+ success: true,
28
+ outcome: "measured",
29
+ x: parsed.x,
30
+ y: parsed.y,
31
+ width: parsed.width,
32
+ height: parsed.height,
33
+ name: parsed.name,
34
+ ...(typeof parsed.nativeTag === "number" ? { nativeTag: parsed.nativeTag } : {})
35
+ };
36
+ }
37
+ return {
38
+ success: false,
39
+ outcome: parsed.outcome,
40
+ error: parsed.error ?? "unknown error"
41
+ };
42
+ }
43
+ //# sourceMappingURL=measureComponentTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureComponentTools.js","sourceRoot":"","sources":["../../src/core/measureComponentTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACH,+BAA+B,EAGlC,MAAM,uBAAuB,CAAC;AAM/B,MAAM,cAAc,GAAc,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CACrD,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAEhG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,aAAqB,EACrB,QAAgB,CAAC,EACjB,MAAe,EACf,UAAqB,cAAc;IAEnC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,+BAA+B,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC;IACxF,CAAC;IACD,IAAI,MAAM,GASC,IAAI,CAAC;IAChB,IAAI,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAChF,CAAC;IACD,IACI,MAAM,CAAC,OAAO,KAAK,UAAU;QAC7B,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ;QAC5B,OAAO,MAAM,CAAC,CAAC,KAAK,QAAQ;QAC5B,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAChC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QACjC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EACjC,CAAC;QACC,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,UAAU;YACnB,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,CAAC,EAAE,MAAM,CAAC,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC;IACN,CAAC;IACD,OAAO;QACH,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,MAAM,CAAC,OAA8C;QAC9D,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,eAAe;KACzC,CAAC;AACN,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { DeviceInfo } from "./types.js";
2
+ export declare const COMMON_PORTS: number[];
3
+ export declare function isPortOpen(port: number, host?: string): Promise<boolean>;
4
+ export declare function scanMetroPorts(startPort?: number, endPort?: number): Promise<number[]>;
5
+ export declare function fetchDevices(port: number): Promise<DeviceInfo[]>;
6
+ export declare function selectMainDevice(devices: DeviceInfo[]): DeviceInfo | null;
7
+ export declare function filterBridgelessDevices(devices: DeviceInfo[]): DeviceInfo[];
8
+ /**
9
+ * Select the best debuggable target per physical device.
10
+ * Uses the same priority as selectMainDevice but groups by deviceName
11
+ * so multi-device setups get one target each.
12
+ * Excludes Reanimated/Experimental targets.
13
+ */
14
+ export declare function filterDebuggableDevices(devices: DeviceInfo[]): DeviceInfo[];
15
+ export declare function discoverMetroDevices(startPort?: number, endPort?: number): Promise<Map<number, DeviceInfo[]>>;
16
+ /**
17
+ * Metro state for fallback detection
18
+ */
19
+ export interface MetroState {
20
+ metroRunning: boolean;
21
+ metroPorts: number[];
22
+ hasConnectedApps: boolean;
23
+ /** True when Metro is running but no apps are connected (likely bundle error) */
24
+ needsFallback: boolean;
25
+ }
26
+ /**
27
+ * Check if Metro is running but no devices/apps are connected
28
+ * This state indicates a possible bundle error preventing the app from loading
29
+ */
30
+ export declare function checkMetroState(connectedAppsCount: number, startPort?: number, endPort?: number): Promise<MetroState>;
31
+ //# sourceMappingURL=metro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metro.d.ts","sourceRoot":"","sources":["../../src/core/metro.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,eAAO,MAAM,YAAY,UAAoC,CAAC;AAG9D,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAsB3F;AAGD,wBAAsB,cAAc,CAChC,SAAS,GAAE,MAAa,EACxB,OAAO,GAAE,MAAc,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAGD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAWtE;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,GAAG,IAAI,CAmBzE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAmB3E;AAGD,wBAAsB,oBAAoB,CACtC,SAAS,GAAE,MAAa,EACxB,OAAO,GAAE,MAAc,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAYpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iFAAiF;IACjF,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACjC,kBAAkB,EAAE,MAAM,EAC1B,SAAS,GAAE,MAAa,EACxB,OAAO,GAAE,MAAc,GACxB,OAAO,CAAC,UAAU,CAAC,CAcrB"}
@@ -0,0 +1,124 @@
1
+ import * as net from "net";
2
+ // Common Metro ports
3
+ export const COMMON_PORTS = [8081, 8082, 19000, 19001, 19002];
4
+ // Check if a port is open
5
+ export async function isPortOpen(port, host = "localhost") {
6
+ return new Promise((resolve) => {
7
+ const socket = new net.Socket();
8
+ socket.setTimeout(1000);
9
+ socket.on("connect", () => {
10
+ socket.destroy();
11
+ resolve(true);
12
+ });
13
+ socket.on("timeout", () => {
14
+ socket.destroy();
15
+ resolve(false);
16
+ });
17
+ socket.on("error", () => {
18
+ socket.destroy();
19
+ resolve(false);
20
+ });
21
+ socket.connect(port, host);
22
+ });
23
+ }
24
+ // Scan for running Metro servers
25
+ export async function scanMetroPorts(startPort = 8081, endPort = 19002) {
26
+ const portsToCheck = startPort === 8081 && endPort === 19002
27
+ ? COMMON_PORTS
28
+ : Array.from({ length: endPort - startPort + 1 }, (_, i) => startPort + i);
29
+ const openPorts = [];
30
+ for (const port of portsToCheck) {
31
+ if (await isPortOpen(port)) {
32
+ openPorts.push(port);
33
+ }
34
+ }
35
+ return openPorts;
36
+ }
37
+ // Fetch connected devices from Metro /json endpoint
38
+ export async function fetchDevices(port) {
39
+ try {
40
+ const response = await fetch(`http://localhost:${port}/json`);
41
+ if (!response.ok) {
42
+ return [];
43
+ }
44
+ const devices = (await response.json());
45
+ return devices.filter((d) => d.webSocketDebuggerUrl);
46
+ }
47
+ catch {
48
+ return [];
49
+ }
50
+ }
51
+ // Select the main JS runtime device from a list of devices (priority order)
52
+ export function selectMainDevice(devices) {
53
+ if (devices.length === 0) {
54
+ return null;
55
+ }
56
+ return (
57
+ // SDK 54+ uses "React Native Bridgeless" in description
58
+ devices.find((d) => d.description.includes("React Native Bridgeless")) ||
59
+ // Hermes runtime (RN 0.70+)
60
+ devices.find((d) => d.title === "Hermes React Native" || d.title.includes("Hermes")) ||
61
+ // Fallback: any React Native in title, excluding Reanimated/Experimental
62
+ devices.find((d) => d.title.includes("React Native") &&
63
+ !d.title.includes("Reanimated") &&
64
+ !d.title.includes("Experimental")) ||
65
+ devices[0]);
66
+ }
67
+ export function filterBridgelessDevices(devices) {
68
+ return devices.filter(d => d.description.includes("React Native Bridgeless"));
69
+ }
70
+ /**
71
+ * Select the best debuggable target per physical device.
72
+ * Uses the same priority as selectMainDevice but groups by deviceName
73
+ * so multi-device setups get one target each.
74
+ * Excludes Reanimated/Experimental targets.
75
+ */
76
+ export function filterDebuggableDevices(devices) {
77
+ // Group by physical device
78
+ const byDevice = new Map();
79
+ for (const d of devices) {
80
+ const name = d.deviceName || d.title;
81
+ const group = byDevice.get(name) || [];
82
+ group.push(d);
83
+ byDevice.set(name, group);
84
+ }
85
+ // Pick the best target for each physical device (same priority as selectMainDevice)
86
+ const result = [];
87
+ for (const group of byDevice.values()) {
88
+ const best = selectMainDevice(group);
89
+ if (best) {
90
+ result.push(best);
91
+ }
92
+ }
93
+ return result;
94
+ }
95
+ // Scan for Metro and return all devices grouped by port
96
+ export async function discoverMetroDevices(startPort = 8081, endPort = 19002) {
97
+ const openPorts = await scanMetroPorts(startPort, endPort);
98
+ const result = new Map();
99
+ for (const port of openPorts) {
100
+ const devices = await fetchDevices(port);
101
+ if (devices.length > 0) {
102
+ result.set(port, devices);
103
+ }
104
+ }
105
+ return result;
106
+ }
107
+ /**
108
+ * Check if Metro is running but no devices/apps are connected
109
+ * This state indicates a possible bundle error preventing the app from loading
110
+ */
111
+ export async function checkMetroState(connectedAppsCount, startPort = 8081, endPort = 19002) {
112
+ const openPorts = await scanMetroPorts(startPort, endPort);
113
+ const metroRunning = openPorts.length > 0;
114
+ const hasConnectedApps = connectedAppsCount > 0;
115
+ // Metro is running but we have no connected apps - possible bundle error
116
+ const needsFallback = metroRunning && !hasConnectedApps;
117
+ return {
118
+ metroRunning,
119
+ metroPorts: openPorts,
120
+ hasConnectedApps,
121
+ needsFallback
122
+ };
123
+ }
124
+ //# sourceMappingURL=metro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metro.js","sourceRoot":"","sources":["../../src/core/metro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare function hasMetro(): boolean;
2
+ export type NativeDeviceAvailability = {
3
+ ios: boolean;
4
+ android: boolean;
5
+ any: boolean;
6
+ };
7
+ export declare function detectNativeDevices(): Promise<NativeDeviceAvailability>;
8
+ export type MetroMissingHintOptions = {
9
+ toolName: string;
10
+ devices?: NativeDeviceAvailability;
11
+ };
12
+ export declare function buildMetroMissingHint({ toolName, devices }: MetroMissingHintOptions): string;
13
+ export declare function metroMissingHintIfAbsent(toolName: string): Promise<string>;
14
+ //# sourceMappingURL=nativeOnlyHints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeOnlyHints.d.ts","sourceRoot":"","sources":["../../src/core/nativeOnlyHints.ts"],"names":[],"mappings":"AAIA,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,MAAM,MAAM,wBAAwB,GAAG;IACnC,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAQ7E;AAgBD,MAAM,MAAM,uBAAuB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACtC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAoB5F;AAID,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIhF"}
@@ -0,0 +1,58 @@
1
+ import { connectedApps } from "./state.js";
2
+ import { getActiveOrBootedSimulatorUdid } from "./ios.js";
3
+ import { getDefaultAndroidDevice } from "./android.js";
4
+ export function hasMetro() {
5
+ return connectedApps.size > 0;
6
+ }
7
+ export async function detectNativeDevices() {
8
+ const [iosUdid, androidSerial] = await Promise.all([
9
+ getActiveOrBootedSimulatorUdid().catch(() => null),
10
+ getDefaultAndroidDevice().catch(() => null),
11
+ ]);
12
+ const ios = !!iosUdid;
13
+ const android = !!androidSerial;
14
+ return { ios, android, any: ios || android };
15
+ }
16
+ // Per-tool native fallback suggestions, keyed by tool name.
17
+ // Lists the native-only tools the user can reach for instead.
18
+ const NATIVE_FALLBACKS = {
19
+ get_logs: [],
20
+ search_logs: [],
21
+ clear_logs: [],
22
+ get_network_requests: [],
23
+ search_network: [],
24
+ get_network_stats: [],
25
+ get_request_details: [],
26
+ get_screen_layout: [],
27
+ get_inspector_selection: [],
28
+ };
29
+ export function buildMetroMissingHint({ toolName, devices }) {
30
+ const fallbacks = NATIVE_FALLBACKS[toolName] ?? [];
31
+ const lines = [];
32
+ lines.push("[NO METRO] This tool reads data from the JS runtime, which requires an attached debugger.");
33
+ if (devices?.any) {
34
+ const platformsSeen = [];
35
+ if (devices.ios)
36
+ platformsSeen.push("iOS simulator");
37
+ if (devices.android)
38
+ platformsSeen.push("Android device");
39
+ lines.push(`Detected ${platformsSeen.join(" + ")} but no Metro connection. Start your React Native app and run scan_metro to enable full data capture.`);
40
+ }
41
+ else {
42
+ lines.push("No running simulators or devices detected. Boot one, start your app, then run scan_metro.");
43
+ }
44
+ if (fallbacks.length > 0) {
45
+ lines.push(`Native-only alternatives you can use now: ${fallbacks.join(", ")}.`);
46
+ }
47
+ lines.push("For in-app console/network capture without Metro, install the SDK: npm install execbro-sdk");
48
+ return lines.join("\n");
49
+ }
50
+ // Convenience: return the hint only when Metro is truly absent. Returns "" otherwise
51
+ // so callers can concatenate unconditionally.
52
+ export async function metroMissingHintIfAbsent(toolName) {
53
+ if (hasMetro())
54
+ return "";
55
+ const devices = await detectNativeDevices();
56
+ return "\n\n" + buildMetroMissingHint({ toolName, devices });
57
+ }
58
+ //# sourceMappingURL=nativeOnlyHints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeOnlyHints.js","sourceRoot":"","sources":["../../src/core/nativeOnlyHints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,UAAU,QAAQ;IACpB,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;AAClC,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACrC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/C,8BAA8B,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAClD,uBAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,CAAC,aAAa,CAAC;IAChC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;AACjD,CAAC;AAED,4DAA4D;AAC5D,8DAA8D;AAC9D,MAAM,gBAAgB,GAA6B;IAC/C,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,EAAE;IACd,oBAAoB,EAAE,EAAE;IACxB,cAAc,EAAE,EAAE;IAClB,iBAAiB,EAAE,EAAE;IACrB,mBAAmB,EAAE,EAAE;IACvB,iBAAiB,EAAE,EAAE;IACrB,uBAAuB,EAAE,EAAE;CAC9B,CAAC;AAOF,MAAM,UAAU,qBAAqB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAA2B;IAChF,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IAExG,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;QACf,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG;YAAE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,OAAO;YAAE,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,YAAY,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;IAC7J,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,6CAA6C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;IACzG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,qFAAqF;AACrF,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAAgB;IAC3D,IAAI,QAAQ,EAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC5C,OAAO,MAAM,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { NetworkRequest } from "./types.js";
2
+ export declare class NetworkBuffer {
3
+ private requests;
4
+ private order;
5
+ private maxSize;
6
+ constructor(maxSize?: number);
7
+ set(requestId: string, request: NetworkRequest): void;
8
+ get(requestId: string): NetworkRequest | undefined;
9
+ getAll(options?: {
10
+ count?: number;
11
+ method?: string;
12
+ urlPattern?: string;
13
+ status?: number;
14
+ completedOnly?: boolean;
15
+ }): NetworkRequest[];
16
+ search(urlPattern: string, maxResults?: number): NetworkRequest[];
17
+ clear(): number;
18
+ get size(): number;
19
+ }
20
+ export declare function formatRequest(request: NetworkRequest): string;
21
+ export declare function formatRequests(requests: NetworkRequest[]): string;
22
+ export interface FormatRequestDetailsOptions {
23
+ maxBodyLength?: number;
24
+ verbose?: boolean;
25
+ }
26
+ export declare function formatRequestDetails(request: NetworkRequest, options?: FormatRequestDetailsOptions): string;
27
+ export declare function getNetworkRequests(networkBuffer: NetworkBuffer, options?: {
28
+ maxRequests?: number;
29
+ method?: string;
30
+ urlPattern?: string;
31
+ status?: number;
32
+ }): {
33
+ requests: NetworkRequest[];
34
+ count: number;
35
+ formatted: string;
36
+ };
37
+ export declare function searchNetworkRequests(networkBuffer: NetworkBuffer, urlPattern: string, maxResults?: number): {
38
+ requests: NetworkRequest[];
39
+ count: number;
40
+ formatted: string;
41
+ };
42
+ export declare function getNetworkStats(networkBuffer: NetworkBuffer): string;
43
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAY;IAKjC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAcrD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAKlD,MAAM,CAAC,OAAO,GAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,OAAO,CAAC;KACtB,GAAG,cAAc,EAAE;IAiCzB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,GAAG,cAAc,EAAE;IAYrE,KAAK,IAAI,MAAM;IAOf,IAAI,IAAI,IAAI,MAAM,CAEjB;CACJ;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAY7D;AAGD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAMjE;AAGD,MAAM,WAAW,2BAA2B;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAGD,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,2BAAgC,GAC1C,MAAM,CAoDR;AAGD,wBAAgB,kBAAkB,CAC9B,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACd,GACP;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAelE;AAGD,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,MAAW,GACxB;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAOlE;AAGD,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAoEpE"}
@@ -0,0 +1,217 @@
1
+ // Circular buffer for storing network requests
2
+ export class NetworkBuffer {
3
+ requests = new Map();
4
+ order = [];
5
+ maxSize;
6
+ constructor(maxSize = 500) {
7
+ this.maxSize = maxSize;
8
+ }
9
+ // Add or update a request
10
+ set(requestId, request) {
11
+ if (!this.requests.has(requestId)) {
12
+ this.order.push(requestId);
13
+ if (this.order.length > this.maxSize) {
14
+ const oldestId = this.order.shift();
15
+ if (oldestId) {
16
+ this.requests.delete(oldestId);
17
+ }
18
+ }
19
+ }
20
+ this.requests.set(requestId, request);
21
+ }
22
+ // Get a request by ID
23
+ get(requestId) {
24
+ return this.requests.get(requestId);
25
+ }
26
+ // Get all requests (optionally filtered)
27
+ getAll(options = {}) {
28
+ const { count, method, urlPattern, status, completedOnly } = options;
29
+ let results = Array.from(this.requests.values());
30
+ // Sort by timestamp
31
+ results.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
32
+ if (method && method.trim()) {
33
+ results = results.filter((r) => r.method.toUpperCase() === method.toUpperCase());
34
+ }
35
+ if (urlPattern && urlPattern.trim()) {
36
+ const pattern = urlPattern.toLowerCase();
37
+ results = results.filter((r) => r.url.toLowerCase().includes(pattern));
38
+ }
39
+ if (status != null && typeof status === "number") {
40
+ results = results.filter((r) => r.status === status);
41
+ }
42
+ if (completedOnly === true) {
43
+ results = results.filter((r) => r.completed);
44
+ }
45
+ if (count != null && count > 0) {
46
+ results = results.slice(-count);
47
+ }
48
+ return results;
49
+ }
50
+ // Search requests by URL
51
+ search(urlPattern, maxResults = 50) {
52
+ const pattern = urlPattern.toLowerCase();
53
+ const results = Array.from(this.requests.values())
54
+ .filter((r) => r.url.toLowerCase().includes(pattern))
55
+ .sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
56
+ if (maxResults > 0) {
57
+ return results.slice(-maxResults);
58
+ }
59
+ return results;
60
+ }
61
+ clear() {
62
+ const count = this.requests.size;
63
+ this.requests.clear();
64
+ this.order = [];
65
+ return count;
66
+ }
67
+ get size() {
68
+ return this.requests.size;
69
+ }
70
+ }
71
+ // Format a single request for display
72
+ export function formatRequest(request) {
73
+ const time = request.timestamp.toLocaleTimeString();
74
+ const status = request.status ?? "pending";
75
+ const duration = request.timing?.duration ? `${request.timing.duration}ms` : "-";
76
+ let line = `[${request.requestId}] ${time} ${request.method} ${status} ${duration} ${request.url}`;
77
+ if (request.error) {
78
+ line += ` [ERROR: ${request.error}]`;
79
+ }
80
+ return line;
81
+ }
82
+ // Format requests for text output
83
+ export function formatRequests(requests) {
84
+ if (requests.length === 0) {
85
+ return "No network requests captured yet.";
86
+ }
87
+ return requests.map(formatRequest).join("\n");
88
+ }
89
+ // Format request details (full info)
90
+ export function formatRequestDetails(request, options = {}) {
91
+ const { maxBodyLength = 500, verbose = false } = options;
92
+ const lines = [];
93
+ lines.push(`=== ${request.method} ${request.url} ===`);
94
+ lines.push(`Request ID: ${request.requestId}`);
95
+ lines.push(`Time: ${request.timestamp.toISOString()}`);
96
+ lines.push(`Status: ${request.status ?? "pending"} ${request.statusText ?? ""}`);
97
+ if (request.timing?.duration) {
98
+ lines.push(`Duration: ${request.timing.duration}ms`);
99
+ }
100
+ if (request.mimeType) {
101
+ lines.push(`Content-Type: ${request.mimeType}`);
102
+ }
103
+ if (request.contentLength !== undefined) {
104
+ lines.push(`Content-Length: ${request.contentLength}`);
105
+ }
106
+ if (request.error) {
107
+ lines.push(`Error: ${request.error}`);
108
+ }
109
+ // Request headers
110
+ if (Object.keys(request.headers).length > 0) {
111
+ lines.push("\n--- Request Headers ---");
112
+ for (const [key, value] of Object.entries(request.headers)) {
113
+ lines.push(`${key}: ${value}`);
114
+ }
115
+ }
116
+ // Post data (with optional truncation)
117
+ if (request.postData) {
118
+ lines.push("\n--- Request Body ---");
119
+ let body = request.postData;
120
+ if (!verbose && maxBodyLength > 0 && body.length > maxBodyLength) {
121
+ body = body.slice(0, maxBodyLength) + `... [truncated: ${request.postData.length} chars]`;
122
+ }
123
+ lines.push(body);
124
+ }
125
+ // Response headers
126
+ if (request.responseHeaders && Object.keys(request.responseHeaders).length > 0) {
127
+ lines.push("\n--- Response Headers ---");
128
+ for (const [key, value] of Object.entries(request.responseHeaders)) {
129
+ lines.push(`${key}: ${value}`);
130
+ }
131
+ }
132
+ return lines.join("\n");
133
+ }
134
+ // Get network requests with formatting
135
+ export function getNetworkRequests(networkBuffer, options = {}) {
136
+ const { maxRequests = 50, method, urlPattern, status } = options;
137
+ const requests = networkBuffer.getAll({
138
+ count: maxRequests,
139
+ method,
140
+ urlPattern,
141
+ status,
142
+ completedOnly: false
143
+ });
144
+ return {
145
+ requests,
146
+ count: requests.length,
147
+ formatted: formatRequests(requests)
148
+ };
149
+ }
150
+ // Search network requests with formatting
151
+ export function searchNetworkRequests(networkBuffer, urlPattern, maxResults = 50) {
152
+ const requests = networkBuffer.search(urlPattern, maxResults);
153
+ return {
154
+ requests,
155
+ count: requests.length,
156
+ formatted: formatRequests(requests)
157
+ };
158
+ }
159
+ // Get network stats
160
+ export function getNetworkStats(networkBuffer) {
161
+ const requests = networkBuffer.getAll({});
162
+ if (requests.length === 0) {
163
+ return "No network requests captured yet.";
164
+ }
165
+ const byMethod = {};
166
+ const byStatus = {};
167
+ const byDomain = {};
168
+ let totalDuration = 0;
169
+ let completedCount = 0;
170
+ let errorCount = 0;
171
+ for (const req of requests) {
172
+ // Count by method
173
+ byMethod[req.method] = (byMethod[req.method] || 0) + 1;
174
+ // Count by status
175
+ if (req.status !== undefined) {
176
+ const statusGroup = `${Math.floor(req.status / 100)}xx`;
177
+ byStatus[statusGroup] = (byStatus[statusGroup] || 0) + 1;
178
+ }
179
+ // Count by domain
180
+ try {
181
+ const url = new URL(req.url);
182
+ byDomain[url.hostname] = (byDomain[url.hostname] || 0) + 1;
183
+ }
184
+ catch {
185
+ // Invalid URL, skip domain counting
186
+ }
187
+ // Duration stats
188
+ if (req.timing?.duration) {
189
+ totalDuration += req.timing.duration;
190
+ completedCount++;
191
+ }
192
+ if (req.error) {
193
+ errorCount++;
194
+ }
195
+ }
196
+ const lines = [];
197
+ lines.push(`Total requests: ${requests.length}`);
198
+ lines.push(`Completed: ${completedCount}`);
199
+ lines.push(`Errors: ${errorCount}`);
200
+ if (completedCount > 0) {
201
+ lines.push(`Avg duration: ${Math.round(totalDuration / completedCount)}ms`);
202
+ }
203
+ lines.push("\nBy Method:");
204
+ for (const [method, count] of Object.entries(byMethod).sort((a, b) => b[1] - a[1])) {
205
+ lines.push(` ${method}: ${count}`);
206
+ }
207
+ lines.push("\nBy Status:");
208
+ for (const [status, count] of Object.entries(byStatus).sort()) {
209
+ lines.push(` ${status}: ${count}`);
210
+ }
211
+ lines.push("\nBy Domain:");
212
+ for (const [domain, count] of Object.entries(byDomain).sort((a, b) => b[1] - a[1]).slice(0, 10)) {
213
+ lines.push(` ${domain}: ${count}`);
214
+ }
215
+ return lines.join("\n");
216
+ }
217
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import WebSocket from "ws";
2
+ import { NetworkBuffer } from "./network.js";
3
+ /**
4
+ * Returns a JS IIFE string that patches XMLHttpRequest and fetch
5
+ * to capture network requests in React Native Bridgeless targets
6
+ * where CDP Network.enable is unsupported.
7
+ */
8
+ export declare function getInterceptorScript(): string;
9
+ /**
10
+ * Injects the network interceptor script into the app via Runtime.evaluate.
11
+ * Fire-and-forget — does not wait for a response.
12
+ */
13
+ export declare function injectNetworkInterceptor(ws: WebSocket): void;
14
+ /**
15
+ * Sends Network.enable CDP command. Returns the message ID used.
16
+ */
17
+ export declare function sendNetworkEnable(ws: WebSocket): number;
18
+ /**
19
+ * Checks if console event args contain a __RN_NET__: prefixed message.
20
+ * Returns the JSON string after the prefix, or null.
21
+ */
22
+ export declare function isInterceptorEvent(args: Array<{
23
+ type?: string;
24
+ value?: unknown;
25
+ }>): string | null;
26
+ /**
27
+ * Parses an intercepted network event JSON string and routes it to the buffer.
28
+ */
29
+ export declare function applyInterceptedEvent(jsonStr: string, networkBuffer: NetworkBuffer): void;
30
+ //# sourceMappingURL=networkInterceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkInterceptor.d.ts","sourceRoot":"","sources":["../../src/core/networkInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAmG7C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAU5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAQvD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAChD,MAAM,GAAG,IAAI,CAWf;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,GAC7B,IAAI,CA6DN"}