react-native-ai-debugger 2.12.3 → 2.12.4
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 +15 -1
- package/build/__tests__/unit/autoReconnectOptOut.test.js +3 -0
- package/build/__tests__/unit/autoReconnectOptOut.test.js.map +1 -1
- package/build/__tests__/unit/cdpCommand.test.d.ts +2 -0
- package/build/__tests__/unit/cdpCommand.test.d.ts.map +1 -0
- package/build/__tests__/unit/cdpCommand.test.js +84 -0
- package/build/__tests__/unit/cdpCommand.test.js.map +1 -0
- package/build/__tests__/unit/chromium.test.d.ts +2 -0
- package/build/__tests__/unit/chromium.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromium.test.js +118 -0
- package/build/__tests__/unit/chromium.test.js.map +1 -0
- package/build/__tests__/unit/chromiumDevice.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumDevice.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumDevice.test.js +115 -0
- package/build/__tests__/unit/chromiumDevice.test.js.map +1 -0
- package/build/__tests__/unit/chromiumDialogAnswer.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumDialogAnswer.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumDialogAnswer.test.js +71 -0
- package/build/__tests__/unit/chromiumDialogAnswer.test.js.map +1 -0
- package/build/__tests__/unit/chromiumDialogRaces.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumDialogRaces.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumDialogRaces.test.js +100 -0
- package/build/__tests__/unit/chromiumDialogRaces.test.js.map +1 -0
- package/build/__tests__/unit/chromiumDialogs.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumDialogs.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumDialogs.test.js +167 -0
- package/build/__tests__/unit/chromiumDialogs.test.js.map +1 -0
- package/build/__tests__/unit/chromiumDiscovery.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumDiscovery.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumDiscovery.test.js +302 -0
- package/build/__tests__/unit/chromiumDiscovery.test.js.map +1 -0
- package/build/__tests__/unit/chromiumDom.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumDom.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumDom.test.js +119 -0
- package/build/__tests__/unit/chromiumDom.test.js.map +1 -0
- package/build/__tests__/unit/chromiumGate.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumGate.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumGate.test.js +149 -0
- package/build/__tests__/unit/chromiumGate.test.js.map +1 -0
- package/build/__tests__/unit/chromiumInput.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumInput.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumInput.test.js +113 -0
- package/build/__tests__/unit/chromiumInput.test.js.map +1 -0
- package/build/__tests__/unit/chromiumKeys.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumKeys.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumKeys.test.js +26 -0
- package/build/__tests__/unit/chromiumKeys.test.js.map +1 -0
- package/build/__tests__/unit/chromiumScreen.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumScreen.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumScreen.test.js +390 -0
- package/build/__tests__/unit/chromiumScreen.test.js.map +1 -0
- package/build/__tests__/unit/chromiumStaleTarget.test.d.ts +2 -0
- package/build/__tests__/unit/chromiumStaleTarget.test.d.ts.map +1 -0
- package/build/__tests__/unit/chromiumStaleTarget.test.js +26 -0
- package/build/__tests__/unit/chromiumStaleTarget.test.js.map +1 -0
- package/build/__tests__/unit/connectionGaps.test.d.ts +2 -0
- package/build/__tests__/unit/connectionGaps.test.d.ts.map +1 -0
- package/build/__tests__/unit/connectionGaps.test.js +14 -0
- package/build/__tests__/unit/connectionGaps.test.js.map +1 -0
- package/build/__tests__/unit/contextPreambleGlobals.test.d.ts +2 -0
- package/build/__tests__/unit/contextPreambleGlobals.test.d.ts.map +1 -0
- package/build/__tests__/unit/contextPreambleGlobals.test.js +25 -0
- package/build/__tests__/unit/contextPreambleGlobals.test.js.map +1 -0
- package/build/__tests__/unit/deviceResolver.test.js +9 -0
- package/build/__tests__/unit/deviceResolver.test.js.map +1 -1
- package/build/__tests__/unit/electronLaunch.test.d.ts +2 -0
- package/build/__tests__/unit/electronLaunch.test.d.ts.map +1 -0
- package/build/__tests__/unit/electronLaunch.test.js +165 -0
- package/build/__tests__/unit/electronLaunch.test.js.map +1 -0
- package/build/__tests__/unit/fiberRoots.test.d.ts +2 -0
- package/build/__tests__/unit/fiberRoots.test.d.ts.map +1 -0
- package/build/__tests__/unit/fiberRoots.test.js +95 -0
- package/build/__tests__/unit/fiberRoots.test.js.map +1 -0
- package/build/__tests__/unit/fiberRootsDrift.test.d.ts +2 -0
- package/build/__tests__/unit/fiberRootsDrift.test.d.ts.map +1 -0
- package/build/__tests__/unit/fiberRootsDrift.test.js +23 -0
- package/build/__tests__/unit/fiberRootsDrift.test.js.map +1 -0
- package/build/__tests__/unit/hostAddress.test.d.ts +2 -0
- package/build/__tests__/unit/hostAddress.test.d.ts.map +1 -0
- package/build/__tests__/unit/hostAddress.test.js +38 -0
- package/build/__tests__/unit/hostAddress.test.js.map +1 -0
- package/build/__tests__/unit/measureComponent.test.js +1 -1
- package/build/__tests__/unit/measureComponent.test.js.map +1 -1
- package/build/__tests__/unit/networkInterceptorFetchMock.test.d.ts +2 -0
- package/build/__tests__/unit/networkInterceptorFetchMock.test.d.ts.map +1 -0
- package/build/__tests__/unit/networkInterceptorFetchMock.test.js +90 -0
- package/build/__tests__/unit/networkInterceptorFetchMock.test.js.map +1 -0
- package/build/__tests__/unit/networkMockTool.test.js +12 -1
- package/build/__tests__/unit/networkMockTool.test.js.map +1 -1
- package/build/__tests__/unit/pressKeyMobile.test.d.ts +2 -0
- package/build/__tests__/unit/pressKeyMobile.test.d.ts.map +1 -0
- package/build/__tests__/unit/pressKeyMobile.test.js +63 -0
- package/build/__tests__/unit/pressKeyMobile.test.js.map +1 -0
- package/build/__tests__/unit/reloadAppAutoConnect.test.js +4 -1
- package/build/__tests__/unit/reloadAppAutoConnect.test.js.map +1 -1
- package/build/__tests__/unit/tapAndroidSerial.test.js +16 -0
- package/build/__tests__/unit/tapAndroidSerial.test.js.map +1 -1
- package/build/core/android.d.ts +10 -0
- package/build/core/android.d.ts.map +1 -1
- package/build/core/android.js +17 -0
- package/build/core/android.js.map +1 -1
- package/build/core/appContext.d.ts.map +1 -1
- package/build/core/appContext.js +11 -13
- package/build/core/appContext.js.map +1 -1
- package/build/core/appDetection.d.ts.map +1 -1
- package/build/core/appDetection.js +7 -4
- package/build/core/appDetection.js.map +1 -1
- package/build/core/cdpCommand.d.ts +4 -0
- package/build/core/cdpCommand.d.ts.map +1 -0
- package/build/core/cdpCommand.js +58 -0
- package/build/core/cdpCommand.js.map +1 -0
- package/build/core/chromium.d.ts +157 -0
- package/build/core/chromium.d.ts.map +1 -0
- package/build/core/chromium.js +480 -0
- package/build/core/chromium.js.map +1 -0
- package/build/core/chromiumCapabilities.d.ts +11 -0
- package/build/core/chromiumCapabilities.d.ts.map +1 -0
- package/build/core/chromiumCapabilities.js +35 -0
- package/build/core/chromiumCapabilities.js.map +1 -0
- package/build/core/chromiumDialogAnswer.d.ts +11 -0
- package/build/core/chromiumDialogAnswer.d.ts.map +1 -0
- package/build/core/chromiumDialogAnswer.js +61 -0
- package/build/core/chromiumDialogAnswer.js.map +1 -0
- package/build/core/chromiumDialogs.d.ts +46 -0
- package/build/core/chromiumDialogs.d.ts.map +1 -0
- package/build/core/chromiumDialogs.js +88 -0
- package/build/core/chromiumDialogs.js.map +1 -0
- package/build/core/chromiumScreen.d.ts +97 -0
- package/build/core/chromiumScreen.d.ts.map +1 -0
- package/build/core/chromiumScreen.js +498 -0
- package/build/core/chromiumScreen.js.map +1 -0
- package/build/core/componentSearch.d.ts.map +1 -1
- package/build/core/componentSearch.js +7 -26
- package/build/core/componentSearch.js.map +1 -1
- package/build/core/componentSource.d.ts.map +1 -1
- package/build/core/componentSource.js +3 -11
- package/build/core/componentSource.js.map +1 -1
- package/build/core/componentTree.d.ts.map +1 -1
- package/build/core/componentTree.js +4 -18
- package/build/core/componentTree.js.map +1 -1
- package/build/core/connection.d.ts +13 -0
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +99 -18
- package/build/core/connection.js.map +1 -1
- package/build/core/connectionState.d.ts +2 -1
- package/build/core/connectionState.d.ts.map +1 -1
- package/build/core/connectionState.js +3 -0
- package/build/core/connectionState.js.map +1 -1
- package/build/core/deviceResolver.d.ts.map +1 -1
- package/build/core/deviceResolver.js +8 -5
- package/build/core/deviceResolver.js.map +1 -1
- package/build/core/electronLaunch.d.ts +25 -0
- package/build/core/electronLaunch.d.ts.map +1 -0
- package/build/core/electronLaunch.js +113 -0
- package/build/core/electronLaunch.js.map +1 -0
- package/build/core/errors.d.ts +1 -1
- package/build/core/errors.d.ts.map +1 -1
- package/build/core/errors.js.map +1 -1
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +9 -6
- package/build/core/guides.js.map +1 -1
- package/build/core/hostAddress.d.ts +6 -0
- package/build/core/hostAddress.d.ts.map +1 -0
- package/build/core/hostAddress.js +32 -0
- package/build/core/hostAddress.js.map +1 -0
- package/build/core/injected/fiberRoots.d.ts +2 -0
- package/build/core/injected/fiberRoots.d.ts.map +1 -0
- package/build/core/injected/fiberRoots.js +60 -0
- package/build/core/injected/fiberRoots.js.map +1 -0
- package/build/core/inputTarget.d.ts.map +1 -1
- package/build/core/inputTarget.js +4 -9
- package/build/core/inputTarget.js.map +1 -1
- package/build/core/inspector.d.ts.map +1 -1
- package/build/core/inspector.js +6 -22
- package/build/core/inspector.js.map +1 -1
- package/build/core/ios.d.ts +12 -0
- package/build/core/ios.d.ts.map +1 -1
- package/build/core/ios.js +32 -0
- package/build/core/ios.js.map +1 -1
- package/build/core/jsExecute.d.ts.map +1 -1
- package/build/core/jsExecute.js +20 -1
- package/build/core/jsExecute.js.map +1 -1
- package/build/core/measureComponent.d.ts.map +1 -1
- package/build/core/measureComponent.js +4 -8
- package/build/core/measureComponent.js.map +1 -1
- package/build/core/metro.d.ts +20 -1
- package/build/core/metro.d.ts.map +1 -1
- package/build/core/metro.js +146 -9
- package/build/core/metro.js.map +1 -1
- package/build/core/mockRules.d.ts +1 -0
- package/build/core/mockRules.d.ts.map +1 -1
- package/build/core/mockRules.js +8 -0
- package/build/core/mockRules.js.map +1 -1
- package/build/core/nativeLogs.js +1 -1
- package/build/core/nativeLogs.js.map +1 -1
- package/build/core/navigation.d.ts.map +1 -1
- package/build/core/navigation.js +4 -18
- package/build/core/navigation.js.map +1 -1
- package/build/core/networkInterceptor.d.ts +2 -2
- package/build/core/networkInterceptor.d.ts.map +1 -1
- package/build/core/networkInterceptor.js +90 -3
- package/build/core/networkInterceptor.js.map +1 -1
- package/build/core/pressables.d.ts.map +1 -1
- package/build/core/pressables.js +6 -13
- package/build/core/pressables.js.map +1 -1
- package/build/core/redux.d.ts.map +1 -1
- package/build/core/redux.js +6 -10
- package/build/core/redux.js.map +1 -1
- package/build/core/register.d.ts.map +1 -1
- package/build/core/register.js +5 -2
- package/build/core/register.js.map +1 -1
- package/build/core/rnGlobalsBootstrap.d.ts.map +1 -1
- package/build/core/rnGlobalsBootstrap.js +3 -1
- package/build/core/rnGlobalsBootstrap.js.map +1 -1
- package/build/core/screenLayout.d.ts.map +1 -1
- package/build/core/screenLayout.js +4 -13
- package/build/core/screenLayout.js.map +1 -1
- package/build/core/screenStaleness.d.ts.map +1 -1
- package/build/core/screenStaleness.js +2 -0
- package/build/core/screenStaleness.js.map +1 -1
- package/build/core/screenState.d.ts.map +1 -1
- package/build/core/screenState.js +4 -11
- package/build/core/screenState.js.map +1 -1
- package/build/core/swipeDiagnosis.d.ts.map +1 -1
- package/build/core/swipeDiagnosis.js +3 -10
- package/build/core/swipeDiagnosis.js.map +1 -1
- package/build/core/textEntry.d.ts +1 -1
- package/build/core/textEntry.d.ts.map +1 -1
- package/build/core/types.d.ts +4 -2
- package/build/core/types.d.ts.map +1 -1
- package/build/pro/chromiumKeys.d.ts +19 -0
- package/build/pro/chromiumKeys.d.ts.map +1 -0
- package/build/pro/chromiumKeys.js +68 -0
- package/build/pro/chromiumKeys.js.map +1 -0
- package/build/pro/chromiumSwipe.d.ts +35 -0
- package/build/pro/chromiumSwipe.d.ts.map +1 -0
- package/build/pro/chromiumSwipe.js +105 -0
- package/build/pro/chromiumSwipe.js.map +1 -0
- package/build/pro/chromiumTap.d.ts +12 -0
- package/build/pro/chromiumTap.d.ts.map +1 -0
- package/build/pro/chromiumTap.js +155 -0
- package/build/pro/chromiumTap.js.map +1 -0
- package/build/pro/tap.d.ts +1 -0
- package/build/pro/tap.d.ts.map +1 -1
- package/build/pro/tap.js +7 -1
- package/build/pro/tap.js.map +1 -1
- package/build/tools/componentTools.d.ts.map +1 -1
- package/build/tools/componentTools.js +31 -3
- package/build/tools/componentTools.js.map +1 -1
- package/build/tools/connectionTools.d.ts.map +1 -1
- package/build/tools/connectionTools.js +66 -28
- package/build/tools/connectionTools.js.map +1 -1
- package/build/tools/deviceTools.d.ts.map +1 -1
- package/build/tools/deviceTools.js +42 -1
- package/build/tools/deviceTools.js.map +1 -1
- package/build/tools/interactionTools.d.ts.map +1 -1
- package/build/tools/interactionTools.js +132 -7
- package/build/tools/interactionTools.js.map +1 -1
- package/build/tools/networkTools.d.ts.map +1 -1
- package/build/tools/networkTools.js +20 -5
- package/build/tools/networkTools.js.map +1 -1
- package/build/tools/screenshotTools.d.ts.map +1 -1
- package/build/tools/screenshotTools.js +452 -373
- package/build/tools/screenshotTools.js.map +1 -1
- package/package.json +1 -1
- package/tools.json +27 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swipeDiagnosis.js","sourceRoot":"","sources":["../../src/core/swipeDiagnosis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAA2B,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"swipeDiagnosis.js","sourceRoot":"","sources":["../../src/core/swipeDiagnosis.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export type EnterTextArgs = {
|
|
|
11
11
|
replace?: boolean;
|
|
12
12
|
device?: string;
|
|
13
13
|
};
|
|
14
|
-
export type WritePath = "react" | "hid" | "native";
|
|
14
|
+
export type WritePath = "react" | "hid" | "native" | "cdp";
|
|
15
15
|
export type TextEntryResult = {
|
|
16
16
|
success: boolean;
|
|
17
17
|
value?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textEntry.d.ts","sourceRoot":"","sources":["../../src/core/textEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAyC,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAIH,KAAK,gBAAgB,EACxB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,aAAa,GAAG;IAExB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"textEntry.d.ts","sourceRoot":"","sources":["../../src/core/textEntry.ts"],"names":[],"mappings":"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"}
|
package/build/core/types.d.ts
CHANGED
|
@@ -24,12 +24,13 @@ export interface DeviceInfo {
|
|
|
24
24
|
type: string;
|
|
25
25
|
webSocketDebuggerUrl: string;
|
|
26
26
|
deviceName: string;
|
|
27
|
+
url?: string;
|
|
27
28
|
}
|
|
28
29
|
export interface ConnectedApp {
|
|
29
30
|
ws: WebSocket;
|
|
30
31
|
deviceInfo: DeviceInfo;
|
|
31
32
|
port: number;
|
|
32
|
-
platform: "ios" | "android";
|
|
33
|
+
platform: "ios" | "android" | "chromium";
|
|
33
34
|
simulatorUdid?: string;
|
|
34
35
|
adbSerial?: string;
|
|
35
36
|
lastScreenshot?: {
|
|
@@ -165,11 +166,12 @@ export interface ConnectionCheckResult {
|
|
|
165
166
|
export interface EnsureConnectionDeviceInfo {
|
|
166
167
|
deviceName: string;
|
|
167
168
|
deviceTitle: string;
|
|
168
|
-
platform: "ios" | "android";
|
|
169
|
+
platform: "ios" | "android" | "chromium";
|
|
169
170
|
port: number;
|
|
170
171
|
uptime: string;
|
|
171
172
|
contextId: number | null;
|
|
172
173
|
healthCheckPassed: boolean;
|
|
174
|
+
dialog?: string;
|
|
173
175
|
}
|
|
174
176
|
export interface EnsureConnectionResult {
|
|
175
177
|
connected: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IAIjB,GAAG,EAAE,MAAM,CAAC;IAIZ,KAAK,EAAE,MAAM,CAAC;IAId,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAChC;AAKD,MAAM,WAAW,aAAa;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ConnectedApp } from "../core/types.js";
|
|
2
|
+
import { type KeyDef } from "../core/chromium.js";
|
|
3
|
+
export declare function chromiumPressKey(app: ConnectedApp, a: {
|
|
4
|
+
input: string;
|
|
5
|
+
combo: {
|
|
6
|
+
mods: number;
|
|
7
|
+
key: KeyDef;
|
|
8
|
+
};
|
|
9
|
+
repeat: number;
|
|
10
|
+
testID?: string;
|
|
11
|
+
text?: string;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
content: {
|
|
14
|
+
type: "text";
|
|
15
|
+
text: string;
|
|
16
|
+
}[];
|
|
17
|
+
isError: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=chromiumKeys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromiumKeys.d.ts","sourceRoot":"","sources":["../../src/pro/chromiumKeys.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAA0E,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAS1H,wBAAsB,gBAAgB,CAClC,GAAG,EAAE,YAAY,EACjB,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;GA4D7G"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { evaluateJson } from "../core/cdpCommand.js";
|
|
2
|
+
import { buildDomKeyFocusJs, chromiumKey, collectDomTargets, pickDomTarget, MOD } from "../core/chromium.js";
|
|
3
|
+
import { ACTIVE_ELEMENT_JS } from "../core/chromiumScreen.js";
|
|
4
|
+
import { raceDialog, formatDialog } from "../core/chromiumDialogs.js";
|
|
5
|
+
const KEY_SETTLE_MS = 80;
|
|
6
|
+
export async function chromiumPressKey(app, a) {
|
|
7
|
+
const fail = (text) => ({ content: [{ type: "text", text: `Error: ${text}` }], isError: true });
|
|
8
|
+
try {
|
|
9
|
+
if (a.testID !== undefined || a.text !== undefined) {
|
|
10
|
+
const found = await collectDomTargets(app, { mode: "tap", testID: a.testID, text: a.text });
|
|
11
|
+
const pick = pickDomTarget(found.candidates, a.text, undefined);
|
|
12
|
+
if (pick.kind === "none") {
|
|
13
|
+
return fail(`No visible element matches ${JSON.stringify({ testID: a.testID, text: a.text })}. On chromium, testID matches data-testid / data-test-id / id.`);
|
|
14
|
+
}
|
|
15
|
+
if (pick.kind === "ambiguous") {
|
|
16
|
+
const list = pick.matches.slice(0, 10).map((c) => `<${c.tag}>${c.testID ? ` testID=${c.testID}` : ""} "${c.text.slice(0, 40)}"`);
|
|
17
|
+
return fail(`${pick.matches.length} elements match this target, so the key would go to a guess. Use a testID. Matches: ${list.join("; ")}`);
|
|
18
|
+
}
|
|
19
|
+
const r = await evaluateJson(app.ws, buildDomKeyFocusJs(pick.cand.i));
|
|
20
|
+
if (r.error)
|
|
21
|
+
return fail(r.error);
|
|
22
|
+
if (!r.focused)
|
|
23
|
+
return fail(`<${pick.cand.tag}> matched but did not take focus (disabled, inert or hidden?), so no key was sent.`);
|
|
24
|
+
}
|
|
25
|
+
const focusedBefore = await evaluateJson(app.ws, ACTIVE_ELEMENT_JS);
|
|
26
|
+
let dialog;
|
|
27
|
+
let sent = 0;
|
|
28
|
+
for (; sent < a.repeat && !dialog; sent++) {
|
|
29
|
+
const r = await raceDialog(app.ws, () => chromiumKey(app, a.combo));
|
|
30
|
+
if (r.kind === "dialog")
|
|
31
|
+
dialog = r.dialog;
|
|
32
|
+
}
|
|
33
|
+
let focusedAfter;
|
|
34
|
+
if (!dialog) {
|
|
35
|
+
await new Promise((r) => setTimeout(r, KEY_SETTLE_MS));
|
|
36
|
+
const r = await raceDialog(app.ws, () => evaluateJson(app.ws, ACTIVE_ELEMENT_JS));
|
|
37
|
+
if (r.kind === "dialog")
|
|
38
|
+
dialog = r.dialog;
|
|
39
|
+
else
|
|
40
|
+
focusedAfter = r.value;
|
|
41
|
+
}
|
|
42
|
+
if (dialog) {
|
|
43
|
+
const body = {
|
|
44
|
+
success: true, platform: "chromium", device: app.deviceInfo.deviceName, key: a.input, repeat: a.repeat, sent,
|
|
45
|
+
focusedBefore, dialog,
|
|
46
|
+
note: `The key opened ${formatDialog(dialog)}; ${a.repeat - sent} remaining presses were not sent. Answer it with handle_dialog.`,
|
|
47
|
+
};
|
|
48
|
+
return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }], isError: false };
|
|
49
|
+
}
|
|
50
|
+
const body = {
|
|
51
|
+
success: true,
|
|
52
|
+
platform: "chromium",
|
|
53
|
+
device: app.deviceInfo.deviceName,
|
|
54
|
+
key: a.input,
|
|
55
|
+
repeat: a.repeat,
|
|
56
|
+
focusedBefore,
|
|
57
|
+
focusedAfter,
|
|
58
|
+
};
|
|
59
|
+
if (a.combo.mods & (MOD.Meta | MOD.Control) && /^[acvxz]$/.test(a.combo.key.key)) {
|
|
60
|
+
body.note = "The key events were delivered and the page's own handlers ran, but Chromium does not run editing commands (select all, copy, paste, cut, undo) for synthesized keys.";
|
|
61
|
+
}
|
|
62
|
+
return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }], isError: false };
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
return fail(err instanceof Error ? err.message : String(err));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=chromiumKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromiumKeys.js","sourceRoot":"","sources":["../../src/pro/chromiumKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ConnectedApp } from "../core/types.js";
|
|
2
|
+
import { type ScrollDirection } from "../core/chromium.js";
|
|
3
|
+
export interface ChromiumSwipeArgs {
|
|
4
|
+
direction?: ScrollDirection;
|
|
5
|
+
distance?: number;
|
|
6
|
+
startX?: number;
|
|
7
|
+
startY?: number;
|
|
8
|
+
endX?: number;
|
|
9
|
+
endY?: number;
|
|
10
|
+
durationMs?: number;
|
|
11
|
+
delta?: number;
|
|
12
|
+
burst?: boolean;
|
|
13
|
+
verify?: boolean;
|
|
14
|
+
screenshot?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function chromiumSwipe(app: ConnectedApp, a: ChromiumSwipeArgs): Promise<{
|
|
17
|
+
content: {
|
|
18
|
+
type: "text";
|
|
19
|
+
text: string;
|
|
20
|
+
}[];
|
|
21
|
+
isError: boolean;
|
|
22
|
+
} | {
|
|
23
|
+
content: ({
|
|
24
|
+
type: "text";
|
|
25
|
+
text: string;
|
|
26
|
+
} | {
|
|
27
|
+
type: "image";
|
|
28
|
+
data: string;
|
|
29
|
+
mimeType: string;
|
|
30
|
+
})[];
|
|
31
|
+
isError: boolean;
|
|
32
|
+
_meaningful: boolean | undefined;
|
|
33
|
+
_changeRate: number | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
//# sourceMappingURL=chromiumSwipe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromiumSwipe.d.ts","sourceRoot":"","sources":["../../src/pro/chromiumSwipe.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EASH,KAAK,eAAe,EAEvB,MAAM,qBAAqB,CAAC;AAU7B,MAAM,WAAW,iBAAiB;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAkBD,wBAAsB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,iBAAiB;;;;;;;;cAiEtC,MAAM;cAAQ,MAAM;;cAAa,OAAO;cAAQ,MAAM;kBAAY,MAAM;;;;;GAa5G"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { evaluateJson } from "../core/cdpCommand.js";
|
|
2
|
+
import { chromiumCapture, chromiumDrag, chromiumViewport, chromiumWheel, dragPath, pxPerCss, scrollVerdict, wheelDelta, } from "../core/chromium.js";
|
|
3
|
+
import { buildScrollProbeJs, SCROLL_READ_JS } from "../core/chromiumScreen.js";
|
|
4
|
+
import { verifyChromiumAction, dialogVerification } from "./chromiumTap.js";
|
|
5
|
+
import { raceDialog } from "../core/chromiumDialogs.js";
|
|
6
|
+
const SCROLL_SETTLE_MS = 350;
|
|
7
|
+
const SCROLL_SETTLE_MAX_MS = 1000;
|
|
8
|
+
const DRAG_DEFAULT_MS = 300;
|
|
9
|
+
const sameOffsets = (a, b) => a.container === b.container && (a.container === null || (b.container !== null && a.top === b.top && a.left === b.left));
|
|
10
|
+
async function settledScroll(app) {
|
|
11
|
+
await new Promise((r) => setTimeout(r, SCROLL_SETTLE_MS));
|
|
12
|
+
const deadline = Date.now() + SCROLL_SETTLE_MAX_MS;
|
|
13
|
+
let prev = await evaluateJson(app.ws, SCROLL_READ_JS);
|
|
14
|
+
while (Date.now() < deadline) {
|
|
15
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
16
|
+
const next = await evaluateJson(app.ws, SCROLL_READ_JS);
|
|
17
|
+
if (sameOffsets(prev, next))
|
|
18
|
+
return next;
|
|
19
|
+
prev = next;
|
|
20
|
+
}
|
|
21
|
+
return prev;
|
|
22
|
+
}
|
|
23
|
+
export async function chromiumSwipe(app, a) {
|
|
24
|
+
const fail = (text) => ({ content: [{ type: "text", text: `Error: ${text}` }], isError: true });
|
|
25
|
+
const coords = [a.startX, a.startY, a.endX, a.endY];
|
|
26
|
+
const coordCount = coords.filter((v) => v !== undefined).length;
|
|
27
|
+
if (coordCount > 0 && coordCount < 4 && a.direction === undefined) {
|
|
28
|
+
return fail("swipe needs either all four coordinates (startX/startY/endX/endY in screenshot pixels) or a direction (up/down/left/right, with optional distance in pixels). Got partial coordinates.");
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
const vp = await chromiumViewport(app);
|
|
32
|
+
const k = pxPerCss(vp);
|
|
33
|
+
const drag = coordCount === 4;
|
|
34
|
+
const notes = [];
|
|
35
|
+
if (a.delta !== undefined)
|
|
36
|
+
notes.push("delta is iOS-only and was ignored.");
|
|
37
|
+
if (a.burst)
|
|
38
|
+
notes.push("burst is not supported on chromium yet and was ignored; the regular before/after diff ran.");
|
|
39
|
+
const shouldVerify = a.verify !== false;
|
|
40
|
+
const shouldScreenshot = a.screenshot !== false;
|
|
41
|
+
const body = { success: true, platform: "chromium", device: app.deviceInfo.deviceName };
|
|
42
|
+
let beforeProbe = null;
|
|
43
|
+
let wheel = null;
|
|
44
|
+
let at;
|
|
45
|
+
if (drag) {
|
|
46
|
+
at = { x: a.startX / k, y: a.startY / k };
|
|
47
|
+
body.mode = "drag";
|
|
48
|
+
body.from = { x: a.startX, y: a.startY };
|
|
49
|
+
body.to = { x: a.endX, y: a.endY };
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
wheel = wheelDelta(a.direction ?? "up", a.distance, vp);
|
|
53
|
+
at = a.startX !== undefined && a.startY !== undefined
|
|
54
|
+
? { x: a.startX / k, y: a.startY / k }
|
|
55
|
+
: { x: vp.w / 2, y: vp.h / 2 };
|
|
56
|
+
body.mode = "wheel";
|
|
57
|
+
body.at = { x: Math.round(at.x * k), y: Math.round(at.y * k) };
|
|
58
|
+
beforeProbe = await evaluateJson(app.ws, buildScrollProbeJs(at.x, at.y, wheel.dx !== 0));
|
|
59
|
+
}
|
|
60
|
+
const before = shouldVerify ? await chromiumCapture(app) : null;
|
|
61
|
+
const act = await raceDialog(app.ws, () => drag
|
|
62
|
+
? chromiumDrag(app, dragPath(at, { x: a.endX / k, y: a.endY / k }, a.durationMs ?? DRAG_DEFAULT_MS))
|
|
63
|
+
: chromiumWheel(app, at.x, at.y, wheel.dx, wheel.dy));
|
|
64
|
+
if (act.kind === "dialog") {
|
|
65
|
+
body.dialog = act.dialog;
|
|
66
|
+
body.verification = dialogVerification(act.dialog);
|
|
67
|
+
return { content: [{ type: "text", text: JSON.stringify(body, null, 2) }], isError: false };
|
|
68
|
+
}
|
|
69
|
+
let warning;
|
|
70
|
+
if (beforeProbe && wheel) {
|
|
71
|
+
const afterProbe = await settledScroll(app);
|
|
72
|
+
const v = scrollVerdict(beforeProbe, afterProbe, wheel);
|
|
73
|
+
const moved = Math.round(v.moved * k);
|
|
74
|
+
body.scrolled = { dx: wheel.dx !== 0 ? moved : 0, dy: wheel.dy !== 0 ? moved : 0, unit: "screenshot px" };
|
|
75
|
+
if (beforeProbe.container !== null) {
|
|
76
|
+
body.container = v.chainedTo ? `${v.chainedTo} (${beforeProbe.container} was at its limit, so the wheel passed on)` : beforeProbe.container;
|
|
77
|
+
}
|
|
78
|
+
if (v.warning)
|
|
79
|
+
warning = `Wheel delivered but nothing scrolled: ${v.warning}`;
|
|
80
|
+
}
|
|
81
|
+
const { screenshot, verification, dialog } = await verifyChromiumAction(app, before, shouldScreenshot, drag ? "drag" : "wheel", drag ? undefined : 0);
|
|
82
|
+
if (dialog)
|
|
83
|
+
body.dialog = dialog;
|
|
84
|
+
body.verification = verification;
|
|
85
|
+
if (warning)
|
|
86
|
+
body.warning = warning;
|
|
87
|
+
if (notes.length)
|
|
88
|
+
body.note = notes.join(" ");
|
|
89
|
+
const content = [
|
|
90
|
+
{ type: "text", text: JSON.stringify(body, null, 2) },
|
|
91
|
+
];
|
|
92
|
+
if (screenshot)
|
|
93
|
+
content.push({ type: "image", data: screenshot.image, mimeType: "image/jpeg" });
|
|
94
|
+
return {
|
|
95
|
+
content,
|
|
96
|
+
isError: false,
|
|
97
|
+
_meaningful: verification.skipped ? undefined : verification.meaningful,
|
|
98
|
+
_changeRate: verification.skipped ? undefined : verification.changeRate,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
return fail(err instanceof Error ? err.message : String(err));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=chromiumSwipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromiumSwipe.js","sourceRoot":"","sources":["../../src/pro/chromiumSwipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ConnectedApp } from "../core/types.js";
|
|
2
|
+
import type { TapOptions, TapQuery, TapResult, TapScreenshot, TapVerification } from "./tap.js";
|
|
3
|
+
import { type ChromiumShot } from "../core/chromium.js";
|
|
4
|
+
import { type DialogInfo } from "../core/chromiumDialogs.js";
|
|
5
|
+
export declare function chromiumTap(app: ConnectedApp, query: TapQuery, options: Pick<TapOptions, "index" | "duration" | "screenshot" | "verify">): Promise<TapResult>;
|
|
6
|
+
export declare function verifyChromiumAction(app: ConnectedApp, before: ChromiumShot | null, shouldScreenshot: boolean, action: string, settleMs?: number): Promise<{
|
|
7
|
+
screenshot?: TapScreenshot;
|
|
8
|
+
verification: TapVerification;
|
|
9
|
+
dialog?: DialogInfo;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function dialogVerification(d: DialogInfo): TapVerification;
|
|
12
|
+
//# sourceMappingURL=chromiumTap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromiumTap.d.ts","sourceRoot":"","sources":["../../src/pro/chromiumTap.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhG,OAAO,EAQH,KAAK,YAAY,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKvF,wBAAsB,WAAW,CAC7B,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC,GAC1E,OAAO,CAAC,SAAS,CAAC,CA6FpB;AAMD,wBAAsB,oBAAoB,CACtC,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,gBAAgB,EAAE,OAAO,EACzB,MAAM,EAAE,MAAM,EACd,QAAQ,SAAY,GACrB,OAAO,CAAC;IAAE,UAAU,CAAC,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,eAAe,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC,CAiD7F;AAGD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,eAAe,CAMjE"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { buildVerificationExplanation } from "./tap.js";
|
|
2
|
+
import { compareScreenshots } from "./screenshot-diff.js";
|
|
3
|
+
import { chromiumCapture, chromiumClick, chromiumViewport, collectDomTargets, pickDomTarget, prepareDomTarget, pxPerCss, } from "../core/chromium.js";
|
|
4
|
+
import { raceDialog, formatDialog } from "../core/chromiumDialogs.js";
|
|
5
|
+
const SETTLE_MS = 350;
|
|
6
|
+
export async function chromiumTap(app, query, options) {
|
|
7
|
+
const base = { query, platform: "chromium", device: app.deviceInfo.deviceName, method: "cdp" };
|
|
8
|
+
try {
|
|
9
|
+
let css;
|
|
10
|
+
let k;
|
|
11
|
+
let pressed;
|
|
12
|
+
let warning;
|
|
13
|
+
const hiddenError = (vp) => vp.hidden
|
|
14
|
+
? { ...base, success: false, error: "The window is hidden (document.visibilityState is \"hidden\"), so nothing was clicked. Show the window and retry." }
|
|
15
|
+
: null;
|
|
16
|
+
if (query.x !== undefined && query.y !== undefined) {
|
|
17
|
+
const vp = await chromiumViewport(app);
|
|
18
|
+
const hidden = hiddenError(vp);
|
|
19
|
+
if (hidden)
|
|
20
|
+
return hidden;
|
|
21
|
+
k = pxPerCss(vp);
|
|
22
|
+
css = { x: query.x / k, y: query.y / k };
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const found = await collectDomTargets(app, {
|
|
26
|
+
mode: "tap",
|
|
27
|
+
testID: query.testID,
|
|
28
|
+
text: query.text,
|
|
29
|
+
component: query.component,
|
|
30
|
+
});
|
|
31
|
+
const hidden = hiddenError(found.viewport);
|
|
32
|
+
if (hidden)
|
|
33
|
+
return hidden;
|
|
34
|
+
k = pxPerCss(found.viewport);
|
|
35
|
+
const pick = pickDomTarget(found.candidates, query.text, options.index);
|
|
36
|
+
if (pick.kind === "ambiguous") {
|
|
37
|
+
return {
|
|
38
|
+
...base,
|
|
39
|
+
success: false,
|
|
40
|
+
ambiguous: true,
|
|
41
|
+
error: `Ambiguous: ${pick.matches.length} elements match this query — use index= to pick one`,
|
|
42
|
+
matches: pick.matches.map((c, n) => ({
|
|
43
|
+
index: n,
|
|
44
|
+
component: c.tag,
|
|
45
|
+
text: c.text,
|
|
46
|
+
testID: c.testID,
|
|
47
|
+
x: Math.round((c.rect.x + c.rect.w / 2) * k),
|
|
48
|
+
y: Math.round((c.rect.y + c.rect.h / 2) * k),
|
|
49
|
+
})),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (pick.kind === "none") {
|
|
53
|
+
return {
|
|
54
|
+
...base,
|
|
55
|
+
success: false,
|
|
56
|
+
error: `No visible element matches ${JSON.stringify({ testID: query.testID, text: query.text, component: query.component })}` +
|
|
57
|
+
(options.index !== undefined ? ` at index ${options.index}` : "") + ".",
|
|
58
|
+
suggestion: "On chromium, testID matches data-testid / data-test-id / id, text matches visible text, component matches a React component name. " +
|
|
59
|
+
"Take screenshot({ device }) and tap(x, y), or use find_components to discover component names.",
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const prep = await prepareDomTarget(app, pick.cand.i);
|
|
63
|
+
css = { x: prep.x, y: prep.y };
|
|
64
|
+
pressed = `<${pick.cand.tag}>${pick.cand.text ? ` "${pick.cand.text.slice(0, 60)}"` : ""}`;
|
|
65
|
+
const notes = [];
|
|
66
|
+
if (prep.scrolled)
|
|
67
|
+
notes.push("The element was off-screen, so it was scrolled into view first; the verification diff covers the click only.");
|
|
68
|
+
if (prep.covered) {
|
|
69
|
+
notes.push(`The element's centre is covered by ${prep.covered}, so the click landed on that instead. ` +
|
|
70
|
+
"Close the overlay first, or tap the covering element deliberately.");
|
|
71
|
+
}
|
|
72
|
+
if (notes.length)
|
|
73
|
+
warning = notes.join(" ");
|
|
74
|
+
}
|
|
75
|
+
const shouldVerify = options.verify !== false;
|
|
76
|
+
const shouldScreenshot = options.screenshot !== false;
|
|
77
|
+
const before = shouldVerify ? await chromiumCapture(app) : null;
|
|
78
|
+
const click = await raceDialog(app.ws, () => chromiumClick(app, css.x, css.y, options.duration ?? 0));
|
|
79
|
+
const { screenshot, verification, dialog } = click.kind === "dialog"
|
|
80
|
+
? { screenshot: undefined, verification: dialogVerification(click.dialog), dialog: click.dialog }
|
|
81
|
+
: await verifyChromiumAction(app, before, shouldScreenshot, "click");
|
|
82
|
+
return {
|
|
83
|
+
...base,
|
|
84
|
+
success: true,
|
|
85
|
+
pressed,
|
|
86
|
+
tappedAt: { x: Math.round(css.x * k), y: Math.round(css.y * k) },
|
|
87
|
+
convertedTo: { x: Math.round(css.x), y: Math.round(css.y), unit: "css" },
|
|
88
|
+
screenshot,
|
|
89
|
+
verification,
|
|
90
|
+
dialog,
|
|
91
|
+
warning,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
return { ...base, success: false, error: err instanceof Error ? err.message : String(err) };
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export async function verifyChromiumAction(app, before, shouldScreenshot, action, settleMs = SETTLE_MS) {
|
|
99
|
+
let screenshot;
|
|
100
|
+
let verification = {
|
|
101
|
+
skipped: true,
|
|
102
|
+
skippedReason: "verify=false",
|
|
103
|
+
explanation: "Verification skipped (verify=false).",
|
|
104
|
+
};
|
|
105
|
+
let after;
|
|
106
|
+
if (before || shouldScreenshot) {
|
|
107
|
+
if (settleMs > 0)
|
|
108
|
+
await new Promise((r) => setTimeout(r, settleMs));
|
|
109
|
+
try {
|
|
110
|
+
const shot = await raceDialog(app.ws, () => chromiumCapture(app));
|
|
111
|
+
if (shot.kind === "dialog")
|
|
112
|
+
return { verification: dialogVerification(shot.dialog), dialog: shot.dialog };
|
|
113
|
+
after = shot.value;
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
const why = err instanceof Error ? err.message : String(err);
|
|
117
|
+
verification = {
|
|
118
|
+
...(before ? { meaningful: true } : { skipped: true, skippedReason: "no after-frame" }),
|
|
119
|
+
explanation: `The ${action} was delivered, then the window could not be captured: ${why} It most likely hid itself in response to the ${action}.`,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (after) {
|
|
124
|
+
if (shouldScreenshot) {
|
|
125
|
+
screenshot = { image: after.buffer.toString("base64"), width: after.width, height: after.height, scaleFactor: after.scaleFactor };
|
|
126
|
+
}
|
|
127
|
+
if (before) {
|
|
128
|
+
const d = await compareScreenshots(before.buffer, after.buffer, { regions: true });
|
|
129
|
+
verification = {
|
|
130
|
+
meaningful: d.changed,
|
|
131
|
+
changeRate: d.changeRate,
|
|
132
|
+
changedPixels: d.changedPixels,
|
|
133
|
+
totalPixels: d.totalPixels,
|
|
134
|
+
regions: d.regions,
|
|
135
|
+
explanation: buildVerificationExplanation({
|
|
136
|
+
meaningful: d.changed,
|
|
137
|
+
changeRate: d.changeRate,
|
|
138
|
+
changedPixels: d.changedPixels,
|
|
139
|
+
totalPixels: d.totalPixels,
|
|
140
|
+
regions: d.regions,
|
|
141
|
+
action: action === "click" ? "tap" : "swipe",
|
|
142
|
+
}),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return { screenshot, verification };
|
|
147
|
+
}
|
|
148
|
+
export function dialogVerification(d) {
|
|
149
|
+
return {
|
|
150
|
+
skipped: true,
|
|
151
|
+
skippedReason: "dialog open",
|
|
152
|
+
explanation: `The input was delivered and opened ${formatDialog(d)}. The page is paused until it is answered: call handle_dialog({ action: "accept" }) or ({ action: "dismiss" }), then take a screenshot.`,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=chromiumTap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromiumTap.js","sourceRoot":"","sources":["../../src/pro/chromiumTap.ts"],"names":[],"mappings":"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"}
|
package/build/pro/tap.d.ts
CHANGED
|
@@ -120,6 +120,7 @@ export interface TapResult {
|
|
|
120
120
|
suggestion?: string;
|
|
121
121
|
screenshot?: TapScreenshot;
|
|
122
122
|
verification?: TapVerification;
|
|
123
|
+
dialog?: import("../core/chromiumDialogs.js").DialogInfo;
|
|
123
124
|
warning?: string;
|
|
124
125
|
deviceNote?: string;
|
|
125
126
|
artifactKey?: string;
|
package/build/pro/tap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/pro/tap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAYzD,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../../src/pro/tap.ts"],"names":[],"mappings":"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"}
|