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.
- package/README.md +4 -4
- package/build/__tests__/unit/appContext.test.d.ts +2 -0
- package/build/__tests__/unit/appContext.test.d.ts.map +1 -0
- package/build/__tests__/unit/appContext.test.js +70 -0
- package/build/__tests__/unit/appContext.test.js.map +1 -0
- package/build/__tests__/unit/appRequest.test.d.ts +2 -0
- package/build/__tests__/unit/appRequest.test.d.ts.map +1 -0
- package/build/__tests__/unit/appRequest.test.js +179 -0
- package/build/__tests__/unit/appRequest.test.js.map +1 -0
- package/build/__tests__/unit/contextWiring.test.d.ts +2 -0
- package/build/__tests__/unit/contextWiring.test.d.ts.map +1 -0
- package/build/__tests__/unit/contextWiring.test.js +28 -0
- package/build/__tests__/unit/contextWiring.test.js.map +1 -0
- package/build/__tests__/unit/coordinateMiss.test.d.ts +2 -0
- package/build/__tests__/unit/coordinateMiss.test.d.ts.map +1 -0
- package/build/__tests__/unit/coordinateMiss.test.js +111 -0
- package/build/__tests__/unit/coordinateMiss.test.js.map +1 -0
- package/build/__tests__/unit/deviceResolverStaleRetry.test.d.ts +2 -0
- package/build/__tests__/unit/deviceResolverStaleRetry.test.d.ts.map +1 -0
- package/build/__tests__/unit/deviceResolverStaleRetry.test.js +69 -0
- package/build/__tests__/unit/deviceResolverStaleRetry.test.js.map +1 -0
- package/build/__tests__/unit/epochRender.test.d.ts +2 -0
- package/build/__tests__/unit/epochRender.test.d.ts.map +1 -0
- package/build/__tests__/unit/epochRender.test.js +60 -0
- package/build/__tests__/unit/epochRender.test.js.map +1 -0
- package/build/__tests__/unit/executeBudget.test.d.ts +2 -0
- package/build/__tests__/unit/executeBudget.test.d.ts.map +1 -0
- package/build/__tests__/unit/executeBudget.test.js +27 -0
- package/build/__tests__/unit/executeBudget.test.js.map +1 -0
- package/build/__tests__/unit/executor.test.js +48 -6
- package/build/__tests__/unit/executor.test.js.map +1 -1
- package/build/__tests__/unit/findElementTreeReuse.test.d.ts +2 -0
- package/build/__tests__/unit/findElementTreeReuse.test.d.ts.map +1 -0
- package/build/__tests__/unit/findElementTreeReuse.test.js +77 -0
- package/build/__tests__/unit/findElementTreeReuse.test.js.map +1 -0
- package/build/__tests__/unit/getLogsEmptyContract.test.js +4 -3
- package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -1
- package/build/__tests__/unit/getLogsNativeSource.test.js +7 -8
- package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -1
- package/build/__tests__/unit/inspectorHarvest.test.js +1 -21
- package/build/__tests__/unit/inspectorHarvest.test.js.map +1 -1
- package/build/__tests__/unit/inspectorSource.test.js +1 -38
- package/build/__tests__/unit/inspectorSource.test.js.map +1 -1
- package/build/__tests__/unit/jsLogEvents.test.js +1 -0
- package/build/__tests__/unit/jsLogEvents.test.js.map +1 -1
- package/build/__tests__/unit/logBufferEpoch.test.d.ts +2 -0
- package/build/__tests__/unit/logBufferEpoch.test.d.ts.map +1 -0
- package/build/__tests__/unit/logBufferEpoch.test.js +63 -0
- package/build/__tests__/unit/logBufferEpoch.test.js.map +1 -0
- package/build/__tests__/unit/metro.test.js +18 -1
- package/build/__tests__/unit/metro.test.js.map +1 -1
- package/build/__tests__/unit/moduleRegistry.test.d.ts +2 -0
- package/build/__tests__/unit/moduleRegistry.test.d.ts.map +1 -0
- package/build/__tests__/unit/moduleRegistry.test.js +62 -0
- package/build/__tests__/unit/moduleRegistry.test.js.map +1 -0
- package/build/__tests__/unit/navigateVerify.test.d.ts +2 -0
- package/build/__tests__/unit/navigateVerify.test.d.ts.map +1 -0
- package/build/__tests__/unit/navigateVerify.test.js +30 -0
- package/build/__tests__/unit/navigateVerify.test.js.map +1 -0
- package/build/__tests__/unit/navigation.test.d.ts +2 -0
- package/build/__tests__/unit/navigation.test.d.ts.map +1 -0
- package/build/__tests__/unit/navigation.test.js +254 -0
- package/build/__tests__/unit/navigation.test.js.map +1 -0
- package/build/__tests__/unit/network.test.js +1 -0
- package/build/__tests__/unit/network.test.js.map +1 -1
- package/build/__tests__/unit/networkBufferEpoch.test.d.ts +2 -0
- package/build/__tests__/unit/networkBufferEpoch.test.d.ts.map +1 -0
- package/build/__tests__/unit/networkBufferEpoch.test.js +52 -0
- package/build/__tests__/unit/networkBufferEpoch.test.js.map +1 -0
- package/build/__tests__/unit/networkInterceptor.test.js +7 -7
- package/build/__tests__/unit/networkInterceptor.test.js.map +1 -1
- package/build/__tests__/unit/promiseHandles.test.d.ts +2 -0
- package/build/__tests__/unit/promiseHandles.test.d.ts.map +1 -0
- package/build/__tests__/unit/promiseHandles.test.js +61 -0
- package/build/__tests__/unit/promiseHandles.test.js.map +1 -0
- package/build/__tests__/unit/resolveBufferOffline.test.d.ts +2 -0
- package/build/__tests__/unit/resolveBufferOffline.test.d.ts.map +1 -0
- package/build/__tests__/unit/resolveBufferOffline.test.js +25 -0
- package/build/__tests__/unit/resolveBufferOffline.test.js.map +1 -0
- package/build/__tests__/unit/sdkMirrorPoller.test.d.ts +2 -0
- package/build/__tests__/unit/sdkMirrorPoller.test.d.ts.map +1 -0
- package/build/__tests__/unit/sdkMirrorPoller.test.js +118 -0
- package/build/__tests__/unit/sdkMirrorPoller.test.js.map +1 -0
- package/build/__tests__/unit/sessionEpoch.test.d.ts +2 -0
- package/build/__tests__/unit/sessionEpoch.test.d.ts.map +1 -0
- package/build/__tests__/unit/sessionEpoch.test.js +41 -0
- package/build/__tests__/unit/sessionEpoch.test.js.map +1 -0
- package/build/__tests__/unit/settleAndDiff.test.d.ts +2 -0
- package/build/__tests__/unit/settleAndDiff.test.d.ts.map +1 -0
- package/build/__tests__/unit/settleAndDiff.test.js +110 -0
- package/build/__tests__/unit/settleAndDiff.test.js.map +1 -0
- package/build/__tests__/unit/truncate.test.d.ts +2 -0
- package/build/__tests__/unit/truncate.test.d.ts.map +1 -0
- package/build/__tests__/unit/truncate.test.js +58 -0
- package/build/__tests__/unit/truncate.test.js.map +1 -0
- package/build/__tests__/unit/verifyAction.test.js +2 -1
- package/build/__tests__/unit/verifyAction.test.js.map +1 -1
- package/build/__tests__/unit/waitForMeasurements.test.d.ts +2 -0
- package/build/__tests__/unit/waitForMeasurements.test.d.ts.map +1 -0
- package/build/__tests__/unit/waitForMeasurements.test.js +69 -0
- package/build/__tests__/unit/waitForMeasurements.test.js.map +1 -0
- package/build/core/android.d.ts +3 -1
- package/build/core/android.d.ts.map +1 -1
- package/build/core/android.js +5 -5
- package/build/core/android.js.map +1 -1
- package/build/core/appContext.d.ts +53 -0
- package/build/core/appContext.d.ts.map +1 -0
- package/build/core/appContext.js +172 -0
- package/build/core/appContext.js.map +1 -0
- package/build/core/appRequest.d.ts +21 -0
- package/build/core/appRequest.d.ts.map +1 -0
- package/build/core/appRequest.js +95 -0
- package/build/core/appRequest.js.map +1 -0
- package/build/core/bufferConfig.d.ts +5 -0
- package/build/core/bufferConfig.d.ts.map +1 -0
- package/build/core/bufferConfig.js +20 -0
- package/build/core/bufferConfig.js.map +1 -0
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +29 -9
- package/build/core/connection.js.map +1 -1
- package/build/core/debugGlobals.d.ts.map +1 -1
- package/build/core/debugGlobals.js +13 -0
- package/build/core/debugGlobals.js.map +1 -1
- package/build/core/deviceDiscovery.d.ts +5 -1
- package/build/core/deviceDiscovery.d.ts.map +1 -1
- package/build/core/deviceDiscovery.js +13 -2
- package/build/core/deviceDiscovery.js.map +1 -1
- package/build/core/deviceResolver.d.ts.map +1 -1
- package/build/core/deviceResolver.js +17 -2
- package/build/core/deviceResolver.js.map +1 -1
- package/build/core/epochRender.d.ts +19 -0
- package/build/core/epochRender.d.ts.map +1 -0
- package/build/core/epochRender.js +38 -0
- package/build/core/epochRender.js.map +1 -0
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +36 -91
- package/build/core/guides.js.map +1 -1
- package/build/core/index.d.ts +2 -3
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +4 -4
- package/build/core/index.js.map +1 -1
- package/build/core/inspector.d.ts +0 -39
- package/build/core/inspector.d.ts.map +1 -1
- package/build/core/inspector.js +1 -358
- package/build/core/inspector.js.map +1 -1
- package/build/core/ios.d.ts +14 -3
- package/build/core/ios.d.ts.map +1 -1
- package/build/core/ios.js +41 -17
- package/build/core/ios.js.map +1 -1
- package/build/core/jsExecute.d.ts +15 -0
- package/build/core/jsExecute.d.ts.map +1 -1
- package/build/core/jsExecute.js +136 -29
- package/build/core/jsExecute.js.map +1 -1
- package/build/core/logs.d.ts +12 -3
- package/build/core/logs.d.ts.map +1 -1
- package/build/core/logs.js +28 -5
- package/build/core/logs.js.map +1 -1
- package/build/core/metro.d.ts +2 -0
- package/build/core/metro.d.ts.map +1 -1
- package/build/core/metro.js +16 -8
- package/build/core/metro.js.map +1 -1
- package/build/core/moduleRegistry.d.ts +19 -0
- package/build/core/moduleRegistry.d.ts.map +1 -0
- package/build/core/moduleRegistry.js +67 -0
- package/build/core/moduleRegistry.js.map +1 -0
- package/build/core/nativeOnlyHints.d.ts.map +1 -1
- package/build/core/nativeOnlyHints.js +0 -2
- package/build/core/nativeOnlyHints.js.map +1 -1
- package/build/core/navigate.d.ts +46 -0
- package/build/core/navigate.d.ts.map +1 -0
- package/build/core/navigate.js +119 -0
- package/build/core/navigate.js.map +1 -0
- package/build/core/navigation.d.ts +66 -0
- package/build/core/navigation.d.ts.map +1 -0
- package/build/core/navigation.js +269 -0
- package/build/core/navigation.js.map +1 -0
- package/build/core/network.d.ts +12 -2
- package/build/core/network.d.ts.map +1 -1
- package/build/core/network.js +52 -12
- package/build/core/network.js.map +1 -1
- package/build/core/networkInterceptor.d.ts +1 -1
- package/build/core/networkInterceptor.d.ts.map +1 -1
- package/build/core/networkInterceptor.js +3 -2
- package/build/core/networkInterceptor.js.map +1 -1
- package/build/core/pressables.d.ts +33 -0
- package/build/core/pressables.d.ts.map +1 -1
- package/build/core/pressables.js +73 -4
- package/build/core/pressables.js.map +1 -1
- package/build/core/promiseHandles.d.ts +19 -0
- package/build/core/promiseHandles.d.ts.map +1 -0
- package/build/core/promiseHandles.js +58 -0
- package/build/core/promiseHandles.js.map +1 -0
- package/build/core/register.d.ts.map +1 -1
- package/build/core/register.js +1 -4
- package/build/core/register.js.map +1 -1
- package/build/core/sdkMirrorPoller.d.ts +31 -0
- package/build/core/sdkMirrorPoller.d.ts.map +1 -0
- package/build/core/sdkMirrorPoller.js +210 -0
- package/build/core/sdkMirrorPoller.js.map +1 -0
- package/build/core/state.d.ts +14 -0
- package/build/core/state.d.ts.map +1 -1
- package/build/core/state.js +48 -2
- package/build/core/state.js.map +1 -1
- package/build/core/toolHelpers.d.ts.map +1 -1
- package/build/core/toolHelpers.js +42 -10
- package/build/core/toolHelpers.js.map +1 -1
- package/build/core/truncate.d.ts +42 -0
- package/build/core/truncate.d.ts.map +1 -0
- package/build/core/truncate.js +169 -0
- package/build/core/truncate.js.map +1 -0
- package/build/core/types.d.ts +3 -0
- package/build/core/types.d.ts.map +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +4 -2
- package/build/index.js.map +1 -1
- package/build/pro/coordinateMiss.d.ts +55 -0
- package/build/pro/coordinateMiss.d.ts.map +1 -0
- package/build/pro/coordinateMiss.js +122 -0
- package/build/pro/coordinateMiss.js.map +1 -0
- package/build/pro/tap.d.ts +8 -0
- package/build/pro/tap.d.ts.map +1 -1
- package/build/pro/tap.js +99 -11
- package/build/pro/tap.js.map +1 -1
- package/build/pro/verifyAction.d.ts +43 -2
- package/build/pro/verifyAction.d.ts.map +1 -1
- package/build/pro/verifyAction.js +95 -36
- package/build/pro/verifyAction.js.map +1 -1
- package/build/tools/_deviceArg.d.ts +17 -1
- package/build/tools/_deviceArg.d.ts.map +1 -1
- package/build/tools/_deviceArg.js +17 -1
- package/build/tools/_deviceArg.js.map +1 -1
- package/build/tools/bundleTools.d.ts.map +1 -1
- package/build/tools/bundleTools.js +20 -33
- package/build/tools/bundleTools.js.map +1 -1
- package/build/tools/componentTools.d.ts.map +1 -1
- package/build/tools/componentTools.js +41 -219
- package/build/tools/componentTools.js.map +1 -1
- package/build/tools/connectionTools.d.ts.map +1 -1
- package/build/tools/connectionTools.js +17 -22
- package/build/tools/connectionTools.js.map +1 -1
- package/build/tools/deviceTools.d.ts.map +1 -1
- package/build/tools/deviceTools.js +13 -167
- package/build/tools/deviceTools.js.map +1 -1
- package/build/tools/executionTools.d.ts.map +1 -1
- package/build/tools/executionTools.js +63 -18
- package/build/tools/executionTools.js.map +1 -1
- package/build/tools/interactionTools.d.ts +6 -0
- package/build/tools/interactionTools.d.ts.map +1 -1
- package/build/tools/interactionTools.js +41 -56
- package/build/tools/interactionTools.js.map +1 -1
- package/build/tools/logTools.d.ts.map +1 -1
- package/build/tools/logTools.js +61 -80
- package/build/tools/logTools.js.map +1 -1
- package/build/tools/metaTools.js +1 -1
- package/build/tools/metaTools.js.map +1 -1
- package/build/tools/navigationTools.d.ts +3 -0
- package/build/tools/navigationTools.d.ts.map +1 -0
- package/build/tools/navigationTools.js +60 -0
- package/build/tools/navigationTools.js.map +1 -0
- package/build/tools/networkTools.d.ts.map +1 -1
- package/build/tools/networkTools.js +44 -202
- package/build/tools/networkTools.js.map +1 -1
- package/build/tools/reduxTools.d.ts.map +1 -1
- package/build/tools/reduxTools.js +3 -2
- package/build/tools/reduxTools.js.map +1 -1
- package/build/tools/requestTools.d.ts +3 -0
- package/build/tools/requestTools.d.ts.map +1 -0
- package/build/tools/requestTools.js +79 -0
- package/build/tools/requestTools.js.map +1 -0
- package/build/tools/screenshotTools.d.ts.map +1 -1
- package/build/tools/screenshotTools.js +42 -25
- package/build/tools/screenshotTools.js.map +1 -1
- package/package.json +1 -1
- package/tools.json +22 -78
- package/build/__tests__/unit/flowpoints.test.d.ts +0 -2
- package/build/__tests__/unit/flowpoints.test.d.ts.map +0 -1
- package/build/__tests__/unit/flowpoints.test.js +0 -126
- package/build/__tests__/unit/flowpoints.test.js.map +0 -1
- package/build/__tests__/unit/flowpointsQuery.test.d.ts +0 -2
- package/build/__tests__/unit/flowpointsQuery.test.d.ts.map +0 -1
- package/build/__tests__/unit/flowpointsQuery.test.js +0 -91
- package/build/__tests__/unit/flowpointsQuery.test.js.map +0 -1
- package/build/__tests__/unit/selectionPoller.test.d.ts +0 -2
- package/build/__tests__/unit/selectionPoller.test.d.ts.map +0 -1
- package/build/__tests__/unit/selectionPoller.test.js +0 -109
- package/build/__tests__/unit/selectionPoller.test.js.map +0 -1
- package/build/__tests__/unit/verifyFlow.test.d.ts +0 -2
- package/build/__tests__/unit/verifyFlow.test.d.ts.map +0 -1
- package/build/__tests__/unit/verifyFlow.test.js +0 -45
- package/build/__tests__/unit/verifyFlow.test.js.map +0 -1
- package/build/core/selectionPoller.d.ts +0 -13
- package/build/core/selectionPoller.d.ts.map +0 -1
- package/build/core/selectionPoller.js +0 -102
- package/build/core/selectionPoller.js.map +0 -1
- package/build/pro/flowpointTools.d.ts +0 -4
- package/build/pro/flowpointTools.d.ts.map +0 -1
- package/build/pro/flowpointTools.js +0 -266
- package/build/pro/flowpointTools.js.map +0 -1
- package/build/pro/flowpoints.d.ts +0 -86
- package/build/pro/flowpoints.d.ts.map +0 -1
- package/build/pro/flowpoints.js +0 -283
- 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"}
|
package/build/core/network.d.ts
CHANGED
|
@@ -3,19 +3,29 @@ export declare class NetworkBuffer {
|
|
|
3
3
|
private requests;
|
|
4
4
|
private order;
|
|
5
5
|
private maxSize;
|
|
6
|
-
|
|
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;
|
|
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"}
|
package/build/core/network.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12
|
-
|
|
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
|
|
15
|
-
if (
|
|
16
|
-
this.requests.delete(
|
|
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(
|
|
34
|
+
this.requests.set(k, request);
|
|
21
35
|
}
|
|
22
|
-
// Get a request by
|
|
23
|
-
|
|
24
|
-
|
|
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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"}
|