@buoy-gg/highlight-updates 7.0.30 → 7.0.32
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/lib/commonjs/highlight-updates/components/HighlightUpdatesModal.js +1 -0
- package/lib/commonjs/highlight-updates/utils/rawEventEmitter.js +50 -0
- package/lib/commonjs/highlight-updates/utils/screenElements.js +270 -0
- package/lib/commonjs/highlight-updates/utils/touchCapture.js +277 -0
- package/lib/commonjs/sync/highlightUpdatesSyncAdapter.js +23 -1
- package/lib/module/highlight-updates/components/HighlightUpdatesModal.js +2 -1
- package/lib/module/highlight-updates/utils/rawEventEmitter.js +46 -0
- package/lib/module/highlight-updates/utils/screenElements.js +268 -0
- package/lib/module/highlight-updates/utils/touchCapture.js +270 -0
- package/lib/module/sync/highlightUpdatesSyncAdapter.js +24 -2
- package/lib/typescript/highlight-updates/components/HighlightUpdatesModal.d.ts.map +1 -1
- package/lib/typescript/highlight-updates/utils/rawEventEmitter.d.ts +37 -0
- package/lib/typescript/highlight-updates/utils/rawEventEmitter.d.ts.map +1 -0
- package/lib/typescript/highlight-updates/utils/screenElements.d.ts +76 -0
- package/lib/typescript/highlight-updates/utils/screenElements.d.ts.map +1 -1
- package/lib/typescript/highlight-updates/utils/touchCapture.d.ts +66 -0
- package/lib/typescript/highlight-updates/utils/touchCapture.d.ts.map +1 -0
- package/lib/typescript/sync/highlightUpdatesSyncAdapter.d.ts +18 -0
- package/lib/typescript/sync/highlightUpdatesSyncAdapter.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -97,4 +97,80 @@ export interface TapElementResult {
|
|
|
97
97
|
}
|
|
98
98
|
export declare function describeScreen(): Promise<DescribeScreenResult>;
|
|
99
99
|
export declare function tapElement(params: TapElementParams): Promise<TapElementResult>;
|
|
100
|
+
export interface WaitForParams {
|
|
101
|
+
nativeTag?: number;
|
|
102
|
+
testID?: string;
|
|
103
|
+
query?: string;
|
|
104
|
+
/** Wait for the element to be GONE instead of present. Default false. */
|
|
105
|
+
gone?: boolean;
|
|
106
|
+
/** Give up after this long. Default 5000ms, capped at 30000. */
|
|
107
|
+
timeoutMs?: number;
|
|
108
|
+
/** Gap between fiber scans. Default 150ms, floored at 50. */
|
|
109
|
+
pollMs?: number;
|
|
110
|
+
}
|
|
111
|
+
export interface WaitForResult {
|
|
112
|
+
ok: boolean;
|
|
113
|
+
/** How long the wait actually took, so a caller can report a real number. */
|
|
114
|
+
waitedMs: number;
|
|
115
|
+
polls: number;
|
|
116
|
+
reason?: string;
|
|
117
|
+
matched?: {
|
|
118
|
+
nativeTag: number | null;
|
|
119
|
+
name: string;
|
|
120
|
+
testID?: string;
|
|
121
|
+
label?: string;
|
|
122
|
+
text?: string;
|
|
123
|
+
interactive: boolean;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Block until an element appears (or disappears), then report how long it took.
|
|
128
|
+
*
|
|
129
|
+
* WHY THIS EXISTS. `navigate` returns the moment the route is pushed, not when
|
|
130
|
+
* the new screen has data on it, so "go to /shop then tap Fire Grill" reliably
|
|
131
|
+
* tapped a loading skeleton. A remote driver solves that with a wait step
|
|
132
|
+
* (MCP's `run_flow` has `waitFor`/`waitMs`); anything driving the tools from
|
|
133
|
+
* INSIDE the app had nothing, and its only option was to re-run
|
|
134
|
+
* `describeScreen` in a loop — which for an agent means burning turns against a
|
|
135
|
+
* step budget, and for a Scenario means a fixed sleep that is either flaky or
|
|
136
|
+
* slow.
|
|
137
|
+
*
|
|
138
|
+
* MATCHING IS `tapElement`'S, EXACTLY. Same `scoreTapMatch`, same fields, so
|
|
139
|
+
* "wait for X" and "tap X" can never disagree about what X is. A wait that
|
|
140
|
+
* resolves on an element the tap then cannot find is worse than no wait.
|
|
141
|
+
*
|
|
142
|
+
* PRESENCE MEANS ON SCREEN. An identity scan alone would resolve against a
|
|
143
|
+
* previous Expo Router screen still mounted behind the current one — the exact
|
|
144
|
+
* false positive `describeScreen` drops by rect. So a candidate that matches by
|
|
145
|
+
* name is measured before it counts, and only the matches are measured: the
|
|
146
|
+
* per-poll cost stays one fiber walk plus a handful of `measureInWindow`
|
|
147
|
+
* calls, not a full `describeScreen`.
|
|
148
|
+
*
|
|
149
|
+
* The poll floor is deliberate. This runs on the JS thread the app is drawing
|
|
150
|
+
* on, and a caller asking for `pollMs: 0` would starve the very render it is
|
|
151
|
+
* waiting for.
|
|
152
|
+
*/
|
|
153
|
+
export declare function waitFor(params: WaitForParams): Promise<WaitForResult>;
|
|
154
|
+
/**
|
|
155
|
+
* What a recorded touch landed on, in the vocabulary `tapElement` searches by.
|
|
156
|
+
*
|
|
157
|
+
* Deliberately the SAME fields `describeScreen` emits: a macro recorded from a
|
|
158
|
+
* human's finger has to replay through `tapElement`, and the only way to
|
|
159
|
+
* guarantee that is for the recorder to name the element exactly the way the
|
|
160
|
+
* matcher will look for it. Anything richer here is a selector that records
|
|
161
|
+
* fine and then can't be found again.
|
|
162
|
+
*/
|
|
163
|
+
export interface TouchTarget {
|
|
164
|
+
nativeTag: number | null;
|
|
165
|
+
name: string;
|
|
166
|
+
role?: string;
|
|
167
|
+
testID?: string;
|
|
168
|
+
label?: string;
|
|
169
|
+
text?: string;
|
|
170
|
+
/** How the element would be driven on replay. */
|
|
171
|
+
control?: "press" | "toggle" | "slider" | "text";
|
|
172
|
+
/** Current value of a toggle/slider/text control, at touch time. */
|
|
173
|
+
value?: number | boolean | string;
|
|
174
|
+
}
|
|
175
|
+
export declare function resolveTouchTarget(nativeTag: number): TouchTarget | null;
|
|
100
176
|
//# sourceMappingURL=screenElements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenElements.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/screenElements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAsaH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,GAAG,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,8BAA8B;IAC9B,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,SAAS,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAC;QAClE,sDAAsD;QACtD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KACnC,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChG;AA8JD,wBAAsB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAkEpE;AA8DD,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2IpF"}
|
|
1
|
+
{"version":3,"file":"screenElements.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/screenElements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* touchCapture — what a HUMAN is doing to the app, as replayable intents.
|
|
3
|
+
*
|
|
4
|
+
* This is the recording half of the pair whose playback half is `tapElement`:
|
|
5
|
+
* it watches real finger input and names each interaction in exactly the
|
|
6
|
+
* vocabulary `tapElement` searches by, so a recorded macro can be replayed
|
|
7
|
+
* without a second guess about what "that button" meant.
|
|
8
|
+
*
|
|
9
|
+
* Why RawEventEmitter and not the obvious alternatives:
|
|
10
|
+
* - A capture-phase responder on a root View would be the textbook answer, but
|
|
11
|
+
* Buoy mounts as a SIBLING of the app tree, not a parent. There is no root to
|
|
12
|
+
* wrap without changing every host app's integration.
|
|
13
|
+
* - Patching `Pressability`, or rewriting `onPress` props on the fly, breaks the
|
|
14
|
+
* moment a component re-renders (props are rebuilt every render) and misses
|
|
15
|
+
* everything driven by react-native-gesture-handler anyway.
|
|
16
|
+
* - RawEventEmitter mirrors every dispatched event before React's plugins see
|
|
17
|
+
* it, needs zero app instrumentation, and is already proven in-tree by
|
|
18
|
+
* focus-inspector's TV focus observer.
|
|
19
|
+
*
|
|
20
|
+
* Three rules the recorder above depends on:
|
|
21
|
+
*
|
|
22
|
+
* THE TARGET IS RESOLVED AT touchStart, NOT touchEnd. A press handler can
|
|
23
|
+
* navigate synchronously, so resolving after the fact names an element on the
|
|
24
|
+
* screen the app moved TO. We resolve while the finger is still down and emit
|
|
25
|
+
* when it lifts.
|
|
26
|
+
*
|
|
27
|
+
* A DRAG IS NOT A TAP. Scrolling a list produces the same touchStart the
|
|
28
|
+
* button above it does. Movement past a threshold, or an explicit
|
|
29
|
+
* touchCancel when a ScrollView steals the responder, drops the record —
|
|
30
|
+
* otherwise every recording is half scroll noise.
|
|
31
|
+
*
|
|
32
|
+
* KEYSTROKES ARE NOT INTENTS. Typing "SAVE10" fires six change events; a
|
|
33
|
+
* macro step wants the finished string. Consecutive edits to the same input
|
|
34
|
+
* collapse into the latest value as they arrive.
|
|
35
|
+
*/
|
|
36
|
+
import { type TouchTarget } from "./screenElements";
|
|
37
|
+
export type TouchKind = "press" | "longPress" | "text" | "toggle" | "slider";
|
|
38
|
+
export interface TouchRecord {
|
|
39
|
+
/** Monotonic, so a poller can ask for everything after what it has. */
|
|
40
|
+
seq: number;
|
|
41
|
+
t: number;
|
|
42
|
+
kind: TouchKind;
|
|
43
|
+
/** The element, named the way `tapElement` searches. */
|
|
44
|
+
target: TouchTarget;
|
|
45
|
+
/** For text/toggle/slider: the value the user ended up with. */
|
|
46
|
+
value?: string | number | boolean;
|
|
47
|
+
}
|
|
48
|
+
export type CaptureStatus = "idle" | "capturing" | "unavailable";
|
|
49
|
+
export declare function startTouchCapture(): {
|
|
50
|
+
status: CaptureStatus;
|
|
51
|
+
reason: string | null;
|
|
52
|
+
};
|
|
53
|
+
export declare function stopTouchCapture(): void;
|
|
54
|
+
export declare function clearTouchCapture(): void;
|
|
55
|
+
export declare function getTouchCaptureStatus(): {
|
|
56
|
+
status: CaptureStatus;
|
|
57
|
+
reason: string | null;
|
|
58
|
+
};
|
|
59
|
+
/** Everything recorded after `sinceSeq`, plus where the caller now is. */
|
|
60
|
+
export declare function readTouchCapture(sinceSeq?: number): {
|
|
61
|
+
status: CaptureStatus;
|
|
62
|
+
reason: string | null;
|
|
63
|
+
records: TouchRecord[];
|
|
64
|
+
seq: number;
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=touchCapture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touchCapture.d.ts","sourceRoot":"","sources":["../../../../src/highlight-updates/utils/touchCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAmB1B,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,SAAS,CAAC;IAChB,wDAAwD;IACxD,MAAM,EAAE,WAAW,CAAC;IACpB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC;AAuLjE,wBAAgB,iBAAiB,IAAI;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAyBpF;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAWvC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED,wBAAgB,qBAAqB,IAAI;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAKA;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,QAAQ,SAAI,GAAG;IAC9C,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb,CAMA"}
|
|
@@ -60,6 +60,24 @@ export declare const highlightUpdatesSyncAdapter: {
|
|
|
60
60
|
setSilentTracking: (params?: unknown) => void;
|
|
61
61
|
describeScreen: () => Promise<import("../highlight-updates/utils/screenElements").DescribeScreenResult>;
|
|
62
62
|
tapElement: (params?: unknown) => Promise<import("../highlight-updates/utils/screenElements").TapElementResult>;
|
|
63
|
+
waitFor: (params?: unknown) => Promise<import("../highlight-updates/utils/screenElements").WaitForResult>;
|
|
64
|
+
startTouchCapture: () => {
|
|
65
|
+
status: import("../highlight-updates/utils/touchCapture").CaptureStatus;
|
|
66
|
+
reason: string | null;
|
|
67
|
+
};
|
|
68
|
+
stopTouchCapture: () => {
|
|
69
|
+
status: import("../highlight-updates/utils/touchCapture").CaptureStatus;
|
|
70
|
+
reason: string | null;
|
|
71
|
+
};
|
|
72
|
+
clearTouchCapture: () => {
|
|
73
|
+
ok: boolean;
|
|
74
|
+
};
|
|
75
|
+
readTouchCapture: (params?: unknown) => {
|
|
76
|
+
status: import("../highlight-updates/utils/touchCapture").CaptureStatus;
|
|
77
|
+
reason: string | null;
|
|
78
|
+
records: import("../highlight-updates/utils/touchCapture").TouchRecord[];
|
|
79
|
+
seq: number;
|
|
80
|
+
};
|
|
63
81
|
};
|
|
64
82
|
};
|
|
65
83
|
//# sourceMappingURL=highlightUpdatesSyncAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlightUpdatesSyncAdapter.d.ts","sourceRoot":"","sources":["../../../src/sync/highlightUpdatesSyncAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"highlightUpdatesSyncAdapter.d.ts","sourceRoot":"","sources":["../../../src/sync/highlightUpdatesSyncAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,0CAA0C,CAAC;AAgBlD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AA4F/D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;0BAYhB,MAAM,IAAI;;;gBA3CC,OAAO;qBAAW,MAAM;;;qBAYrB,oBAAoB,GAAG,IAAI;;QAiD7D;;;WAGG;mCACwB,OAAO;;;;;;;;;;;;8BAcZ,OAAO;;;gCAYL,OAAO;mCASJ,OAAO;qCAQL,OAAO;;8BAad,OAAO;2BAIV,OAAO;;;;;;;;;;;;oCAgBE,OAAO;;;;;;;CAGtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/highlight-updates",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.32",
|
|
4
4
|
"description": "Render highlighter for React Native — see every render with its cause: mount, state, props, or parent. Part of Buoy devtools.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
],
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
30
|
-
"@buoy-gg/floating-tools-core": "^7.0.
|
|
29
|
+
"@buoy-gg/shared-ui": "^7.0.32",
|
|
30
|
+
"@buoy-gg/floating-tools-core": "^7.0.32"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@buoy-gg/license": "7.0.
|
|
33
|
+
"@buoy-gg/license": "7.0.32",
|
|
34
34
|
"react": "*",
|
|
35
35
|
"react-native": "*",
|
|
36
|
-
"@buoy-gg/core": "^7.0.
|
|
36
|
+
"@buoy-gg/core": "^7.0.32"
|
|
37
37
|
},
|
|
38
38
|
"peerDependenciesMeta": {
|
|
39
39
|
"@buoy-gg/core": {
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"@types/react": "^19.1.0",
|
|
45
45
|
"@types/react-native": "^0.73.0",
|
|
46
46
|
"typescript": "~5.8.3",
|
|
47
|
-
"@buoy-gg/core": "^7.0.
|
|
48
|
-
"@buoy-gg/license": "^7.0.
|
|
47
|
+
"@buoy-gg/core": "^7.0.32",
|
|
48
|
+
"@buoy-gg/license": "^7.0.32"
|
|
49
49
|
},
|
|
50
50
|
"react-native-builder-bob": {
|
|
51
51
|
"source": "src",
|