execbro 1.11.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +4 -4
  2. package/build/__tests__/unit/appContext.test.d.ts +2 -0
  3. package/build/__tests__/unit/appContext.test.d.ts.map +1 -0
  4. package/build/__tests__/unit/appContext.test.js +70 -0
  5. package/build/__tests__/unit/appContext.test.js.map +1 -0
  6. package/build/__tests__/unit/appRequest.test.d.ts +2 -0
  7. package/build/__tests__/unit/appRequest.test.d.ts.map +1 -0
  8. package/build/__tests__/unit/appRequest.test.js +179 -0
  9. package/build/__tests__/unit/appRequest.test.js.map +1 -0
  10. package/build/__tests__/unit/contextWiring.test.d.ts +2 -0
  11. package/build/__tests__/unit/contextWiring.test.d.ts.map +1 -0
  12. package/build/__tests__/unit/contextWiring.test.js +28 -0
  13. package/build/__tests__/unit/contextWiring.test.js.map +1 -0
  14. package/build/__tests__/unit/coordinateMiss.test.d.ts +2 -0
  15. package/build/__tests__/unit/coordinateMiss.test.d.ts.map +1 -0
  16. package/build/__tests__/unit/coordinateMiss.test.js +111 -0
  17. package/build/__tests__/unit/coordinateMiss.test.js.map +1 -0
  18. package/build/__tests__/unit/deviceResolverStaleRetry.test.d.ts +2 -0
  19. package/build/__tests__/unit/deviceResolverStaleRetry.test.d.ts.map +1 -0
  20. package/build/__tests__/unit/deviceResolverStaleRetry.test.js +69 -0
  21. package/build/__tests__/unit/deviceResolverStaleRetry.test.js.map +1 -0
  22. package/build/__tests__/unit/epochRender.test.d.ts +2 -0
  23. package/build/__tests__/unit/epochRender.test.d.ts.map +1 -0
  24. package/build/__tests__/unit/epochRender.test.js +60 -0
  25. package/build/__tests__/unit/epochRender.test.js.map +1 -0
  26. package/build/__tests__/unit/executeBudget.test.d.ts +2 -0
  27. package/build/__tests__/unit/executeBudget.test.d.ts.map +1 -0
  28. package/build/__tests__/unit/executeBudget.test.js +27 -0
  29. package/build/__tests__/unit/executeBudget.test.js.map +1 -0
  30. package/build/__tests__/unit/executor.test.js +48 -6
  31. package/build/__tests__/unit/executor.test.js.map +1 -1
  32. package/build/__tests__/unit/findElementTreeReuse.test.d.ts +2 -0
  33. package/build/__tests__/unit/findElementTreeReuse.test.d.ts.map +1 -0
  34. package/build/__tests__/unit/findElementTreeReuse.test.js +77 -0
  35. package/build/__tests__/unit/findElementTreeReuse.test.js.map +1 -0
  36. package/build/__tests__/unit/getLogsEmptyContract.test.js +4 -3
  37. package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -1
  38. package/build/__tests__/unit/getLogsNativeSource.test.js +7 -8
  39. package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -1
  40. package/build/__tests__/unit/inspectorHarvest.test.js +1 -21
  41. package/build/__tests__/unit/inspectorHarvest.test.js.map +1 -1
  42. package/build/__tests__/unit/inspectorSource.test.js +1 -38
  43. package/build/__tests__/unit/inspectorSource.test.js.map +1 -1
  44. package/build/__tests__/unit/jsLogEvents.test.js +1 -0
  45. package/build/__tests__/unit/jsLogEvents.test.js.map +1 -1
  46. package/build/__tests__/unit/logBufferEpoch.test.d.ts +2 -0
  47. package/build/__tests__/unit/logBufferEpoch.test.d.ts.map +1 -0
  48. package/build/__tests__/unit/logBufferEpoch.test.js +63 -0
  49. package/build/__tests__/unit/logBufferEpoch.test.js.map +1 -0
  50. package/build/__tests__/unit/metro.test.js +18 -1
  51. package/build/__tests__/unit/metro.test.js.map +1 -1
  52. package/build/__tests__/unit/moduleRegistry.test.d.ts +2 -0
  53. package/build/__tests__/unit/moduleRegistry.test.d.ts.map +1 -0
  54. package/build/__tests__/unit/moduleRegistry.test.js +62 -0
  55. package/build/__tests__/unit/moduleRegistry.test.js.map +1 -0
  56. package/build/__tests__/unit/navigateVerify.test.d.ts +2 -0
  57. package/build/__tests__/unit/navigateVerify.test.d.ts.map +1 -0
  58. package/build/__tests__/unit/navigateVerify.test.js +30 -0
  59. package/build/__tests__/unit/navigateVerify.test.js.map +1 -0
  60. package/build/__tests__/unit/navigation.test.d.ts +2 -0
  61. package/build/__tests__/unit/navigation.test.d.ts.map +1 -0
  62. package/build/__tests__/unit/navigation.test.js +254 -0
  63. package/build/__tests__/unit/navigation.test.js.map +1 -0
  64. package/build/__tests__/unit/network.test.js +1 -0
  65. package/build/__tests__/unit/network.test.js.map +1 -1
  66. package/build/__tests__/unit/networkBufferEpoch.test.d.ts +2 -0
  67. package/build/__tests__/unit/networkBufferEpoch.test.d.ts.map +1 -0
  68. package/build/__tests__/unit/networkBufferEpoch.test.js +52 -0
  69. package/build/__tests__/unit/networkBufferEpoch.test.js.map +1 -0
  70. package/build/__tests__/unit/networkInterceptor.test.js +7 -7
  71. package/build/__tests__/unit/networkInterceptor.test.js.map +1 -1
  72. package/build/__tests__/unit/promiseHandles.test.d.ts +2 -0
  73. package/build/__tests__/unit/promiseHandles.test.d.ts.map +1 -0
  74. package/build/__tests__/unit/promiseHandles.test.js +61 -0
  75. package/build/__tests__/unit/promiseHandles.test.js.map +1 -0
  76. package/build/__tests__/unit/resolveBufferOffline.test.d.ts +2 -0
  77. package/build/__tests__/unit/resolveBufferOffline.test.d.ts.map +1 -0
  78. package/build/__tests__/unit/resolveBufferOffline.test.js +25 -0
  79. package/build/__tests__/unit/resolveBufferOffline.test.js.map +1 -0
  80. package/build/__tests__/unit/sdkMirrorPoller.test.d.ts +2 -0
  81. package/build/__tests__/unit/sdkMirrorPoller.test.d.ts.map +1 -0
  82. package/build/__tests__/unit/sdkMirrorPoller.test.js +118 -0
  83. package/build/__tests__/unit/sdkMirrorPoller.test.js.map +1 -0
  84. package/build/__tests__/unit/sessionEpoch.test.d.ts +2 -0
  85. package/build/__tests__/unit/sessionEpoch.test.d.ts.map +1 -0
  86. package/build/__tests__/unit/sessionEpoch.test.js +41 -0
  87. package/build/__tests__/unit/sessionEpoch.test.js.map +1 -0
  88. package/build/__tests__/unit/settleAndDiff.test.d.ts +2 -0
  89. package/build/__tests__/unit/settleAndDiff.test.d.ts.map +1 -0
  90. package/build/__tests__/unit/settleAndDiff.test.js +110 -0
  91. package/build/__tests__/unit/settleAndDiff.test.js.map +1 -0
  92. package/build/__tests__/unit/truncate.test.d.ts +2 -0
  93. package/build/__tests__/unit/truncate.test.d.ts.map +1 -0
  94. package/build/__tests__/unit/truncate.test.js +58 -0
  95. package/build/__tests__/unit/truncate.test.js.map +1 -0
  96. package/build/__tests__/unit/verifyAction.test.js +2 -1
  97. package/build/__tests__/unit/verifyAction.test.js.map +1 -1
  98. package/build/__tests__/unit/waitForMeasurements.test.d.ts +2 -0
  99. package/build/__tests__/unit/waitForMeasurements.test.d.ts.map +1 -0
  100. package/build/__tests__/unit/waitForMeasurements.test.js +69 -0
  101. package/build/__tests__/unit/waitForMeasurements.test.js.map +1 -0
  102. package/build/core/android.d.ts +3 -1
  103. package/build/core/android.d.ts.map +1 -1
  104. package/build/core/android.js +5 -5
  105. package/build/core/android.js.map +1 -1
  106. package/build/core/appContext.d.ts +53 -0
  107. package/build/core/appContext.d.ts.map +1 -0
  108. package/build/core/appContext.js +172 -0
  109. package/build/core/appContext.js.map +1 -0
  110. package/build/core/appRequest.d.ts +21 -0
  111. package/build/core/appRequest.d.ts.map +1 -0
  112. package/build/core/appRequest.js +95 -0
  113. package/build/core/appRequest.js.map +1 -0
  114. package/build/core/bufferConfig.d.ts +5 -0
  115. package/build/core/bufferConfig.d.ts.map +1 -0
  116. package/build/core/bufferConfig.js +20 -0
  117. package/build/core/bufferConfig.js.map +1 -0
  118. package/build/core/connection.d.ts.map +1 -1
  119. package/build/core/connection.js +29 -9
  120. package/build/core/connection.js.map +1 -1
  121. package/build/core/debugGlobals.d.ts.map +1 -1
  122. package/build/core/debugGlobals.js +13 -0
  123. package/build/core/debugGlobals.js.map +1 -1
  124. package/build/core/deviceDiscovery.d.ts +5 -1
  125. package/build/core/deviceDiscovery.d.ts.map +1 -1
  126. package/build/core/deviceDiscovery.js +13 -2
  127. package/build/core/deviceDiscovery.js.map +1 -1
  128. package/build/core/deviceResolver.d.ts.map +1 -1
  129. package/build/core/deviceResolver.js +17 -2
  130. package/build/core/deviceResolver.js.map +1 -1
  131. package/build/core/epochRender.d.ts +19 -0
  132. package/build/core/epochRender.d.ts.map +1 -0
  133. package/build/core/epochRender.js +38 -0
  134. package/build/core/epochRender.js.map +1 -0
  135. package/build/core/guides.d.ts.map +1 -1
  136. package/build/core/guides.js +36 -91
  137. package/build/core/guides.js.map +1 -1
  138. package/build/core/index.d.ts +2 -3
  139. package/build/core/index.d.ts.map +1 -1
  140. package/build/core/index.js +4 -4
  141. package/build/core/index.js.map +1 -1
  142. package/build/core/inspector.d.ts +0 -39
  143. package/build/core/inspector.d.ts.map +1 -1
  144. package/build/core/inspector.js +1 -358
  145. package/build/core/inspector.js.map +1 -1
  146. package/build/core/ios.d.ts +14 -3
  147. package/build/core/ios.d.ts.map +1 -1
  148. package/build/core/ios.js +41 -17
  149. package/build/core/ios.js.map +1 -1
  150. package/build/core/jsExecute.d.ts +15 -0
  151. package/build/core/jsExecute.d.ts.map +1 -1
  152. package/build/core/jsExecute.js +136 -29
  153. package/build/core/jsExecute.js.map +1 -1
  154. package/build/core/logs.d.ts +12 -3
  155. package/build/core/logs.d.ts.map +1 -1
  156. package/build/core/logs.js +28 -5
  157. package/build/core/logs.js.map +1 -1
  158. package/build/core/metro.d.ts +2 -0
  159. package/build/core/metro.d.ts.map +1 -1
  160. package/build/core/metro.js +16 -8
  161. package/build/core/metro.js.map +1 -1
  162. package/build/core/moduleRegistry.d.ts +19 -0
  163. package/build/core/moduleRegistry.d.ts.map +1 -0
  164. package/build/core/moduleRegistry.js +67 -0
  165. package/build/core/moduleRegistry.js.map +1 -0
  166. package/build/core/nativeOnlyHints.d.ts.map +1 -1
  167. package/build/core/nativeOnlyHints.js +0 -2
  168. package/build/core/nativeOnlyHints.js.map +1 -1
  169. package/build/core/navigate.d.ts +46 -0
  170. package/build/core/navigate.d.ts.map +1 -0
  171. package/build/core/navigate.js +119 -0
  172. package/build/core/navigate.js.map +1 -0
  173. package/build/core/navigation.d.ts +66 -0
  174. package/build/core/navigation.d.ts.map +1 -0
  175. package/build/core/navigation.js +269 -0
  176. package/build/core/navigation.js.map +1 -0
  177. package/build/core/network.d.ts +12 -2
  178. package/build/core/network.d.ts.map +1 -1
  179. package/build/core/network.js +52 -12
  180. package/build/core/network.js.map +1 -1
  181. package/build/core/networkInterceptor.d.ts +1 -1
  182. package/build/core/networkInterceptor.d.ts.map +1 -1
  183. package/build/core/networkInterceptor.js +3 -2
  184. package/build/core/networkInterceptor.js.map +1 -1
  185. package/build/core/pressables.d.ts +33 -0
  186. package/build/core/pressables.d.ts.map +1 -1
  187. package/build/core/pressables.js +73 -4
  188. package/build/core/pressables.js.map +1 -1
  189. package/build/core/promiseHandles.d.ts +19 -0
  190. package/build/core/promiseHandles.d.ts.map +1 -0
  191. package/build/core/promiseHandles.js +58 -0
  192. package/build/core/promiseHandles.js.map +1 -0
  193. package/build/core/register.d.ts.map +1 -1
  194. package/build/core/register.js +1 -4
  195. package/build/core/register.js.map +1 -1
  196. package/build/core/sdkMirrorPoller.d.ts +31 -0
  197. package/build/core/sdkMirrorPoller.d.ts.map +1 -0
  198. package/build/core/sdkMirrorPoller.js +210 -0
  199. package/build/core/sdkMirrorPoller.js.map +1 -0
  200. package/build/core/state.d.ts +14 -0
  201. package/build/core/state.d.ts.map +1 -1
  202. package/build/core/state.js +48 -2
  203. package/build/core/state.js.map +1 -1
  204. package/build/core/toolHelpers.d.ts.map +1 -1
  205. package/build/core/toolHelpers.js +42 -10
  206. package/build/core/toolHelpers.js.map +1 -1
  207. package/build/core/truncate.d.ts +42 -0
  208. package/build/core/truncate.d.ts.map +1 -0
  209. package/build/core/truncate.js +169 -0
  210. package/build/core/truncate.js.map +1 -0
  211. package/build/core/types.d.ts +3 -0
  212. package/build/core/types.d.ts.map +1 -1
  213. package/build/index.d.ts.map +1 -1
  214. package/build/index.js +4 -2
  215. package/build/index.js.map +1 -1
  216. package/build/pro/coordinateMiss.d.ts +55 -0
  217. package/build/pro/coordinateMiss.d.ts.map +1 -0
  218. package/build/pro/coordinateMiss.js +122 -0
  219. package/build/pro/coordinateMiss.js.map +1 -0
  220. package/build/pro/tap.d.ts +8 -0
  221. package/build/pro/tap.d.ts.map +1 -1
  222. package/build/pro/tap.js +99 -11
  223. package/build/pro/tap.js.map +1 -1
  224. package/build/pro/verifyAction.d.ts +43 -2
  225. package/build/pro/verifyAction.d.ts.map +1 -1
  226. package/build/pro/verifyAction.js +95 -36
  227. package/build/pro/verifyAction.js.map +1 -1
  228. package/build/tools/_deviceArg.d.ts +17 -1
  229. package/build/tools/_deviceArg.d.ts.map +1 -1
  230. package/build/tools/_deviceArg.js +17 -1
  231. package/build/tools/_deviceArg.js.map +1 -1
  232. package/build/tools/bundleTools.d.ts.map +1 -1
  233. package/build/tools/bundleTools.js +20 -33
  234. package/build/tools/bundleTools.js.map +1 -1
  235. package/build/tools/componentTools.d.ts.map +1 -1
  236. package/build/tools/componentTools.js +41 -219
  237. package/build/tools/componentTools.js.map +1 -1
  238. package/build/tools/connectionTools.d.ts.map +1 -1
  239. package/build/tools/connectionTools.js +17 -22
  240. package/build/tools/connectionTools.js.map +1 -1
  241. package/build/tools/deviceTools.d.ts.map +1 -1
  242. package/build/tools/deviceTools.js +13 -167
  243. package/build/tools/deviceTools.js.map +1 -1
  244. package/build/tools/executionTools.d.ts.map +1 -1
  245. package/build/tools/executionTools.js +63 -18
  246. package/build/tools/executionTools.js.map +1 -1
  247. package/build/tools/interactionTools.d.ts +6 -0
  248. package/build/tools/interactionTools.d.ts.map +1 -1
  249. package/build/tools/interactionTools.js +41 -56
  250. package/build/tools/interactionTools.js.map +1 -1
  251. package/build/tools/logTools.d.ts.map +1 -1
  252. package/build/tools/logTools.js +61 -80
  253. package/build/tools/logTools.js.map +1 -1
  254. package/build/tools/metaTools.js +1 -1
  255. package/build/tools/metaTools.js.map +1 -1
  256. package/build/tools/navigationTools.d.ts +3 -0
  257. package/build/tools/navigationTools.d.ts.map +1 -0
  258. package/build/tools/navigationTools.js +60 -0
  259. package/build/tools/navigationTools.js.map +1 -0
  260. package/build/tools/networkTools.d.ts.map +1 -1
  261. package/build/tools/networkTools.js +44 -202
  262. package/build/tools/networkTools.js.map +1 -1
  263. package/build/tools/reduxTools.d.ts.map +1 -1
  264. package/build/tools/reduxTools.js +3 -2
  265. package/build/tools/reduxTools.js.map +1 -1
  266. package/build/tools/requestTools.d.ts +3 -0
  267. package/build/tools/requestTools.d.ts.map +1 -0
  268. package/build/tools/requestTools.js +79 -0
  269. package/build/tools/requestTools.js.map +1 -0
  270. package/build/tools/screenshotTools.d.ts.map +1 -1
  271. package/build/tools/screenshotTools.js +42 -25
  272. package/build/tools/screenshotTools.js.map +1 -1
  273. package/package.json +1 -1
  274. package/tools.json +22 -78
  275. package/build/__tests__/unit/flowpoints.test.d.ts +0 -2
  276. package/build/__tests__/unit/flowpoints.test.d.ts.map +0 -1
  277. package/build/__tests__/unit/flowpoints.test.js +0 -126
  278. package/build/__tests__/unit/flowpoints.test.js.map +0 -1
  279. package/build/__tests__/unit/flowpointsQuery.test.d.ts +0 -2
  280. package/build/__tests__/unit/flowpointsQuery.test.d.ts.map +0 -1
  281. package/build/__tests__/unit/flowpointsQuery.test.js +0 -91
  282. package/build/__tests__/unit/flowpointsQuery.test.js.map +0 -1
  283. package/build/__tests__/unit/selectionPoller.test.d.ts +0 -2
  284. package/build/__tests__/unit/selectionPoller.test.d.ts.map +0 -1
  285. package/build/__tests__/unit/selectionPoller.test.js +0 -109
  286. package/build/__tests__/unit/selectionPoller.test.js.map +0 -1
  287. package/build/__tests__/unit/verifyFlow.test.d.ts +0 -2
  288. package/build/__tests__/unit/verifyFlow.test.d.ts.map +0 -1
  289. package/build/__tests__/unit/verifyFlow.test.js +0 -45
  290. package/build/__tests__/unit/verifyFlow.test.js.map +0 -1
  291. package/build/core/selectionPoller.d.ts +0 -13
  292. package/build/core/selectionPoller.d.ts.map +0 -1
  293. package/build/core/selectionPoller.js +0 -102
  294. package/build/core/selectionPoller.js.map +0 -1
  295. package/build/pro/flowpointTools.d.ts +0 -4
  296. package/build/pro/flowpointTools.d.ts.map +0 -1
  297. package/build/pro/flowpointTools.js +0 -266
  298. package/build/pro/flowpointTools.js.map +0 -1
  299. package/build/pro/flowpoints.d.ts +0 -86
  300. package/build/pro/flowpoints.d.ts.map +0 -1
  301. package/build/pro/flowpoints.js +0 -283
  302. package/build/pro/flowpoints.js.map +0 -1
