react-native-ai-debugger 2.3.0 → 2.4.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 (40) hide show
  1. package/build/__tests__/unit/overlayGuard.test.d.ts +2 -0
  2. package/build/__tests__/unit/overlayGuard.test.d.ts.map +1 -0
  3. package/build/__tests__/unit/overlayGuard.test.js +140 -0
  4. package/build/__tests__/unit/overlayGuard.test.js.map +1 -0
  5. package/build/__tests__/unit/screenSpace.test.js +34 -1
  6. package/build/__tests__/unit/screenSpace.test.js.map +1 -1
  7. package/build/__tests__/unit/tap.test.js +2 -2
  8. package/build/__tests__/unit/tap.test.js.map +1 -1
  9. package/build/core/inspector.d.ts.map +1 -1
  10. package/build/core/inspector.js +27 -4
  11. package/build/core/inspector.js.map +1 -1
  12. package/build/core/ios.d.ts +16 -0
  13. package/build/core/ios.d.ts.map +1 -1
  14. package/build/core/ios.js +48 -4
  15. package/build/core/ios.js.map +1 -1
  16. package/build/core/screenLayout.d.ts.map +1 -1
  17. package/build/core/screenLayout.js +23 -1
  18. package/build/core/screenLayout.js.map +1 -1
  19. package/build/core/screenSpace.d.ts +95 -0
  20. package/build/core/screenSpace.d.ts.map +1 -1
  21. package/build/core/screenSpace.js +138 -1
  22. package/build/core/screenSpace.js.map +1 -1
  23. package/build/core/screenSpaceDevice.d.ts.map +1 -1
  24. package/build/core/screenSpaceDevice.js +46 -6
  25. package/build/core/screenSpaceDevice.js.map +1 -1
  26. package/build/core/screenState.d.ts +2 -1
  27. package/build/core/screenState.d.ts.map +1 -1
  28. package/build/core/screenState.js +208 -40
  29. package/build/core/screenState.js.map +1 -1
  30. package/build/pro/overlayGuard.d.ts +65 -0
  31. package/build/pro/overlayGuard.d.ts.map +1 -0
  32. package/build/pro/overlayGuard.js +166 -0
  33. package/build/pro/overlayGuard.js.map +1 -0
  34. package/build/pro/tap.d.ts.map +1 -1
  35. package/build/pro/tap.js +104 -25
  36. package/build/pro/tap.js.map +1 -1
  37. package/build/tools/componentTools.d.ts.map +1 -1
  38. package/build/tools/componentTools.js +40 -18
  39. package/build/tools/componentTools.js.map +1 -1
  40. package/package.json +1 -1
@@ -87,16 +87,22 @@ const IMAGE_CAP = 40;
87
87
  * and that is exactly when bottom-anchored UI misbehaves. Reporting the height
88
88
  * and the remaining content area makes that inspectable without a screenshot.
89
89
  */
