react-native-ai-debugger 1.10.8 → 1.10.10

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 (37) hide show
  1. package/build/__tests__/setup.js +11 -5
  2. package/build/__tests__/setup.js.map +1 -1
  3. package/build/__tests__/unit/iconSemantics.test.d.ts +2 -0
  4. package/build/__tests__/unit/iconSemantics.test.d.ts.map +1 -0
  5. package/build/__tests__/unit/iconSemantics.test.js +80 -0
  6. package/build/__tests__/unit/iconSemantics.test.js.map +1 -0
  7. package/build/__tests__/unit/screenState.test.d.ts +2 -0
  8. package/build/__tests__/unit/screenState.test.d.ts.map +1 -0
  9. package/build/__tests__/unit/screenState.test.js +186 -0
  10. package/build/__tests__/unit/screenState.test.js.map +1 -0
  11. package/build/core/executor.d.ts +1 -0
  12. package/build/core/executor.d.ts.map +1 -1
  13. package/build/core/executor.js +1 -0
  14. package/build/core/executor.js.map +1 -1
  15. package/build/core/iconSemantics.d.ts +18 -0
  16. package/build/core/iconSemantics.d.ts.map +1 -0
  17. package/build/core/iconSemantics.js +114 -0
  18. package/build/core/iconSemantics.js.map +1 -0
  19. package/build/core/index.d.ts +3 -1
  20. package/build/core/index.d.ts.map +1 -1
  21. package/build/core/index.js +3 -1
  22. package/build/core/index.js.map +1 -1
  23. package/build/core/pressables.d.ts +2 -0
  24. package/build/core/pressables.d.ts.map +1 -1
  25. package/build/core/pressables.js +222 -18
  26. package/build/core/pressables.js.map +1 -1
  27. package/build/core/screenState.d.ts +98 -0
  28. package/build/core/screenState.d.ts.map +1 -0
  29. package/build/core/screenState.js +1120 -0
  30. package/build/core/screenState.js.map +1 -0
  31. package/build/tools/componentTools.d.ts.map +1 -1
  32. package/build/tools/componentTools.js +48 -5
  33. package/build/tools/componentTools.js.map +1 -1
  34. package/build/tools/screenshotTools.d.ts.map +1 -1
  35. package/build/tools/screenshotTools.js +105 -40
  36. package/build/tools/screenshotTools.js.map +1 -1
  37. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { executeInApp, delay } from "./jsExecute.js";
2
+ import { iconLabel } from "./iconSemantics.js";
2
3
  import { getConnectedAppByDevice, getFirstConnectedApp, getConnectedAppBySimulatorUdid, getConnectedAppByAndroidDeviceId } from "./connection.js";