@@ -0,0 +1,119 @@
1
+ import { executeInApp } from "./jsExecute.js";
2
+ import { buildNavHandlesSource, buildRouteTableSource, buildNearestRoutesSource, buildNavigateSource } from "./navigation.js";
3
+ /**
4
+ * Poll schedule for confirming a navigation.
5
+ *
6
+ * Same-evaluation reads are unreliable in a way that varies BY APP: astro-app
7
+ * read stale (reporting no change for a navigation that succeeded), gifted read
8
+ * fresh. Both React Navigation, both measured 2026-07-31. Since the behaviour
9
+ * cannot be predicted, verification is always a separate, delayed read — an app
10
+ * that happens to read fresh simply settles on the first poll and costs one
11
+ * round trip rather than four.
12
+ */
13
+ export const POLL_DELAYS_MS = [150, 350, 600, 900];
14
+ /**
15
+ * `changed: false` and `indeterminate` mean different things and must not be
16
+ * collapsed: the first says a guard bounced us or the destination was already
17
+ * current; the second says we never obtained a settled reading at all.
18
+ */
19
+ export function classifyNavigationOutcome(before, after, settled) {
20
+ if (!settled)
21
+ return { changed: false, indeterminate: true };
22
+ return { changed: before !== after, indeterminate: false };
23
+ }
24
+ function preamble() {
25
+ return `${buildNavHandlesSource()}\n${buildRouteTableSource()}\n${buildNearestRoutesSource()}`;
26
+ }
27
+ /**
28
+ * Read the settled position: current route, the active stack path, and the
29
+ * route table (so a caller asking for it does not pay a second round trip).
30
+ */
31
+ function readStateExpression() {
32
+ return `(function(){ ${preamble()}
33
+ var t = __eb_routeTable();
34
+ var reader = __eb_nav && __eb_nav.stateReader;
35
+ var stack = [];
36
+ if (reader && typeof reader.getRootState === 'function') {
37
+ try {
38
+ var s = reader.getRootState();
39
+ var guard = 0;
40
+ while (s && s.routes && guard < 8) {
41
+ var i = (typeof s.index === 'number') ? s.index : s.routes.length - 1;
42
+ var r = s.routes[i];
43
+ if (!r) break;
44
+ stack.push(r.name);
45
+ s = r.state;
46
+ guard++;
47
+ }
48
+ } catch (e) { /* leave the stack partial rather than failing the read */ }
49
+ }
50
+ return JSON.stringify({ current: t.current, stack: stack, all: t.all });
51
+ })()`;
52
+ }
53
+ export async function performNavigation(opts) {
54
+ const { action, to = null, params, device, includeRouteTable } = opts;
55
+ const perform = `(function(){ ${preamble()}
56
+ return JSON.stringify(${buildNavigateSource(action, to, params ?? null)});
57
+ })()`;
58
+ const performed = await executeInApp(perform, false, { originatingToolName: "navigate" }, device);
59
+ if (!performed.success) {
60
+ return {
61
+ success: false, kind: null, action, to,
62
+ route: { before: null, after: null }, changed: false, indeterminate: false,
63
+ error: performed.error
64
+ };
65
+ }
66
+ let head;
67
+ try {
68
+ head = JSON.parse(String(performed.result));
69
+ }
70
+ catch {
71
+ return {
72
+ success: false, kind: null, action, to,
73
+ route: { before: null, after: null }, changed: false, indeterminate: false,
74
+ error: `Unparseable navigation result: ${String(performed.result).slice(0, 200)}`
75
+ };
76
+ }
77
+ const before = head.before ?? null;
78
+ if (!head.ok) {
79
+ return {
80
+ success: false, kind: head.kind, action, to,
81
+ route: { before, after: before }, changed: false, indeterminate: false,
82
+ error: head.error
83
+ };
84
+ }
85
+ // Settle-poll. Exit as soon as the route moves, so an app whose state reads
86
+ // fresh pays one round trip instead of four.
87
+ let after = before;
88
+ let stack = [];
89
+ let all = [];
90
+ let settled = false;
91
+ for (const delay of POLL_DELAYS_MS) {
92
+ await new Promise((r) => setTimeout(r, delay));
93
+ const read = await executeInApp(readStateExpression(), false, { originatingToolName: "navigate" }, device);
94
+ if (!read.success)
95
+ continue;
96
+ try {
97
+ const parsed = JSON.parse(String(read.result));
98
+ after = parsed.current;
99
+ stack = parsed.stack;
100
+ all = parsed.all;
101
+ settled = true;
102
+ if (after !== before)
103
+ break;
104
+ }
105
+ catch {
106
+ // Try the next poll rather than failing the whole navigation.
107
+ }
108
+ }
109
+ const outcome = classifyNavigationOutcome(before, after, settled);
110
+ return {
111
+ success: true, kind: head.kind, action, to,
112
+ route: { before, after },
113
+ changed: outcome.changed,
114
+ indeterminate: outcome.indeterminate,
115
+ stack,
116
+ routeTable: includeRouteTable ? all : undefined
117
+ };
118
+ }
119
+ //# sourceMappingURL=navigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../../src/core/navigate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Injected source resolving BOTH navigation handles.
3
+ *
4
+ * Neither library provides both capabilities (measured 2026-07-31 across three
5
+ * apps):
6
+ * - Expo Router's `router` navigates by path but has no getRootState, so it
7
+ * cannot say where the app currently is.
8
+ * - A React Navigation root ref reads state but has no push/replace (those
9
+ * are stack-scoped), and silently no-ops on Expo Router's path
10
+ * destinations — throwing nothing and warning only to LogBox.
11
+ *
12
+ * So `navigator` performs movement and `stateReader` reports position. On an
13
+ * Expo Router app they are different objects.
14
+ *
15
+ * Resolution follows the order in appContext.ts: the Metro module registry
16
+ * outranks app-exposed globals, because Boardwise's `__EXPO_ROUTER__` turned
17
+ * out to be a hand-built wrapper rather than the library's router.
18
+ *
19
+ * The __EB_TEST_* hooks let the resolver be exercised without a fiber tree.
20
+ * They are read only when present and cost nothing in production.
21
+ *
22
+ * ES5 only — Hermes compiles this string.
23
+ */
24
+ export declare function buildNavHandlesSource(): string;
25
+ /**
26
+ * Injected source extracting the app's route table.
27
+ *
28
+ * React Navigation state carries `routeNames` per navigator — every registered
29
+ * route at that level, not merely the mounted ones — so the whole table is
30
+ * reachable without app cooperation. Boardwise's debug/navigation-debugger.tsx
31
+ * hand-computes this today; this replaces it.
32
+ *
33
+ * Measured tables: gifted 41 routes across 3 levels, Boardwise 25 across 3,
34
+ * astro 5 across 2.
35
+ *
36
+ * Requires __eb_nav. ES5 only.
37
+ */
38
+ export declare function buildRouteTableSource(): string;
39
+ /**
40
+ * Injected scorer for route-name suggestions.
41
+ *
42
+ * gifted registers 41 routes with names like CheckoutVerification and
43
+ * AssociatedAccountVerification, so listing them all in an error is noise
44
+ * exactly where the reader is already confused. Rank by closeness, show a few.
45
+ *
46
+ * Levenshtein is affordable here — route tables are tens of entries, not
47
+ * thousands — and it catches the dropped-letter and transposition typos that
48
+ * substring matching misses ("CheckoutVerfication").
49
+ *
50
+ * ES5 only.
51
+ */
52
+ export declare function buildNearestRoutesSource(): string;
53
+ export type NavAction = "navigate" | "push" | "replace" | "back" | "reset";
54
+ /**
55
+ * Injected source that validates, then performs, one navigation.
56
+ *
57
+ * Validation matters because the failure mode is silent: a path sent to a
58
+ * React Navigation ref throws nothing, changes nothing, and reports only to
59
+ * LogBox. Validating against the real route table converts that into an error
60
+ * before dispatch. Expo Router destinations are paths, which never appear in
61
+ * routeNames, so validation applies to React Navigation only.
62
+ *
63
+ * ES5 only.
64
+ */
65
+ export declare function buildNavigateSource(action: string, to: string | null, params: Record<string, unknown> | null): string;
66
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/core/navigation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAoE9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAgC9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAwCjD;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACvC,MAAM,CAgER"}
@@ -0,0 +1,269 @@
1
+ import { buildRequireSource } from "./moduleRegistry.js";
2
+ /**
3
+ * Injected source resolving BOTH navigation handles.
4
+ *
5
+ * Neither library provides both capabilities (measured 2026-07-31 across three
6
+ * apps):
7
+ * - Expo Router's `router` navigates by path but has no getRootState, so it
8
+ * cannot say where the app currently is.
9
+ * - A React Navigation root ref reads state but has no push/replace (those
10
+ * are stack-scoped), and silently no-ops on Expo Router's path
11
+ * destinations — throwing nothing and warning only to LogBox.
12
+ *
13
+ * So `navigator` performs movement and `stateReader` reports position. On an
14
+ * Expo Router app they are different objects.
15
+ *
16
+ * Resolution follows the order in appContext.ts: the Metro module registry
17
+ * outranks app-exposed globals, because Boardwise's `__EXPO_ROUTER__` turned
18
+ * out to be a hand-built wrapper rather than the library's router.
19
+ *
20
+ * The __EB_TEST_* hooks let the resolver be exercised without a fiber tree.
21
+ * They are read only when present and cost nothing in production.
22
+ *
23
+ * ES5 only — Hermes compiles this string.
24
+ */
25
+ export function buildNavHandlesSource() {
26
+ return `
27
+ ${buildRequireSource()}
28
+ var __eb_nav = (function () {
29
+ function isExpoRouter(v) {
30
+ return !!v && typeof v.navigate === 'function' && typeof v.dismiss === 'function';
31
+ }
32
+ function isRnRoot(v) {
33
+ return !!v && typeof v.navigate === 'function' && typeof v.resetRoot === 'function';
34
+ }
35
+ function findFiberNav() {
36
+ if (globalThis.__EB_TEST_FIBER_NAV__) return globalThis.__EB_TEST_FIBER_NAV__;
37
+ try {
38
+ var hook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
39
+ if (!hook || typeof hook.getFiberRoots !== 'function' || !hook.renderers) return null;
40
+ var best = null;
41
+ var bestDepth = 1e9;
42
+ var ids = [];
43
+ hook.renderers.forEach(function (_, k) { ids.push(k); });
44
+ var walk = function (f, d) {
45
+ if (!f || d > 1600) return;
46
+ var p = f.memoizedProps;
47
+ if (p) {
48
+ var c = isRnRoot(p.value) ? p.value : (isRnRoot(p.navigation) ? p.navigation : null);
49
+ if (c && d < bestDepth) { best = c; bestDepth = d; }
50
+ }
51
+ if (f.child) walk(f.child, d + 1);
52
+ if (f.sibling) walk(f.sibling, d);
53
+ };
54
+ for (var i = 0; i < ids.length; i++) {
55
+ var roots = hook.getFiberRoots(ids[i]);
56
+ if (!roots) continue;
57
+ roots.forEach(function (r) { walk(r.current, 0); });
58
+ }
59
+ return best;
60
+ } catch (e) { return null; }
61
+ }
62
+ function findModuleRouter() {
63
+ if (globalThis.__EB_TEST_MODULE_ROUTER__) return globalThis.__EB_TEST_MODULE_ROUTER__;
64
+ try {
65
+ var m = __eb_require('expo-router/build/imperative-api');
66
+ if (m && isExpoRouter(m.router)) return m.router;
67
+ } catch (e) { /* fall through */ }
68
+ return null;
69
+ }
70
+
71
+ var moduleRouter = findModuleRouter();
72
+ var fiberNav = findFiberNav();
73
+
74
+ if (moduleRouter) {
75
+ return {
76
+ navigator: moduleRouter,
77
+ stateReader: fiberNav || null,
78
+ kind: 'expo-router',
79
+ note: fiberNav ? null : 'Expo Router resolved, but no React Navigation root ref was found, so route state and destination validation are unavailable.'
80
+ };
81
+ }
82
+ if (fiberNav) {
83
+ return { navigator: fiberNav, stateReader: fiberNav, kind: 'react-navigation', note: null };
84
+ }
85
+ return {
86
+ navigator: null,
87
+ stateReader: null,
88
+ kind: null,
89
+ note: 'No router resolved. Tried the Metro module registry (expo-router) and a fiber walk for a React Navigation root ref.'
90
+ };
91
+ })();
92
+ `.trim();
93
+ }
94
+ /**
95
+ * Injected source extracting the app's route table.
96
+ *
97
+ * React Navigation state carries `routeNames` per navigator — every registered
98
+ * route at that level, not merely the mounted ones — so the whole table is
99
+ * reachable without app cooperation. Boardwise's debug/navigation-debugger.tsx
100
+ * hand-computes this today; this replaces it.
101
+ *
102
+ * Measured tables: gifted 41 routes across 3 levels, Boardwise 25 across 3,
103
+ * astro 5 across 2.
104
+ *
105
+ * Requires __eb_nav. ES5 only.
106
+ */
107
+ export function buildRouteTableSource() {
108
+ return `
109
+ function __eb_routeTable() {
110
+ var out = { levels: [], all: [], current: null };
111
+ var reader = __eb_nav && __eb_nav.stateReader;
112
+ if (!reader || typeof reader.getRootState !== 'function') return out;
113
+ var root;
114
+ try { root = reader.getRootState(); } catch (e) { return out; }
115
+ var seen = {};
116
+ function collect(st, d) {
117
+ if (!st || d > 6) return;
118
+ if (st.routeNames && st.routeNames.length) {
119
+ out.levels.push({ depth: d, type: st.type || 'unknown', routeNames: st.routeNames });
120
+ for (var i = 0; i < st.routeNames.length; i++) {
121
+ var n = st.routeNames[i];
122
+ if (!Object.prototype.hasOwnProperty.call(seen, n)) { seen[n] = 1; out.all.push(n); }
123
+ }
124
+ }
125
+ if (st.routes) {
126
+ for (var j = 0; j < st.routes.length; j++) {
127
+ if (st.routes[j] && st.routes[j].state) collect(st.routes[j].state, d + 1);
128
+ }
129
+ }
130
+ }
131
+ collect(root, 0);
132
+ try {
133
+ var cur = typeof reader.getCurrentRoute === 'function' ? reader.getCurrentRoute() : null;
134
+ out.current = cur ? cur.name : null;
135
+ } catch (e) { out.current = null; }
136
+ return out;
137
+ }
138
+ `.trim();
139
+ }
140
+ /**
141
+ * Injected scorer for route-name suggestions.
142
+ *
143
+ * gifted registers 41 routes with names like CheckoutVerification and
144
+ * AssociatedAccountVerification, so listing them all in an error is noise
145
+ * exactly where the reader is already confused. Rank by closeness, show a few.
146
+ *
147
+ * Levenshtein is affordable here — route tables are tens of entries, not
148
+ * thousands — and it catches the dropped-letter and transposition typos that
149
+ * substring matching misses ("CheckoutVerfication").
150
+ *
151
+ * ES5 only.
152
+ */
153
+ export function buildNearestRoutesSource() {
154
+ return `
155
+ function __eb_editDistance(a, b) {
156
+ var m = a.length, n = b.length;
157
+ if (!m) return n;
158
+ if (!n) return m;
159
+ var prev = [], cur = [], i, j;
160
+ for (j = 0; j <= n; j++) prev[j] = j;
161
+ for (i = 1; i <= m; i++) {
162
+ cur[0] = i;
163
+ for (j = 1; j <= n; j++) {
164
+ var cost = a.charAt(i - 1) === b.charAt(j - 1) ? 0 : 1;
165
+ cur[j] = Math.min(prev[j] + 1, cur[j - 1] + 1, prev[j - 1] + cost);
166
+ }
167
+ for (j = 0; j <= n; j++) prev[j] = cur[j];
168
+ }
169
+ return prev[n];
170
+ }
171
+ function __eb_nearestRoutes(needle, names, limit) {
172
+ var lowerNeedle = String(needle).toLowerCase();
173
+ var scored = [];
174
+ for (var i = 0; i < names.length; i++) {
175
+ var name = names[i];
176
+ var lower = name.toLowerCase();
177
+ var score;
178
+ if (lower === lowerNeedle) score = -3;
179
+ else if (lower.indexOf(lowerNeedle) === 0) score = -2;
180
+ else if (lower.indexOf(lowerNeedle) !== -1) score = -1;
181
+ else score = __eb_editDistance(lowerNeedle, lower);
182
+ scored.push({ name: name, score: score });
183
+ }
184
+ scored.sort(function (x, y) { return x.score - y.score; });
185
+ var out = [];
186
+ var cutoff = Math.max(3, Math.ceil(lowerNeedle.length / 2));
187
+ for (var k = 0; k < scored.length && out.length < limit; k++) {
188
+ if (scored[k].score <= cutoff) out.push(scored[k].name);
189
+ }
190
+ return out;
191
+ }
192
+ `.trim();
193
+ }
194
+ /**
195
+ * Injected source that validates, then performs, one navigation.
196
+ *
197
+ * Validation matters because the failure mode is silent: a path sent to a
198
+ * React Navigation ref throws nothing, changes nothing, and reports only to
199
+ * LogBox. Validating against the real route table converts that into an error
200
+ * before dispatch. Expo Router destinations are paths, which never appear in
201
+ * routeNames, so validation applies to React Navigation only.
202
+ *
203
+ * ES5 only.
204
+ */
205
+ export function buildNavigateSource(action, to, params) {
206
+ const actionLit = JSON.stringify(action);
207
+ const toLit = JSON.stringify(to);
208
+ const paramsLit = JSON.stringify(params);
209
+ return `(function(){
210
+ var action = ${actionLit};
211
+ var to = ${toLit};
212
+ var params = ${paramsLit};
213
+ var nav = __eb_nav;
214
+ if (!nav || !nav.navigator) {
215
+ return { ok: false, kind: null, error: nav && nav.note ? nav.note : 'No router resolved.' };
216
+ }
217
+ var n = nav.navigator;
218
+ var table = __eb_routeTable();
219
+ var before = table.current;
220
+
221
+ if (action !== 'back' && action !== 'reset' && !to) {
222
+ return { ok: false, kind: nav.kind, error: 'A destination is required for action "' + action + '".', before: before };
223
+ }
224
+
225
+ if (nav.kind === 'react-navigation' && to && table.all.length) {
226
+ var known = false;
227
+ for (var i = 0; i < table.all.length; i++) { if (table.all[i] === to) { known = true; break; } }
228
+ if (!known) {
229
+ var suggestions = __eb_nearestRoutes(to, table.all, 5);
230
+ var extra = table.all.length - suggestions.length;
231
+ var hint = suggestions.length
232
+ ? 'Did you mean: ' + suggestions.join(', ') + (extra > 0 ? ' (' + extra + ' other routes registered)' : '')
233
+ : table.all.length + ' routes are registered.';
234
+ return {
235
+ ok: false,
236
+ kind: nav.kind,
237
+ before: before,
238
+ error: 'No route named "' + to + '" is registered. ' + hint +
239
+ ' (React Navigation takes route NAMES, not paths - a path here is silently ignored.)'
240
+ };
241
+ }
242
+ }
243
+
244
+ try {
245
+ if (action === 'back') {
246
+ if (typeof n.back === 'function') { n.back(); }
247
+ else if (typeof n.goBack === 'function') { n.goBack(); }
248
+ else { return { ok: false, kind: nav.kind, before: before, error: 'This router exposes neither back() nor goBack().' }; }
249
+ } else if (action === 'reset') {
250
+ if (typeof n.resetRoot === 'function') { n.resetRoot(); }
251
+ else if (typeof n.dismissAll === 'function') { n.dismissAll(); }
252
+ else { return { ok: false, kind: nav.kind, before: before, error: 'This router exposes neither resetRoot() nor dismissAll().' }; }
253
+ } else {
254
+ if (typeof n[action] !== 'function') {
255
+ return {
256
+ ok: false, kind: nav.kind, before: before,
257
+ error: 'Action "' + action + '" is not available on this router (' + nav.kind +
258
+ '). A React Navigation root ref exposes navigate/goBack/reset only; push and replace are stack-scoped.'
259
+ };
260
+ }
261
+ if (params) { n[action](to, params); } else { n[action](to); }
262
+ }
263
+ } catch (e) {
264
+ return { ok: false, kind: nav.kind, before: before, error: String(e && e.message ? e.message : e) };
265
+ }
266
+ return { ok: true, kind: nav.kind, before: before };
267
+ })()`;
268
+ }
269
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/core/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,qBAAqB;IACjC,OAAO;EACT,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiErB,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BV,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCV,CAAC,IAAI,EAAE,CAAC;AACT,CAAC;AAID;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAC/B,MAAc,EACd,EAAiB,EACjB,MAAsC;IAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO;mBACQ,SAAS;eACb,KAAK;mBACD,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuDvB,CAAC;AACN,CAAC"}
@@ -3,19 +3,29 @@ export declare class NetworkBuffer {
3
3
  private requests;
4
4
  private order;
5
5
  private maxSize;
6
- constructor(maxSize?: number);
6
+ private deviceName?;
7
+ private dropped;
8
+ /**
9
+ * @param deviceName Used to resolve the current epoch for get() lookups.
10
+ * Omit for merged read buffers.
11
+ */
12
+ constructor(maxSize?: number, deviceName?: string);
13
+ private key;
7
14
  set(requestId: string, request: NetworkRequest): void;
8
- get(requestId: string): NetworkRequest | undefined;
15
+ get(requestId: string, epoch?: number): NetworkRequest | undefined;
9
16
  getAll(options?: {
10
17
  count?: number;
11
18
  method?: string;
12
19
  urlPattern?: string;
13
20
  status?: number;
14
21
  completedOnly?: boolean;
22
+ epoch?: number;
15
23
  }): NetworkRequest[];
16
24
  search(urlPattern: string, maxResults?: number): NetworkRequest[];
17
25
  clear(): number;
18
26
  get size(): number;
27
+ /** Entries evicted by the capacity cap since the last clear(). */
28
+ get droppedCount(): number;
19
29
  }