90
- export function formatKeyboardLine(k) {
90
+ export function formatKeyboardLine(k, pixelScale = 1) {
91
91
  if (k.error)
92
92
  return `⌨️ Keyboard: unknown (${k.error})`;
93
93
  if (!k.visible || k.height == null || k.screenY == null)
94
94
  return "";
95
- // Android reports fractional dp (288.3809509277344); whole points are what
96
- // a reader can act on, and the sub-pixel tail only obscures the number.
97
- const r = (n) => Math.round(n);
95
+ // Reported in the same delivered-pixel space as every coordinate around it. The
96
+ // keyboard's screenY is a y a reader compares against element positions, so leaving
97
+ // it in points while the element list moved to pixels would invite exactly the
98
+ // cross-space comparison this unification exists to remove.
99
+ const s = pixelScale > 0 ? pixelScale : 1;
100
+ // Android reports fractional dp (288.3809509277344); whole units are what a reader
101
+ // can act on, and the sub-pixel tail only obscures the number.
102
+ const r = (n) => Math.round(n * s);
103
+ const unit = s === 1 ? "pt" : "px";
98
104
  const width = k.width != null ? `${r(k.width)}x` : "";
99
- return `⌨️ Keyboard: visible, ${r(k.height)}pt — content area above it ${width}${r(k.screenY)}pt`;
105
+ return `⌨️ Keyboard: visible, ${r(k.height)}${unit} — content area above it ${width}${r(k.screenY)}${unit}`;
100
106
  }
101
107
  /**
102
108
  * Splits elements the keyboard covers from those still reachable.
@@ -146,7 +152,7 @@ export function formatScreenStateSummary(ss, convert = identityCoords, opts = {}
146
152
  lines.push("📍 Currently focused screen: unknown (no React Navigation / Expo Router detected)");
147
153
  }
148
154
  if (opts.keyboard) {
149
- const kbLine = formatKeyboardLine(opts.keyboard);
155
+ const kbLine = formatKeyboardLine(opts.keyboard, opts.pixelScale);
150
156
  if (kbLine)
151
157
  lines.push(kbLine);
152
158
  }
@@ -618,6 +624,83 @@ export async function getScreenState(options = {}) {
618
624
  return 'Unknown';
619
625
  }
620
626
 
627
+ // style can be an object, a nested array, or null. Only the flattened result can be
628
+ // asked about position/backgroundColor, and the previous heuristic read the raw prop —
629
+ // so any component passing style={[base, override]} was silently skipped.
630
+ function flattenStyle(s) {
631
+ if (!s) return null;
632
+ if (Array.isArray(s)) {
633
+ var out = null;
634
+ for (var fi = 0; fi < s.length; fi++) {
635
+ var f = flattenStyle(s[fi]);
636
+ if (!f) continue;
637
+ if (!out) out = {};
638
+ for (var k in f) out[k] = f[k];
639
+ }
640
+ return out;
641
+ }
642
+ return typeof s === 'object' ? s : null;
643
+ }
644
+
645
+ // "Opaque enough to hide what is behind it." Colours reach the fiber either as CSS
646
+ // strings or, on Fabric, as processed ARGB integers; both carry the alpha that decides
647
+ // whether this is a cover or just a tint. A translucent scrim is deliberately NOT a
648
+ // cover — the screen shows through it and its elements stay readable.
649
+ function isOpaqueBackground(st) {
650
+ if (st.opacity != null && st.opacity < 0.95) return false;
651
+ var bg = st.backgroundColor;
652
+ if (bg == null) return false;
653
+ if (typeof bg === 'number') return ((bg >>> 24) & 255) >= 242;
654
+ if (typeof bg !== 'string') return false;
655
+ var v = bg.replace(/\\s/g, '').toLowerCase();
656
+ if (v === 'transparent') return false;
657
+ var m = v.match(/^rgba\\(([^)]*)\\)$/);
658
+ if (m) {
659
+ var parts = m[1].split(',');
660
+ if (parts.length === 4 && parseFloat(parts[3]) < 0.95) return false;
661
+ }
662
+ if (v.charAt(0) === '#' && (v.length === 9 || v.length === 5)) {
663
+ var hex = v.length === 9 ? v.slice(7, 9) : (v.charAt(4) + v.charAt(4));
664
+ var alpha = parseInt(hex, 16);
665
+ if (!isNaN(alpha) && alpha < 242) return false;
666
+ }
667
+ return true;
668
+ }
669
+
670
+ // The opaque surface is usually NOT on the positioned node. The common shape is a
671
+ // transparent absolutely-positioned wrapper whose child paints the panel — Buoy's
672
+ // sheet is exactly that: an absolute View wrapping an Animated View with
673
+ // backgroundColor #1A1A1A. Inspecting only the wrapper's own style (the first version
674
+ // of this rule) therefore recognises almost no real sheet.
675
+ function hasOpaqueSurface(fiber, ownStyle) {
676
+ // A wrapper that is itself faded out is not covering anything, whatever its
677
+ // children declare.
678
+ if (ownStyle && ownStyle.opacity != null && ownStyle.opacity < 0.95) return false;
679
+ if (ownStyle && isOpaqueBackground(ownStyle)) return true;
680
+ var found = false;
681
+ (function scan(n, d) {
682
+ if (!n || d > 4 || found) return;
683
+ if (typeof n.type === 'string') {
684
+ var st = flattenStyle(n.memoizedProps && n.memoizedProps.style);
685
+ if (st && isOpaqueBackground(st)) { found = true; return; }
686
+ }
687
+ scan(n.child, d + 1);
688
+ if (!found) scan(n.sibling, d);
689
+ })(fiber.child, 0);
690
+ return found;
691
+ }
692
+
693
+ function hasPressableDescendant(f) {
694
+ var found = false;
695
+ (function scan(n, d) {
696
+ if (!n || d > 12 || found) return;
697
+ if (n.memoizedProps && typeof n.memoizedProps.onPress === 'function') { found = true; return; }
698
+ scan(n.child, d + 1);
699
+ if (!found) scan(n.sibling, d);
700
+ })(f.child, 0);
701
+ return found;
702
+ }
703
+
621
704
  // Walk to find viewport dimensions (reused for heuristic overlay detection)
622
705
  var viewportW = 9999, viewportH = 9999;
623
706
  var rootHostFiber = findFirstHost(roots[0].current, 0);
@@ -660,35 +743,35 @@ export async function getScreenState(options = {}) {
660
743
  }
661
744
  }
662
745
 
663
- // Heuristic: absolute-positioned node with high zIndex covering > 40% screen
664
- // Only fires if it has at least one pressable child
665
- if (typeof fiber.type === 'string') {
666
- var style = props.style;
667
- if (style && typeof style === 'object' && !Array.isArray(style)) {
668
- if ((style.zIndex > 999 || style.position === 'absolute') &&
669
- typeof style.width === 'number' && typeof style.height === 'number') {
670
- if (viewportW < 9999) {
671
- var area = style.width * style.height;
672
- var vArea = viewportW * viewportH;
673
- if (area > vArea * 0.4) {
674
- // Check if it has a pressable child
675
- var hasPressable = false;
676
- (function checkPress(f, d) {
677
- if (!f || d > 10 || hasPressable) return;
678
- if (f.memoizedProps && typeof f.memoizedProps.onPress === 'function') { hasPressable = true; return; }
679
- checkPress(f.child, d + 1);
680
- if (!hasPressable) checkPress(f.sibling, d);
681
- })(fiber.child, 0);
682
- if (hasPressable) {
683
- var hosts2 = [];
684
- findHostsInSubtree(fiber, 0, hosts2, 64);
685
- if (hosts2.length > 0) {
686
- overlayFiberMeta.push({ type: 'Unknown', fiber: fiber, hostFibers: hosts2 });
687
- }
688
- return;
689
- }
690
- }
691
- }
746
+ // Geometric occluder: an opaque, absolutely-positioned host view holding at least
747
+ // one pressable. This is the branch that catches a sheet mounted as an ordinary
748
+ // view rather than as a Modal, a BottomSheet or a native presentation — a
749
+ // third-party in-app devtool panel, a hand-rolled dialog — which none of the
750
+ // name/prop classifiers above can recognise. Without it every element underneath
751
+ // such a sheet is reported as reachable and taps on them silently hit the sheet.
752
+ //
753
+ // Two deliberate changes from the rule this replaces:
754
+ // - the size test moves to the resolve pass, which works on MEASURED frames.
755
+ // Requiring literal numeric style.width/height here missed every sheet sized
756
+ // by flex, percentages or an animated value, which is nearly all of them.
757
+ // - opacity is required. A translucent scrim leaves the screen visible and its
758
+ // elements legitimately reachable, so it must not count as a cover.
759
+ // react-native-screens wraps every route in an absolutely-positioned, opaque
760
+ // container full of pressables — structurally identical to a sheet and, measured,
761
+ // 78% of the viewport. It is a route container, never an overlay: a screen
762
+ // presented ON TOP of another is caught by the stackPresentation branch above,
763
+ // which runs first. Excluding the family here is what keeps the whole visible
764
+ // screen from being filed under an overlay group.
765
+ var NAV_CONTAINER_HOST = /^RNS/;
766
+ if (typeof fiber.type === 'string' && !NAV_CONTAINER_HOST.test(fiber.type)) {
767
+ var style = flattenStyle(props.style);
768
+ if (style && (style.zIndex > 999 || style.position === 'absolute') &&
769
+ hasOpaqueSurface(fiber, style) && hasPressableDescendant(fiber)) {
770
+ var hosts2 = [];
771
+ findHostsInSubtree(fiber, 0, hosts2, 64);
772
+ if (hosts2.length > 0) {
773
+ overlayFiberMeta.push({ type: 'Unknown', fiber: fiber, hostFibers: hosts2, geometric: true });
774
+ return;
692
775
  }
693
776
  }
694
777
  }
@@ -708,6 +791,8 @@ export async function getScreenState(options = {}) {
708
791
 
709
792
  var hostFibers = [];
710
793
  var fiberMeta = [];
794
+ // overlayFiberMeta index -> fiberMeta index at which that overlay's subtree was entered.
795
+ var overlayEnterIdx = [];
711
796
  // A count badge ("1", "99+") is the only text on icon buttons like a cart — treat it
712
797
  // as no-own-label so the icon child still surfaces (the count is kept as nearby text).
713
798
  var COUNT_BADGE = /^\\d{1,3}\\+?$/;
@@ -886,7 +971,17 @@ export async function getScreenState(options = {}) {
886
971
  // geometric containment wrongly swallows the underlying screen's pressables.
887
972
  if (ovIdx == null) {
888
973
  for (var ofi = 0; ofi < overlayFiberMeta.length; ofi++) {
889
- if (overlayFiberMeta[ofi].fiber === fiber) { ovIdx = ofi; break; }
974
+ if (overlayFiberMeta[ofi].fiber === fiber) {
975
+ ovIdx = ofi;
976
+ // Paint position of the overlay, expressed on the same counter as the
977
+ // pressables. This walk is DFS pre-order over siblings in order, which
978
+ // is RN's paint order, so "collected earlier" == "painted underneath".
979
+ // Anything collected AFTER the overlay is drawn on top of it and must
980
+ // not be reported as blocked by it — a LogBox banner over a sheet, a
981
+ // toast over a dialog.
982
+ if (overlayEnterIdx[ofi] == null) overlayEnterIdx[ofi] = fiberMeta.length;
983
+ break;
984
+ }
890
985
  }
891
986
  }
892
987
 
@@ -1155,7 +1250,7 @@ export async function getScreenState(options = {}) {
1155
1250
 
1156
1251
  // Store overlay host fibers separately
1157
1252
  var overlayHostFibers = [];
1158
- var overlayMetaList = overlayFiberMeta.map(function(om) {
1253
+ var overlayMetaList = overlayFiberMeta.map(function(om, omIdx) {
1159
1254
  var startIdx = overlayHostFibers.length;
1160
1255
  for (var hi = 0; hi < om.hostFibers.length; hi++) {
1161
1256
  overlayHostFibers.push(om.hostFibers[hi]);
@@ -1166,7 +1261,11 @@ export async function getScreenState(options = {}) {
1166
1261
  title: (title && title.length > 2) ? title.slice(0, 60) : null,
1167
1262
  hostStart: startIdx,
1168
1263
  hostEnd: overlayHostFibers.length,
1169
- fullCover: !!om.fullCover
1264
+ fullCover: !!om.fullCover,
1265
+ geometric: !!om.geometric,
1266
+ // null means "never entered during the pressable walk" — treat as painted last
1267
+ // (Infinity) so a subtree with no pressables of its own cannot block anything.
1268
+ enterIdx: overlayEnterIdx[omIdx] == null ? -1 : overlayEnterIdx[omIdx]
1170
1269
  };
1171
1270
  });
1172
1271
 
@@ -1311,6 +1410,26 @@ export async function getScreenState(options = {}) {
1311
1410
  if (mm.y + mm.height > cMaxY) cMaxY = mm.y + mm.height;
1312
1411
  }
1313
1412
  if (!bValid) continue;
1413
+ // Size gate for geometric candidates, applied here because this is the first
1414
+ // point where a measured frame exists.
1415
+ //
1416
+ // The upper bound is the important half. A candidate covering essentially the
1417
+ // whole viewport is far more likely to be a screen container (react-native-screens
1418
+ // wraps routes in absoluteFill views, which are opaque and full of pressables)
1419
+ // than a sheet, and promoting one to "overlay" would file the entire visible
1420
+ // screen under an overlay group. Genuine full-screen covers arrive as Modal or as
1421
+ // a covering stackPresentation and are classified above, before this branch runs.
1422
+ if (om.geometric) {
1423
+ var gArea = (bMaxX - bMinX) * (bMaxY - bMinY);
1424
+ if (!(vArea > 0) || gArea < vArea * 0.15 || gArea > vArea * 0.92) continue;
1425
+ // A closed drawer is an opaque, absolutely-positioned, pressable-filled panel
1426
+ // that happens to be parked off-screen (measured at x = -width). It covers
1427
+ // nothing until it slides in, so candidacy has to be judged on the visible
1428
+ // intersection rather than the panel's own size.
1429
+ var visW = Math.min(bMaxX, viewportW) - Math.max(bMinX, 0);
1430
+ var visH = Math.min(bMaxY, viewportH) - Math.max(bMinY, 0);
1431
+ if (visW <= 0 || visH <= 0 || (visW * visH) < gArea * 0.6) continue;
1432
+ }
1314
1433
  // Native covering modals occlude the whole screen — expand their block region to
1315
1434
  // the full viewport so elements that extend past the modal's measured content
1316
1435
  // frame (e.g. the bottom tab bar) are still flagged as blocked, not reachable.
@@ -1323,7 +1442,14 @@ export async function getScreenState(options = {}) {
1323
1442
  var contentBounds = cValid
1324
1443
  ? { x: Math.round(cMinX), y: Math.round(cMinY), width: Math.round(cMaxX - cMinX), height: Math.round(cMaxY - cMinY) }
1325
1444
  : blockBounds;
1326
- overlays.push({ origIdx: oi, type: om.type, title: om.title, blockBounds: blockBounds, contentBounds: contentBounds, hasContent: cValid, pressables: [] });
1445
+ // Geometric overlays never adopt by geometry. A classified overlay may portal its
1446
+ // content elsewhere in the tree, so containment is a needed fallback for it; a
1447
+ // geometric candidate is a plain in-tree view whose content is exactly its fiber
1448
+ // descendants. Letting it claim everything inside its rect would file the bottom
1449
+ // tab bar as part of the sheet drawn over it, when the truth is the opposite —
1450
+ // the tab bar is behind it and blocked.
1451
+ var geometric = !!om.geometric;
1452
+ overlays.push({ origIdx: oi, type: om.type, title: om.title, blockBounds: blockBounds, contentBounds: contentBounds, hasContent: cValid && !geometric, geometric: geometric, enterIdx: om.enterIdx, pressables: [] });
1327
1453
  }
1328
1454
 
1329
1455
  // Build pressable list
@@ -1335,6 +1461,9 @@ export async function getScreenState(options = {}) {
1335
1461
  if (m.x + m.width < 0 || m.y + m.height < 0) continue;
1336
1462
  if (m.x > viewportW || m.y > viewportH) continue;
1337
1463
  allPressables.push({
1464
+ // Position in the DFS collection order == paint order. Kept so occlusion can
1465
+ // ask "was this drawn before the overlay?" rather than only "is it inside it?".
1466
+ paintIdx: i,
1338
1467
  label: meta[i].label,
1339
1468
  component: meta[i].component || null,
1340
1469
  center: { x: Math.round(m.x + m.width / 2), y: Math.round(m.y + m.height / 2) },
@@ -1402,6 +1531,37 @@ export async function getScreenState(options = {}) {
1402
1531
  b.x + b.width <= ob.x + ob.width &&
1403
1532
  b.y + b.height <= ob.y + ob.height;
1404
1533
  }
1534
+
1535
+ // A geometric candidate has to earn its place: it must either own pressable content or
1536
+ // actually cover something. The name-based classifiers describe a real widget whether
1537
+ // or not it currently holds a button, but "opaque absolute view" is a guess, and a
1538
+ // guess that occludes nothing buys no information — it only adds an empty overlay
1539
+ // group to the output and invites the reader to treat a plain view as a sheet.
1540
+ // True when this overlay is painted over that pressable: the pressable is inside its
1541
+ // rect, is not part of its own subtree, and was collected before it.
1542
+ function occludes(o, p) {
1543
+ return p.overlayIdx !== o.origIdx &&
1544
+ o.enterIdx >= 0 && p.paintIdx < o.enterIdx &&
1545
+ inside(p.bounds, o.blockBounds);
1546
+ }
1547
+
1548
+ var keptOverlays = [];
1549
+ for (var fo = 0; fo < overlays.length; fo++) {
1550
+ var cand = overlays[fo];
1551
+ if (!cand.geometric) { keptOverlays.push(cand); continue; }
1552
+ // A geometric candidate must actually cover something that is not its own content.
1553
+ // Owning pressables is NOT enough: react-native-screens wraps every route in an
1554
+ // absolutely-positioned container that paints an opaque background and is full of
1555
+ // pressables, and promoting one to "overlay" files the whole visible screen under
1556
+ // an overlay group and empties the reachable list. Occluding a foreign element is
1557
+ // what distinguishes a sheet from a screen container.
1558
+ var earns = false;
1559
+ for (var cp = 0; cp < allPressables.length && !earns; cp++) {
1560
+ if (occludes(cand, allPressables[cp])) earns = true;
1561
+ }
1562
+ if (earns) keptOverlays.push(cand);
1563
+ }
1564
+ overlays = keptOverlays;
1405
1565
  for (var pi = 0; pi < allPressables.length; pi++) {
1406
1566
  var p = allPressables[pi];
1407
1567
  var assignedToOverlay = false;
@@ -1417,7 +1577,14 @@ export async function getScreenState(options = {}) {
1417
1577
  // Covered pressables stay in the list but are flagged — agents see what's
1418
1578
  // behind the sheet while knowing taps won't reach it until it closes.
1419
1579
  for (var ov2 = 0; ov2 < overlays.length; ov2++) {
1420
- if (inside(p.bounds, overlays[ov2].blockBounds)) { p.blockedByOverlay = true; break; }
1580
+ // Geometric overlays respect paint order, so a banner drawn on top of a
1581
+ // sheet is not reported as hidden by it. The name-classified overlays keep
1582
+ // the original containment-only rule: a Modal or a native sheet occludes
1583
+ // what is behind it regardless of where its subtree sits in the walk.
1584
+ var blocks = overlays[ov2].geometric
1585
+ ? occludes(overlays[ov2], p)
1586
+ : inside(p.bounds, overlays[ov2].blockBounds);
1587
+ if (blocks) { p.blockedByOverlay = true; break; }
1421
1588
  }
1422
1589
  rootPressables.push(p);
1423
1590
  }
@@ -1425,6 +1592,7 @@ export async function getScreenState(options = {}) {
1425
1592
  for (var si = 0; si < allPressables.length; si++) {
1426
1593
  delete allPressables[si].overlayIdx;
1427
1594
  delete allPressables[si].hasOwnLabel;
1595
+ delete allPressables[si].paintIdx;
1428
1596
  }
1429
1597
 
1430
1598
  // Build typed text/image lists (pair each measurement with its meta by index,
@@ -1 +1 @@
1
- {"version":3,"file":"screenState.js","sourceRoot":"","sources":["../../src/core/screenState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenState.js","sourceRoot":"","sources":["../../src/core/screenState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Pre-dispatch overlay guard for `tap`.
3
+ *
4
+ * The OS always delivers a touch to the topmost view, so a coordinate tap physically
5
+ * cannot reach an element that an overlay is painted over — the touch goes to the
6
+ * overlay. That is correct behaviour and nothing about tap dispatch should change.
7
+ *
8
+ * What must change is that execbro not fire such a tap at all. In the reported case the
9
+ * touch did not vanish harmlessly: it opened a sheet's network-request detail view, so
10
+ * execbro mutated app state the agent never asked to change and was never told about.
11
+ * Declining is strictly better, and the agent's correct next move — dismiss the overlay,
12
+ * then retry — is the same either way.
13
+ *
14
+ * The check runs on the resolved TARGET, not on the strategy, because every strategy
15
+ * (fiber, accessibility, OCR, raw coordinates) funnels into a coordinate tap.
16
+ */
17
+ import type { ScreenState } from "../core/screenState.js";
18
+ export type OverlayVerdict =
19
+ /** Nothing reachable at the target; an overlay is painted over it. Do not dispatch. */
20
+ {
21
+ kind: "blocked";
22
+ element: string;
23
+ overlay: string;
24
+ }
25
+ /**
26
+ * A coordinate that an overlay's own control occupies, while a covered element also
27
+ * sits underneath it. The tap is legitimate — the OS will deliver it to the overlay
28
+ * control, which is a real element — but the caller may well have been aiming at the
29
+ * thing behind. Dispatch, and say which one actually got it.
30
+ */
31
+ | {
32
+ kind: "shadowed";
33
+ hit: string;
34
+ covered: string;
35
+ overlay: string;
36
+ };
37
+ export interface OverlayGuardQuery {
38
+ text?: string;
39
+ testID?: string;
40
+ component?: string;
41
+ x?: number;
42
+ y?: number;
43
+ }
44
+ /**
45
+ * The decision itself, over a screen state whose coordinates are already in the caller's
46
+ * delivered-pixel space. Pure and exported so the refusal rules — the ones that can break
47
+ * every tap in the product if they are wrong — are testable without a device.
48
+ *
49
+ * Returns null for anything short of a confident "blocked". A guard that fires on
50
+ * uncertainty blocks legitimate taps, which is a worse failure than the mis-delivery it
51
+ * is trying to prevent.
52
+ */
53
+ export declare function decideOverlayBlock(ss: ScreenState, query: OverlayGuardQuery): OverlayVerdict | null;
54
+ /**
55
+ * Read the current screen, normalise it into the caller's coordinate space, and apply
56
+ * {@link decideOverlayBlock}. Null on any I/O failure — see that function's contract.
57
+ */
58
+ export declare function checkOverlayBlocking(args: {
59
+ query: OverlayGuardQuery;
60
+ platform: "ios" | "android";
61
+ udid?: string;
62
+ deviceId?: string;
63
+ deviceName?: string;
64
+ }): Promise<OverlayVerdict | null>;
65
+ //# sourceMappingURL=overlayGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlayGuard.d.ts","sourceRoot":"","sources":["../../src/pro/overlayGuard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,wBAAwB,CAAC;AAIhF,MAAM,MAAM,cAAc;AACtB,uFAAuF;AACrF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACd;AAuDD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,iBAAiB,GACzB,cAAc,GAAG,IAAI,CA2DvB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAsBjC"}