3
4
  /**
4
5
  * E1 / Step 5 (2026-05-15 plan): build a pressables list from the platform
@@ -77,6 +78,15 @@ export async function getPressableElements(options = {}) {
77
78
  let targetApp = null;
78
79
  if (udid && platform === "ios") {
79
80
  targetApp = getConnectedAppBySimulatorUdid(udid);
81
+ // scan_metro links simulatorUdid asynchronously after the CDP connect; in
82
+ // that window the udid lookup misses even though the right app is already
83
+ // connected. Fall back to the device-name match so callers (ios_screenshot)
84
+ // don't silently degrade to the accessibility-tree pressables list.
85
+ if (!targetApp && device) {
86
+ const matched = getConnectedAppByDevice(device);
87
+ if (matched && matched.platform === "ios")
88
+ targetApp = matched;
89
+ }
80
90
  }
81
91
  else if (device) {
82
92
  const matched = getConnectedAppByDevice(device);
@@ -194,17 +204,26 @@ export async function getPressableElements(options = {}) {
194
204
  typeof props.onFocus === 'function')) {
195
205
  return '';
196
206
  }
207
+ // Host text fibers carry the raw string as memoizedProps — needed when a
208
+ // mixed-children Text falls through to the fiber-child walk below.
209
+ if (typeof props === 'string') return props;
210
+ if (typeof props === 'number') return String(props);
197
211
  if (props) {
198
212
  var ch = props.children;
199
213
  if (typeof ch === 'string') return ch;
200
214
  if (typeof ch === 'number') return String(ch);
201
215
  if (Array.isArray(ch)) {
202
216
  var inline = [];
217
+ var hasElement = false;
203
218
  for (var ci = 0; ci < ch.length; ci++) {
204
219
  if (typeof ch[ci] === 'string') inline.push(ch[ci]);
205
220
  else if (typeof ch[ci] === 'number') inline.push(String(ch[ci]));
221
+ else if (ch[ci] != null && ch[ci] !== false) hasElement = true;
206
222
  }
207
- if (inline.length > 0) return inline.join('');
223
+ // Mixed content ("Create " + <Text>2 digital items</Text>): fall through
224
+ // to the fiber-child walk so nested Text elements are included; the host
225
+ // text fibers re-supply the inline strings, so nothing is lost or doubled.
226
+ if (inline.length > 0 && !hasElement) return inline.join('');
208
227
  }
209
228
  }
210
229
  var parts = [];
@@ -214,7 +233,7 @@ export async function getPressableElements(options = {}) {
214
233
  if (t) parts.push(t);
215
234
  child = child.sibling;
216
235
  }
217
- return parts.join(' ').trim();
236
+ return parts.join(' ').replace(/\\s+/g, ' ').trim();
218
237
  }
219
238
 
220
239
  function getComponentName(fiber) {
@@ -270,6 +289,12 @@ export async function getPressableElements(options = {}) {
270
289
 
271
290
  var GENERIC_COMPONENT = /^(View|TouchableOpacity|TouchableHighlight|TouchableWithoutFeedback|Pressable|TouchableNativeFeedback|Text|RCTView|RCTText|Unknown)$/;
272
291
 
292
+ // The components that render PressabilityDebugView in DEV builds. Used to walk
293
+ // up from a PDV's host view to the touchable that owns it — the composite chain
294
+ // in between is generic wrappers (View ForwardRef, Animated(View)) whose props
295
+ // carry no onPress, so they are useless as a collectText / identifier root.
296
+ var PDV_OWNER_COMPONENT = /^(Pressable|Touchable(Opacity|Highlight|WithoutFeedback|NativeFeedback|Bounce))$/;
297
+
273
298
  function buildPath(fiber) {
274
299
  var parts = [];
275
300
  var cur = fiber;
@@ -309,12 +334,11 @@ export async function getPressableElements(options = {}) {
309
334
  if (hostsForThis.length > 0) {
310
335
  var text = collectText(fiber, 0, true);
311
336
  var componentName = findMeaningfulAncestorName(fiber) || name || 'Unknown';
312
- // If name is generic (e.g. View, TouchableOpacity), scan children for a
313
- // meaningful name like SvgChevronBack so icon-only buttons are identifiable.
314
- if (GENERIC_COMPONENT.test(componentName)) {
315
- var childName = findMeaningfulChildName(fiber);
316
- if (childName) componentName = childName;
317
- }
337
+ // Scan children for a meaningful name like SvgChevronBack: it replaces a
338
+ // generic name (View, TouchableOpacity) and is also kept as the icon hint
339
+ // for text-less buttons even when the ancestor name (FloatingHeader) wins.
340
+ var childName = (!text || GENERIC_COMPONENT.test(componentName)) ? findMeaningfulChildName(fiber) : null;
341
+ if (childName && GENERIC_COMPONENT.test(componentName)) componentName = childName;
318
342
  var path = buildPath(fiber);
319
343
  var testID = (props && (props.testID || props.nativeID)) || null;
320
344
  var accessibilityLabel = (props && props.accessibilityLabel) || null;
@@ -331,6 +355,7 @@ export async function getPressableElements(options = {}) {
331
355
  testID: testID,
332
356
  accessibilityLabel: accessibilityLabel,
333
357
  isInput: !!isInput,
358
+ icon: childName || null,
334
359
  hostIndices: hostIndices
335
360
  });
336
361
  }
@@ -343,7 +368,167 @@ export async function getPressableElements(options = {}) {
343
368
  }
344
369
  }
345
370
 
346
- walkPressables(roots[0].current, 0);
371
+ // PRIMARY detection: PressabilityDebugView-based walk — mirrors RN Inspector "Touchables" exactly.
372
+ // In DEV mode, every Pressable / TouchableOpacity / TouchableHighlight /
373
+ // TouchableWithoutFeedback / TouchableNativeFeedback renders a PressabilityDebugView
374
+ // as a child. Its immediate parent (fiber.return) is the HOST view that carries
375
+ // the event handlers — we measure that.
376
+ // FALLBACK: plain onPress detection for production builds (PDV not rendered).
377
+
378
+ var anyPDV = false;
379
+ (function quickCheckPDV(f, d) {
380
+ if (!f || d > 200 || anyPDV) return;
381
+ var n = getComponentName(f);
382
+ if (n === 'PressabilityDebugView') { anyPDV = true; return; }
383
+ quickCheckPDV(f.child, d + 1);
384
+ if (!anyPDV) quickCheckPDV(f.sibling, d);
385
+ })(roots[0].current, 0);
386
+
387
+ // Walk for TextInput elements (not covered by PressabilityDebugView in either mode).
388
+ function walkInputs(fiber, depth) {
389
+ if (!fiber || depth > 5000) return;
390
+ var name = getComponentName(fiber);
391
+ var props = fiber.memoizedProps;
392
+ if (name === 'MaybeScreen' && props && props.active === 0) return;
393
+ if (name === 'SceneView' && props && props.focused === false) return;
394
+ if (name === 'RNSScreen' && props && props['aria-hidden'] === true) return;
395
+ var isInput = props && !props.onPress &&
396
+ (typeof props.onChangeText === 'function' || typeof props.onFocus === 'function');
397
+ if (isInput) {
398
+ var hostsForThis = [];
399
+ findHostsInSubtree(fiber, 0, hostsForThis, 16);
400
+ if (hostsForThis.length > 0) {
401
+ var text = collectText(fiber, 0, true);
402
+ var componentName = findMeaningfulAncestorName(fiber) || name || 'Unknown';
403
+ if (GENERIC_COMPONENT.test(componentName)) {
404
+ var childName = findMeaningfulChildName(fiber);
405
+ if (childName) componentName = childName;
406
+ }
407
+ var props2 = fiber.memoizedProps || {};
408
+ var testID = (props2.testID || props2.nativeID) || null;
409
+ var accessibilityLabel = props2.accessibilityLabel || null;
410
+ var hostIndices = [];
411
+ for (var hi3 = 0; hi3 < hostsForThis.length; hi3++) {
412
+ hostIndices.push(hostFibers.length);
413
+ hostFibers.push(hostsForThis[hi3]);
414
+ }
415
+ fiberMeta.push({
416
+ component: componentName,
417
+ path: buildPath(fiber),
418
+ text: text ? text.slice(0, 100) : '',
419
+ testID: testID,
420
+ accessibilityLabel: accessibilityLabel,
421
+ isInput: true,
422
+ hostIndices: hostIndices
423
+ });
424
+ }
425
+ }
426
+ var child = fiber.child;
427
+ while (child) { walkInputs(child, depth + 1); child = child.sibling; }
428
+ }
429
+
430
+ function walkPressabilityDebugViews(fiber, depth, hidden) {
431
+ if (!fiber || depth > 5000) return;
432
+ var name = getComponentName(fiber);
433
+ var props = fiber.memoizedProps;
434
+ var nextHidden = hidden;
435
+ if (name === 'MaybeScreen' && props && props.active === 0) nextHidden = true;
436
+ if (name === 'SceneView' && props && props.focused === false) nextHidden = true;
437
+ if (name === 'RNSScreen' && props && props['aria-hidden'] === true) nextHidden = true;
438
+
439
+ if (!nextHidden && name === 'PressabilityDebugView') {
440
+ // fiber.return = the HOST view that wraps the pressable's children
441
+ var hostFiber = fiber.return;
442
+ if (hostFiber && getMeasurable(hostFiber)) {
443
+ // Walk up from the host fiber to the touchable component that owns this
444
+ // PDV. Match by name (PDV_OWNER_COMPONENT) — stopping at the first
445
+ // composite ancestor is wrong because that's a generic wrapper
446
+ // (ForwardRef displayName 'View', then Animated(View) for Touchables).
447
+ var pressableFiber = hostFiber;
448
+ var firstComposite = null;
449
+ var cur = hostFiber.return;
450
+ var upDepth = 0;
451
+ while (cur && upDepth < 10) {
452
+ if (typeof cur.type !== 'string' && cur.type !== null) {
453
+ if (!firstComposite) firstComposite = cur;
454
+ var curName = getComponentName(cur);
455
+ if (curName && PDV_OWNER_COMPONENT.test(curName)) {
456
+ pressableFiber = cur;
457
+ break;
458
+ }
459
+ }
460
+ cur = cur.return;
461
+ upDepth++;
462
+ }
463
+ if (pressableFiber === hostFiber && firstComposite) pressableFiber = firstComposite;
464
+
465
+ var pressableProps = pressableFiber.memoizedProps || {};
466
+ var text = collectText(pressableFiber, 0, true);
467
+ // Prefer the nearest semantic ancestor (FilterRow, RoleButton, ...) over
468
+ // generic Touchable/Pressable/View wrappers. The climb is capped at a few
469
+ // composite levels so a bare Pressable isn't named after its screen container.
470
+ var componentName = null;
471
+ var an = pressableFiber.return;
472
+ var anComposites = 0;
473
+ var anDepth = 0;
474
+ while (an && anDepth < 12 && anComposites < 4 && !componentName) {
475
+ if (typeof an.type !== 'string') {
476
+ var anName = getComponentName(an);
477
+ if (anName) {
478
+ anComposites++;
479
+ if (!RN_PRIMITIVES.test(anName) && !GENERIC_COMPONENT.test(anName)) {
480
+ componentName = anName;
481
+ }
482
+ }
483
+ }
484
+ an = an.return;
485
+ anDepth++;
486
+ }
487
+ if (!componentName) {
488
+ componentName = findMeaningfulAncestorName(pressableFiber) || getComponentName(pressableFiber) || 'Unknown';
489
+ }
490
+ // Keep the icon child name even when the ancestor name wins — icon-only
491
+ // buttons get their semantics from it (SvgChevronBack → back button).
492
+ var childName = (!text || GENERIC_COMPONENT.test(componentName)) ? findMeaningfulChildName(pressableFiber) : null;
493
+ if (childName && GENERIC_COMPONENT.test(componentName)) componentName = childName;
494
+ var path = buildPath(pressableFiber);
495
+
496
+ // testID/accessibilityLabel are spread onto the host view by TouchableOpacity etc.
497
+ var hostProps = hostFiber.memoizedProps || {};
498
+ var testID = hostProps.testID || hostProps.nativeID || pressableProps.testID || pressableProps.nativeID || null;
499
+ var accessibilityLabel = hostProps.accessibilityLabel || pressableProps.accessibilityLabel || null;
500
+
501
+ var hostIdx = hostFibers.length;
502
+ hostFibers.push(hostFiber);
503
+ fiberMeta.push({
504
+ component: componentName,
505
+ path: path,
506
+ text: text ? text.slice(0, 100) : '',
507
+ testID: testID,
508
+ accessibilityLabel: accessibilityLabel,
509
+ isInput: false,
510
+ icon: childName || null,
511
+ hostIndices: [hostIdx]
512
+ });
513
+ }
514
+ // Do not recurse into PressabilityDebugView's own children (debug overlay)
515
+ return;
516
+ }
517
+
518
+ var child = fiber.child;
519
+ while (child) {
520
+ walkPressabilityDebugViews(child, depth + 1, nextHidden);
521
+ child = child.sibling;
522
+ }
523
+ }
524
+
525
+ if (anyPDV) {
526
+ walkPressabilityDebugViews(roots[0].current, 0, false);
527
+ walkInputs(roots[0].current, 0);
528
+ } else {
529
+ // Fallback: original onPress-based detection for production builds
530
+ walkPressables(roots[0].current, 0);
531
+ }
347
532
 
348
533
  // Collect text fibers that are NOT inside a pressable — used later to attach
349
534
  // spatial 'nearbyText' hints to icon-only pressables.
@@ -550,7 +735,8 @@ export async function getPressableElements(options = {}) {
550
735
  testID: info.testID,
551
736
  accessibilityLabel: info.accessibilityLabel,
552
737
  hasLabel: text.length > 0,
553
- isInput: info.isInput
738
+ isInput: info.isInput,
739
+ icon: info.icon || null
554
740
  });
555
741
  }
556
742
 
@@ -566,6 +752,7 @@ export async function getPressableElements(options = {}) {
566
752
  }
567
753
  if (!winner.testID && loser.testID) winner.testID = loser.testID;
568
754
  if (!winner.accessibilityLabel && loser.accessibilityLabel) winner.accessibilityLabel = loser.accessibilityLabel;
755
+ if (!winner.icon && loser.icon) winner.icon = loser.icon;
569
756
  return winner;
570
757
  }
571
758
  var deduped = {};
@@ -652,7 +839,7 @@ export async function getPressableElements(options = {}) {
652
839
  var NEARBY_RADIUS = 120; // points
653
840
  for (var ei = 0; ei < elements.length; ei++) {
654
841
  var pe = elements[ei];
655
- pe.intent = humanize(pe.component);
842
+ pe.intent = humanize(pe.icon || pe.component);
656
843
  // Skip when the pressable already has its own human-readable text or a11y label.
657
844
  // testID alone doesn't suppress nearbyText — the testID may be cryptic and the
658
845
  // surrounding visible text is still a useful handle for an agent.
@@ -669,10 +856,24 @@ export async function getPressableElements(options = {}) {
669
856
  if (tb.x >= pe.frame.x && tb.y >= pe.frame.y &&
670
857
  tb.x + tb.width <= pe.frame.x + pe.frame.width &&
671
858
  tb.y + tb.height <= pe.frame.y + pe.frame.height) continue;
672
- var dx = tb.cx - pcx;
673
- var dy = tb.cy - pcy;
674
- var d = Math.sqrt(dx * dx + dy * dy);
675
- if (d < bestDist && d <= NEARBY_RADIUS) {
859
+ // Row siblings first: a checkbox's label sits in the same row but its
860
+ // long text's CENTER is far away, so center distance alone misses it.
861
+ // Row-aligned + small horizontal edge gap = strongest signal.
862
+ var rowAligned = Math.abs(tb.cy - pcy) <= Math.max(24, pe.frame.height / 2);
863
+ var gapL = pe.frame.x - (tb.x + tb.width);
864
+ var gapR = tb.x - (pe.frame.x + pe.frame.width);
865
+ var hGap = Math.max(gapL, gapR);
866
+ if (hGap < 0) hGap = 0;
867
+ var d;
868
+ if (rowAligned && hGap <= 80) {
869
+ d = hGap;
870
+ } else {
871
+ var dx = tb.cx - pcx;
872
+ var dy = tb.cy - pcy;
873
+ d = Math.sqrt(dx * dx + dy * dy);
874
+ if (d > NEARBY_RADIUS) continue;
875
+ }
876
+ if (d < bestDist) {
676
877
  bestDist = d;
677
878
  best = tb;
678
879
  }
@@ -831,11 +1032,14 @@ export async function getPressableElements(options = {}) {
831
1032
  for (let i = 0; i < pressableElements.length; i++) {
832
1033
  const el = pressableElements[i];
833
1034
  const num = i + 1;
1035
+ const iconHint = !el.hasLabel ? iconLabel(el.component, el.icon) : null;
834
1036
  const label = el.hasLabel
835
1037
  ? `"${el.text}"`
836
- : el.intent
837
- ? `(${el.intent} icon)`
838
- : "(icon/image)";
1038
+ : iconHint
1039
+ ? `(${iconHint})`
1040
+ : el.intent
1041
+ ? `(${el.intent} icon)`
1042
+ : "(icon/image)";
839
1043
  const ids = [];
840
1044
  if (el.testID)
841
1045
  ids.push(`testID="${el.testID}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"pressables.js","sourceRoot":"","sources":["../../src/core/pressables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pressables.js","sourceRoot":"","sources":["../../src/core/pressables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import type { ExecutionResult } from "./types.js";
2
+ export interface ScreenStatePressable {
3
+ label: string | null;
4
+ /** Nearest custom component name (e.g. OrderStepRow, CheckBox) — greppable in the app codebase. */
5
+ component?: string | null;
6
+ center: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ bounds: {
11
+ x: number;
12
+ y: number;
13
+ width: number;
14
+ height: number;
15
+ };
16
+ testID: string | null;
17
+ /** Icon child component name (e.g. SvgChevronBack) when the pressable has no text/a11y label. */
18
+ icon?: string | null;
19
+ /** True for TextInput-like elements (onChangeText/onFocus) — tap to focus, then type. */
20
+ isInput?: boolean;
21
+ /** Nearest standalone text (row sibling preferred) when the pressable has no label of its own. */
22
+ nearbyText?: string | null;
23
+ /** True when an overlay fully covers this root pressable — taps will not reach it. */
24
+ blockedByOverlay?: boolean;
25
+ /** What pressing triggers: "onPress=handleSubmit()", "onBack=goBack()", or "onPress→onBack" (prop route when the fn is anonymous). Absent when nothing meaningful survives Hermes. */
26
+ onPressHint?: string | null;
27
+ }
28
+ export interface ScreenStateOverlay {
29
+ type: "BottomSheet" | "Modal" | "Alert" | "ActionSheet" | "Unknown";
30
+ title: string | null;
31
+ pressables: ScreenStatePressable[];
32
+ }
33
+ export interface ScreenStateRoute {
34
+ name: string;
35
+ params: Record<string, unknown> | null;
36
+ stack: string[];
37
+ }
38
+ export interface ScreenState {
39
+ route: ScreenStateRoute | null;
40
+ overlays: ScreenStateOverlay[];
41
+ pressables: ScreenStatePressable[];
42
+ }
43
+ export declare function markPressablesCoveredByOverlay(pressables: ScreenStatePressable[], overlayBounds: {
44
+ x: number;
45
+ y: number;
46
+ width: number;
47
+ height: number;
48
+ }): ScreenStatePressable[];
49
+ /**
50
+ * Replace component-name fallback labels with semantic icon labels when the
51
+ * pressable's icon child name carries recognizable semantics:
52
+ * { label: "[FloatingHeader]", icon: "SvgChevronBackward" }
53
+ * → label "[SvgChevronBackward — possibly back button]"
54
+ * Labels from text/a11y are never touched (icon is null for those).
55
+ */
56
+ export declare function applyIconHintToLabel(p: ScreenStatePressable): ScreenStatePressable;
57
+ /**
58
+ * Per-pressable coordinate converter — lets screenshot tools map points/dp into
59
+ * screenshot pixels (including conditional shifts like the iOS safe-area band).
60
+ */
61
+ export type PressableCoordConverter = (p: ScreenStatePressable) => {
62
+ center: {
63
+ x: number;
64
+ y: number;
65
+ };
66
+ frame: {
67
+ x: number;
68
+ y: number;
69
+ width: number;
70
+ height: number;
71
+ };
72
+ };
73
+ /**
74
+ * Render a ScreenState as the compact orientation summary used by
75
+ * get_screen_state and the screenshot tools:
76
+ * 📍 Checkout [Tabs > Cart > Checkout]
77
+ * 🎯 Pressables:
78
+ * (40, 100) <FloatingHeader /> "[SvgChevronBackward — possibly back button]" frame:(16,76 48x48)
79
+ */
80
+ export declare function formatScreenStateSummary(ss: ScreenState, convert?: PressableCoordConverter): string;
81
+ export declare function describePressHandler(raw: unknown): string | null;
82
+ /**
83
+ * Fallback handler context from the custom component's on* props, for when the
84
+ * direct onPress is anonymous (Hermes discards source even in dev bundles, and
85
+ * names like navigation.goBack are lost to computed assignment):
86
+ * - prefer the prop whose value IS the touchable's onPress (pass-through), else
87
+ * the only on* function prop; ambiguity (several candidates) yields null
88
+ * - named fn → "onBack=goBack()"; nameless → "onPress→onBack" (the prop name
89
+ * alone is greppable context); a bare nameless "onPress" prop adds nothing → null
90
+ */
91
+ export declare function describePropHandlers(raw: unknown): string | null;
92
+ export declare function parseScreenStateResponse(raw: unknown): ScreenState | null;
93
+ export declare function getScreenState(options?: {
94
+ device?: string;
95
+ }): Promise<ExecutionResult & {
96
+ screenState?: ScreenState;
97
+ }>;
98
+ //# sourceMappingURL=screenState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenState.d.ts","sourceRoot":"","sources":["../../src/core/screenState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlD,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iGAAiG;IACjG,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kGAAkG;IAClG,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sLAAsL;IACtL,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,CAAC;IACpE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAMD,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,oBAAoB,EAAE,EAClC,aAAa,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvE,oBAAoB,EAAE,CAWxB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,CAMlF;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,oBAAoB,KAAK;IAC/D,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAClE,CAAC;AAIF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,GAAE,uBAAwC,GAAG,MAAM,CA4CnH;AAoBD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWhE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CASzE;AAMD,wBAAsB,cAAc,CAChC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,OAAO,CAAC,eAAe,GAAG;IAAE,WAAW,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC,CAi8B1D"}