20
30
  export declare function formatRequest(request: NetworkRequest): string;
21
31
  export declare function formatRequests(requests: NetworkRequest[]): string;
@@ -1 +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"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAK;IAEpB;;;OAGG;gBACS,OAAO,GAAE,MAAY,EAAE,UAAU,CAAC,EAAE,MAAM;IAKtD,OAAO,CAAC,GAAG;IAMX,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAiBrD,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAWlE,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;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,cAAc,EAAE;IAqCzB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,GAAG,cAAc,EAAE;IAYrE,KAAK,IAAI,MAAM;IAQf,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,kEAAkE;IAClE,IAAI,YAAY,IAAI,MAAM,CAEzB;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,CA8DR;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"}
@@ -1,34 +1,60 @@
1
+ import { getEpoch } from "./state.js";
1
2
  // Circular buffer for storing network requests
2
3
  export class NetworkBuffer {
3
4
  requests = new Map();
4
5
  order = [];
5
6
  maxSize;
6
- constructor(maxSize = 500) {
7
+ deviceName;
8
+ dropped = 0;
9
+ /**
10
+ * @param deviceName Used to resolve the current epoch for get() lookups.
11
+ * Omit for merged read buffers.
12
+ */
13
+ constructor(maxSize = 500, deviceName) {
7
14
  this.maxSize = maxSize;
15
+ this.deviceName = deviceName;
8
16
  }
9
- // Add or update a request
17
+ key(epoch, requestId) {
18
+ return `${epoch}:${requestId}`;
19
+ }
20
+ // Add or update a request. Keyed by epoch so a post-restart request that
21
+ // reuses an id does not clobber the pre-restart entry.
10
22
  set(requestId, request) {
11
- if (!this.requests.has(requestId)) {
12
- this.order.push(requestId);
23
+ const k = this.key(request.epoch, requestId);
24
+ if (!this.requests.has(k)) {
25
+ this.order.push(k);
13
26
  if (this.order.length > this.maxSize) {
14
- const oldestId = this.order.shift();
15
- if (oldestId) {
16
- this.requests.delete(oldestId);
27
+ const oldestKey = this.order.shift();
28
+ if (oldestKey) {
29
+ this.requests.delete(oldestKey);
30
+ this.dropped++;
17
31
  }
18
32
  }
19
33
  }
20
- this.requests.set(requestId, request);
34
+ this.requests.set(k, request);
21
35
  }
22
- // Get a request by ID
23
- get(requestId) {
24
- return this.requests.get(requestId);
36
+ // Get a request by id. Prefers the current epoch, then scans older ones so
37
+ // get_request_details still resolves a pre-restart id.
38
+ get(requestId, epoch) {
39
+ const preferred = epoch ?? (this.deviceName ? getEpoch(this.deviceName) : 1);
40
+ const direct = this.requests.get(this.key(preferred, requestId));
41
+ if (direct)
42
+ return direct;
43
+ for (const req of this.requests.values()) {
44
+ if (req.requestId === requestId)
45
+ return req;
46
+ }
47
+ return undefined;
25
48
  }
26
49
  // Get all requests (optionally filtered)
27
50
  getAll(options = {}) {
28
- const { count, method, urlPattern, status, completedOnly } = options;
51
+ const { count, method, urlPattern, status, completedOnly, epoch } = options;
29
52
  let results = Array.from(this.requests.values());
30
53
  // Sort by timestamp
31
54
  results.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
55
+ if (epoch != null) {
56
+ results = results.filter((r) => r.epoch === epoch);
57
+ }
32
58
  if (method && method.trim()) {
33
59
  results = results.filter((r) => r.method.toUpperCase() === method.toUpperCase());
34
60
  }
@@ -62,11 +88,16 @@ export class NetworkBuffer {
62
88
  const count = this.requests.size;
63
89
  this.requests.clear();
64
90
  this.order = [];
91
+ this.dropped = 0;
65
92
  return count;
66
93
  }
67
94
  get size() {
68
95
  return this.requests.size;
69
96
  }
97
+ /** Entries evicted by the capacity cap since the last clear(). */
98
+ get droppedCount() {
99
+ return this.dropped;
100
+ }
70
101
  }
71
102
  // Format a single request for display
72
103
  export function formatRequest(request) {
@@ -129,6 +160,15 @@ export function formatRequestDetails(request, options = {}) {
129
160
  lines.push(`${key}: ${value}`);
130
161
  }
131
162
  }
163
+ // Response body (SDK mirror only — CDP and the JS interceptor do not capture it)
164
+ if (request.responseBody) {
165
+ lines.push("\n--- Response Body ---");
166
+ let body = request.responseBody;
167
+ if (!verbose && maxBodyLength > 0 && body.length > maxBodyLength) {
168
+ body = body.slice(0, maxBodyLength) + `... [truncated: ${request.responseBody.length} chars]`;
169
+ }
170
+ lines.push(body);
171
+ }
132
172
  return lines.join("\n");
133
173
  }
134
174
  // Get network requests with formatting
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/core/network.ts"],"names":[],"mappings":"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"}