react-native-ai-devtools 1.4.16 → 1.4.18
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 +43 -18
- package/build/core/index.d.ts +18 -18
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +16 -16
- package/build/core/index.js.map +1 -1
- package/build/core/ios.d.ts +20 -7
- package/build/core/ios.d.ts.map +1 -1
- package/build/core/ios.js +453 -339
- package/build/core/ios.js.map +1 -1
- package/build/core/telemetry.d.ts +1 -1
- package/build/core/telemetry.d.ts.map +1 -1
- package/build/core/telemetry.js +5 -1
- package/build/core/telemetry.js.map +1 -1
- package/build/index.js +32 -46
- package/build/index.js.map +1 -1
- package/build/pro/tap.d.ts.map +1 -1
- package/build/pro/tap.js +157 -99
- package/build/pro/tap.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -52,30 +52,53 @@ Android works out of the box — all device control tools use ADB, which ships w
|
|
|
52
52
|
adb devices
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
### iOS Simulator —
|
|
55
|
+
### iOS Simulator — UI Automation Setup
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
iOS UI automation tools (tap, swipe, text input, accessibility queries) require a UI driver. Install one of the following:
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
**Option A: AXe CLI (experimental)**
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
[AXe](https://github.com/cameroncooke/AXe) is a standalone CLI for iOS simulator automation. No daemon required — single binary, simple setup.
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
brew install
|
|
64
|
+
brew install cameroncooke/axe/axe
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
Verify: `axe --version`
|
|
68
|
+
|
|
69
|
+
Add `env` to your MCP server configuration:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"mcpServers": {
|
|
74
|
+
"rn-debugger": {
|
|
75
|
+
"type": "stdio",
|
|
76
|
+
"command": "npx",
|
|
77
|
+
"args": ["react-native-ai-devtools"],
|
|
78
|
+
"env": { "IOS_DRIVER": "axe" }
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
> **Note:** AXe text input only supports US keyboard layout characters.
|
|
85
|
+
|
|
86
|
+
**Option B: IDB**
|
|
87
|
+
|
|
88
|
+
[IDB (iOS Development Bridge)](https://github.com/facebook/idb) is a tool built by Meta for automating iOS Simulators. Requires a background daemon.
|
|
68
89
|
|
|
69
90
|
```bash
|
|
70
|
-
|
|
91
|
+
brew install idb-companion
|
|
71
92
|
```
|
|
72
93
|
|
|
73
|
-
|
|
94
|
+
Verify: `idb_companion --list 1`
|
|
74
95
|
|
|
75
|
-
|
|
96
|
+
IDB is the default driver — no `IOS_DRIVER` env var needed.
|
|
76
97
|
|
|
77
|
-
|
|
78
|
-
|
|
98
|
+
**What works without a UI driver:**
|
|
99
|
+
|
|
100
|
+
| Capability | Without IDB/AXe | With IDB/AXe |
|
|
101
|
+
|------------|-----------------|--------------|
|
|
79
102
|
| Screenshots | Yes (simctl) | Yes |
|
|
80
103
|
| App install/launch/terminate | Yes (simctl) | Yes |
|
|
81
104
|
| URL opening | Yes (simctl) | Yes |
|
|
@@ -86,13 +109,13 @@ You should see a list of available simulators. If the command is not found, the
|
|
|
86
109
|
| **Element finding / waiting** | **No** | Yes |
|
|
87
110
|
| **Hardware buttons (Home, Lock)** | **No** | Yes |
|
|
88
111
|
|
|
89
|
-
> **Troubleshooting**: If you see errors like `"IDB is not installed"` or `"
|
|
112
|
+
> **Troubleshooting**: If you see errors like `"IDB is not installed"` or `"AXe is not installed"` in tap results, install the appropriate driver with the commands above and retry.
|
|
90
113
|
|
|
91
114
|
## Requirements
|
|
92
115
|
|
|
93
116
|
- Node.js 18+
|
|
94
117
|
- React Native app running with Metro bundler
|
|
95
|
-
- **iOS UI automation**: [Facebook IDB](https://fbidb.io/)
|
|
118
|
+
- **iOS UI automation**: [Facebook IDB](https://fbidb.io/) (`brew install idb-companion`) or [AXe CLI](https://github.com/cameroncooke/AXe) (`brew install cameroncooke/axe/axe`) — required for tap, swipe, text input, accessibility on iOS Simulator
|
|
96
119
|
- **Optional for offline OCR fallback**: Python 3.6+ (only needed when cloud OCR is unavailable, see [OCR Setup](#ocr-text-extraction))
|
|
97
120
|
|
|
98
121
|
## Claude Code Setup
|
|
@@ -238,20 +261,22 @@ See the [full tool reference](docs/tools.md) for all tools with descriptions. Ke
|
|
|
238
261
|
- **Without SDK**: Enables CDP `Network.enable` (on supported targets) or injects a JS fetch interceptor as fallback
|
|
239
262
|
5. Stores logs and network requests in circular buffers for retrieval
|
|
240
263
|
|
|
241
|
-
##
|
|
264
|
+
## Connection Management
|
|
265
|
+
|
|
266
|
+
### Explicit Connection
|
|
242
267
|
|
|
243
|
-
The server
|
|
268
|
+
The server does **not** auto-connect on startup. Call `scan_metro` to discover and connect to Metro servers. This prevents multiple MCP server instances (from parallel agent sessions) from competing for the single CDP WebSocket slot, which would cause connection thrashing and dropped tools.
|
|
244
269
|
|
|
245
|
-
###
|
|
270
|
+
### Graceful Shutdown
|
|
246
271
|
|
|
247
|
-
When the MCP server
|
|
272
|
+
When the MCP server process is terminated (`SIGINT`/`SIGTERM`), it closes all CDP WebSocket connections and cancels reconnection timers, freeing the CDP slot immediately for other sessions.
|
|
248
273
|
|
|
249
274
|
### Reconnection on Disconnect
|
|
250
275
|
|
|
251
276
|
When the connection to Metro is lost (e.g., app restart, Metro restart, or network issues):
|
|
252
277
|
|
|
253
278
|
1. The server automatically attempts to reconnect
|
|
254
|
-
2. Uses exponential backoff:
|
|
279
|
+
2. Uses exponential backoff: 500ms, 1s, 2s, 4s, 8s (up to 8 attempts)
|
|
255
280
|
3. Re-fetches device list to handle new WebSocket URLs
|
|
256
281
|
4. Preserves existing log and network buffers
|
|
257
282
|
|
package/build/core/index.d.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
export * from "./types.js";
|
|
2
2
|
export { DEFAULT_RECONNECTION_CONFIG, initConnectionState, updateConnectionState, getConnectionState, getAllConnectionStates, recordConnectionGap, closeConnectionGap, getRecentGaps, hasRecentDisconnect, saveConnectionMetadata, getConnectionMetadata, clearConnectionMetadata, getAllConnectionMetadata, saveReconnectionTimer, getAndClearReconnectionTimer, cancelReconnectionTimer, cancelAllReconnectionTimers, clearAllConnectionState, calculateBackoffDelay, formatDuration, initContextHealth, getContextHealth, updateContextHealth, markContextStale, markContextHealthy, clearContextHealth, getAllContextHealth, } from "./connectionState.js";
|
|
3
|
-
export { logBuffers, networkBuffers, getLogBuffer, getNetworkBuffer, getAllLogs, getTotalLogCount, bundleErrorBuffer, imageBuffer, connectedApps, pendingExecutions, getNextMessageId, getActiveSimulatorUdid, getLastCDPMessageTime, updateLastCDPMessageTime, clearLastCDPMessageTime, clearAllCDPMessageTimes, getTargetPlatform } from "./state.js";
|
|
4
|
-
export { LogBuffer, mapConsoleType, formatLogs, getLogs, searchLogs, getLogSummary } from "./logs.js";
|
|
3
|
+
export { logBuffers, networkBuffers, getLogBuffer, getNetworkBuffer, getAllLogs, getTotalLogCount, bundleErrorBuffer, imageBuffer, connectedApps, pendingExecutions, getNextMessageId, getActiveSimulatorUdid, getLastCDPMessageTime, updateLastCDPMessageTime, clearLastCDPMessageTime, clearAllCDPMessageTimes, getTargetPlatform, } from "./state.js";
|
|
4
|
+
export { LogBuffer, mapConsoleType, formatLogs, getLogs, searchLogs, getLogSummary, } from "./logs.js";
|
|
5
5
|
export { ImageBuffer } from "./imageBuffer.js";
|
|
6
6
|
export type { ImageEntry, ImageGroup, ImageEntryMeta } from "./imageBuffer.js";
|
|
7
|
-
export { NetworkBuffer, formatRequest, formatRequests, formatRequestDetails, getNetworkRequests, searchNetworkRequests, getNetworkStats } from "./network.js";
|
|
8
|
-
export { COMMON_PORTS, isPortOpen, scanMetroPorts, fetchDevices, selectMainDevice, filterBridgelessDevices, filterDebuggableDevices, discoverMetroDevices, checkMetroState } from "./metro.js";
|
|
7
|
+
export { NetworkBuffer, formatRequest, formatRequests, formatRequestDetails, getNetworkRequests, searchNetworkRequests, getNetworkStats, } from "./network.js";
|
|
8
|
+
export { COMMON_PORTS, isPortOpen, scanMetroPorts, fetchDevices, selectMainDevice, filterBridgelessDevices, filterDebuggableDevices, discoverMetroDevices, checkMetroState, } from "./metro.js";
|
|
9
9
|
export type { MetroState } from "./metro.js";
|
|
10
10
|
export { formatRemoteObject, handleCDPMessage, connectToDevice, getConnectedApps, getFirstConnectedApp, getConnectedAppByDevice, hasConnectedApp, runQuickHealthCheck, ensureConnection, getPassiveConnectionStatus, checkAndEnsureConnection, suppressReconnection, suppressReconnectionForKey, clearReconnectionSuppression, verifyLogPipeline, isHealthCheckMarker, } from "./connection.js";
|
|
11
|
-
export type { PassiveConnectionStatus, LogPipelineResult } from "./connection.js";
|
|
12
|
-
export { executeInApp, listDebugGlobals, inspectGlobal, reloadApp, getComponentTree, getScreenLayout, inspectComponent, findComponents, pressElement, inspectAtPoint, toggleElementInspector, isInspectorActive, getInspectorSelection } from "./executor.js";
|
|
13
|
-
export { isAdbAvailable, listAndroidDevices, getDefaultAndroidDevice, androidScreenshot, androidInstallApp, androidLaunchApp, androidListPackages, ANDROID_KEY_EVENTS, androidTap, androidLongPress, androidSwipe, androidInputText, androidKeyEvent, androidGetScreenSize, androidGetDensity, androidGetStatusBarHeight, androidDescribeAll, androidDescribePoint, androidTapElement, androidGetUITree, androidFindElement, androidWaitForElement } from "./android.js";
|
|
14
|
-
export type { AndroidAccessibilityElement, AndroidDescribeResult, AndroidUIElement, FindElementResult, WaitForElementResult, FindElementOptions } from "./android.js";
|
|
15
|
-
export { isSimctlAvailable, listIOSSimulators, getBootedSimulatorUdid, findSimulatorByName, getActiveOrBootedSimulatorUdid, iosScreenshot, iosInstallApp, iosLaunchApp, iosOpenUrl, iosTerminateApp, iosBootSimulator, isIdbAvailable, iosTap, iosTapElement, iosSwipe, iosInputText, iosButton, iosKeyEvent, iosKeySequence, iosDescribeAll, iosDescribePoint, IOS_BUTTON_TYPES, iosGetUITree, iosFindElement, iosWaitForElement } from "./ios.js";
|
|
16
|
-
export type { iOSButtonType, iOSAccessibilityElement, iOSDescribeResult, IOSUIElement, IOSFindElementResult, IOSWaitForElementResult, IOSFindElementOptions } from "./ios.js";
|
|
17
|
-
export { BundleErrorBuffer, parseMetroError, formatBundleError, formatBundleErrors, connectMetroBuildEvents, disconnectMetroBuildEvents, isConnectedToMetroBuildEvents, fetchBundleStatus, getBundleErrors, getBundleStatusWithErrors } from "./bundle.js";
|
|
11
|
+
export type { PassiveConnectionStatus, LogPipelineResult, } from "./connection.js";
|
|
12
|
+
export { executeInApp, listDebugGlobals, inspectGlobal, reloadApp, getComponentTree, getScreenLayout, inspectComponent, findComponents, pressElement, inspectAtPoint, toggleElementInspector, isInspectorActive, getInspectorSelection, } from "./executor.js";
|
|
13
|
+
export { isAdbAvailable, listAndroidDevices, getDefaultAndroidDevice, androidScreenshot, androidInstallApp, androidLaunchApp, androidListPackages, ANDROID_KEY_EVENTS, androidTap, androidLongPress, androidSwipe, androidInputText, androidKeyEvent, androidGetScreenSize, androidGetDensity, androidGetStatusBarHeight, androidDescribeAll, androidDescribePoint, androidTapElement, androidGetUITree, androidFindElement, androidWaitForElement, } from "./android.js";
|
|
14
|
+
export type { AndroidAccessibilityElement, AndroidDescribeResult, AndroidUIElement, FindElementResult, WaitForElementResult, FindElementOptions, } from "./android.js";
|
|
15
|
+
export { isSimctlAvailable, listIOSSimulators, getBootedSimulatorUdid, findSimulatorByName, getActiveOrBootedSimulatorUdid, iosScreenshot, iosInstallApp, iosLaunchApp, iosOpenUrl, iosTerminateApp, iosBootSimulator, isIdbAvailable, isAxeAvailable, isUiDriverAvailable, getUiDriverInstallHint, iosTap, iosTapElement, iosSwipe, iosInputText, iosButton, iosKeyEvent, iosKeySequence, iosDescribeAll, iosDescribePoint, IOS_BUTTON_TYPES, iosGetUITree, iosFindElement, iosWaitForElement, } from "./ios.js";
|
|
16
|
+
export type { iOSButtonType, iOSAccessibilityElement, iOSDescribeResult, IOSUIElement, IOSFindElementResult, IOSWaitForElementResult, IOSFindElementOptions, } from "./ios.js";
|
|
17
|
+
export { BundleErrorBuffer, parseMetroError, formatBundleError, formatBundleErrors, connectMetroBuildEvents, disconnectMetroBuildEvents, isConnectedToMetroBuildEvents, fetchBundleStatus, getBundleErrors, getBundleStatusWithErrors, } from "./bundle.js";
|
|
18
18
|
export { startDebugHttpServer, getDebugServerPort } from "./httpServer.js";
|
|
19
|
-
export { startHttpServerProcess, stopHttpServerProcess, restartHttpServerProcess, getHttpServerProcessPort, isHttpServerProcessRunning } from "./httpServerProcess.js";
|
|
20
|
-
export { ensureLicense, getLicenseStatus, getUsageInfo, incrementLocalUsage } from "./license.js";
|
|
19
|
+
export { startHttpServerProcess, stopHttpServerProcess, restartHttpServerProcess, getHttpServerProcessPort, isHttpServerProcessRunning, } from "./httpServerProcess.js";
|
|
20
|
+
export { ensureLicense, getLicenseStatus, getUsageInfo, incrementLocalUsage, } from "./license.js";
|
|
21
21
|
export type { LicenseTier, LicenseStatus, UsageInfo } from "./license.js";
|
|
22
|
-
export { initTelemetry, isTelemetryEnabled, trackToolInvocation } from "./telemetry.js";
|
|
23
|
-
export { recognizeText, terminateOCRWorker, inferIOSDevicePixelRatio } from "./ocr.js";
|
|
22
|
+
export { initTelemetry, isTelemetryEnabled, trackToolInvocation, } from "./telemetry.js";
|
|
23
|
+
export { recognizeText, terminateOCRWorker, inferIOSDevicePixelRatio, } from "./ocr.js";
|
|
24
24
|
export type { OCRResult, OCRWord, OCRLine, OCROptions } from "./ocr.js";
|
|
25
|
-
export { parseErrorScreenText, formatParsedError } from "./errorScreenParser.js";
|
|
25
|
+
export { parseErrorScreenText, formatParsedError, } from "./errorScreenParser.js";
|
|
26
26
|
export type { ParsedErrorScreen } from "./errorScreenParser.js";
|
|
27
|
-
export { detectLogBox, dismissLogBox, formatLogBoxWarning, formatDismissedEntries, pushLogBox, addLogBoxIgnorePatterns } from "./logbox.js";
|
|
28
|
-
export type { LogBoxState, LogBoxEntry, LogBoxDismissResult } from "./logbox.js";
|
|
27
|
+
export { detectLogBox, dismissLogBox, formatLogBoxWarning, formatDismissedEntries, pushLogBox, addLogBoxIgnorePatterns, } from "./logbox.js";
|
|
28
|
+
export type { LogBoxState, LogBoxEntry, LogBoxDismissResult, } from "./logbox.js";
|
|
29
29
|
export { formatLogsAsTonl, formatNetworkAsTonl } from "./format.js";
|
|
30
30
|
export type { OutputFormat } from "./format.js";
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAG3B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/build/core/index.js
CHANGED
|
@@ -5,15 +5,15 @@ export { DEFAULT_RECONNECTION_CONFIG, initConnectionState, updateConnectionState
|
|
|
5
5
|
// Context health tracking
|
|
6
6
|
initContextHealth, getContextHealth, updateContextHealth, markContextStale, markContextHealthy, clearContextHealth, getAllContextHealth, } from "./connectionState.js";
|
|
7
7
|
// State
|
|
8
|
-
export { logBuffers, networkBuffers, getLogBuffer, getNetworkBuffer, getAllLogs, getTotalLogCount, bundleErrorBuffer, imageBuffer, connectedApps, pendingExecutions, getNextMessageId, getActiveSimulatorUdid, getLastCDPMessageTime, updateLastCDPMessageTime, clearLastCDPMessageTime, clearAllCDPMessageTimes, getTargetPlatform } from "./state.js";
|
|
8
|
+
export { logBuffers, networkBuffers, getLogBuffer, getNetworkBuffer, getAllLogs, getTotalLogCount, bundleErrorBuffer, imageBuffer, connectedApps, pendingExecutions, getNextMessageId, getActiveSimulatorUdid, getLastCDPMessageTime, updateLastCDPMessageTime, clearLastCDPMessageTime, clearAllCDPMessageTimes, getTargetPlatform, } from "./state.js";
|
|
9
9
|
// Logs
|
|
10
|
-
export { LogBuffer, mapConsoleType, formatLogs, getLogs, searchLogs, getLogSummary } from "./logs.js";
|
|
10
|
+
export { LogBuffer, mapConsoleType, formatLogs, getLogs, searchLogs, getLogSummary, } from "./logs.js";
|
|
11
11
|
// Image Buffer
|
|
12
12
|
export { ImageBuffer } from "./imageBuffer.js";
|
|
13
13
|
// Network
|
|
14
|
-
export { NetworkBuffer, formatRequest, formatRequests, formatRequestDetails, getNetworkRequests, searchNetworkRequests, getNetworkStats } from "./network.js";
|
|
14
|
+
export { NetworkBuffer, formatRequest, formatRequests, formatRequestDetails, getNetworkRequests, searchNetworkRequests, getNetworkStats, } from "./network.js";
|
|
15
15
|
// Metro
|
|
16
|
-
export { COMMON_PORTS, isPortOpen, scanMetroPorts, fetchDevices, selectMainDevice, filterBridgelessDevices, filterDebuggableDevices, discoverMetroDevices, checkMetroState } from "./metro.js";
|
|
16
|
+
export { COMMON_PORTS, isPortOpen, scanMetroPorts, fetchDevices, selectMainDevice, filterBridgelessDevices, filterDebuggableDevices, discoverMetroDevices, checkMetroState, } from "./metro.js";
|
|
17
17
|
// Connection
|
|
18
18
|
export { formatRemoteObject, handleCDPMessage, connectToDevice, getConnectedApps, getFirstConnectedApp, getConnectedAppByDevice, hasConnectedApp, runQuickHealthCheck, ensureConnection, getPassiveConnectionStatus, checkAndEnsureConnection, suppressReconnection, suppressReconnectionForKey, clearReconnectionSuppression, verifyLogPipeline, isHealthCheckMarker, } from "./connection.js";
|
|
19
19
|
// Executor
|
|
@@ -21,7 +21,7 @@ export { executeInApp, listDebugGlobals, inspectGlobal, reloadApp,
|
|
|
21
21
|
// React Component Inspection
|
|
22
22
|
getComponentTree, getScreenLayout, inspectComponent, findComponents, pressElement,
|
|
23
23
|
// Coordinate-based inspection
|
|
24
|
-
inspectAtPoint, toggleElementInspector, isInspectorActive, getInspectorSelection } from "./executor.js";
|
|
24
|
+
inspectAtPoint, toggleElementInspector, isInspectorActive, getInspectorSelection, } from "./executor.js";
|
|
25
25
|
// Android (ADB)
|
|
26
26
|
export { isAdbAvailable, listAndroidDevices, getDefaultAndroidDevice, androidScreenshot, androidInstallApp, androidLaunchApp, androidListPackages,
|
|
27
27
|
// UI Input (Phase 2)
|
|
@@ -29,31 +29,31 @@ ANDROID_KEY_EVENTS, androidTap, androidLongPress, androidSwipe, androidInputText
|
|
|
29
29
|
// Accessibility (UI Hierarchy)
|
|
30
30
|
androidDescribeAll, androidDescribePoint, androidTapElement,
|
|
31
31
|
// UI Accessibility (Element Finding)
|
|
32
|
-
androidGetUITree, androidFindElement, androidWaitForElement } from "./android.js";
|
|
32
|
+
androidGetUITree, androidFindElement, androidWaitForElement, } from "./android.js";
|
|
33
33
|
// iOS (simctl + IDB)
|
|
34
34
|
export {
|
|
35
35
|
// simctl-based tools
|
|
36
36
|
isSimctlAvailable, listIOSSimulators, getBootedSimulatorUdid, findSimulatorByName, getActiveOrBootedSimulatorUdid, iosScreenshot, iosInstallApp, iosLaunchApp, iosOpenUrl, iosTerminateApp, iosBootSimulator,
|
|
37
|
-
// IDB
|
|
38
|
-
isIdbAvailable, iosTap, iosTapElement, iosSwipe, iosInputText, iosButton, iosKeyEvent, iosKeySequence, iosDescribeAll, iosDescribePoint, IOS_BUTTON_TYPES,
|
|
37
|
+
// UI driver tools (IDB or AXe)
|
|
38
|
+
isIdbAvailable, isAxeAvailable, isUiDriverAvailable, getUiDriverInstallHint, iosTap, iosTapElement, iosSwipe, iosInputText, iosButton, iosKeyEvent, iosKeySequence, iosDescribeAll, iosDescribePoint, IOS_BUTTON_TYPES,
|
|
39
39
|
// UI Accessibility (Element Finding) - Requires IDB
|
|
40
|
-
iosGetUITree, iosFindElement, iosWaitForElement } from "./ios.js";
|
|
40
|
+
iosGetUITree, iosFindElement, iosWaitForElement, } from "./ios.js";
|
|
41
41
|
// Bundle (Metro build errors)
|
|
42
|
-
export { BundleErrorBuffer, parseMetroError, formatBundleError, formatBundleErrors, connectMetroBuildEvents, disconnectMetroBuildEvents, isConnectedToMetroBuildEvents, fetchBundleStatus, getBundleErrors, getBundleStatusWithErrors } from "./bundle.js";
|
|
42
|
+
export { BundleErrorBuffer, parseMetroError, formatBundleError, formatBundleErrors, connectMetroBuildEvents, disconnectMetroBuildEvents, isConnectedToMetroBuildEvents, fetchBundleStatus, getBundleErrors, getBundleStatusWithErrors, } from "./bundle.js";
|
|
43
43
|
// Debug HTTP Server
|
|
44
44
|
export { startDebugHttpServer, getDebugServerPort } from "./httpServer.js";
|
|
45
45
|
// HTTP Server Process (for hot-reload)
|
|
46
|
-
export { startHttpServerProcess, stopHttpServerProcess, restartHttpServerProcess, getHttpServerProcessPort, isHttpServerProcessRunning } from "./httpServerProcess.js";
|
|
46
|
+
export { startHttpServerProcess, stopHttpServerProcess, restartHttpServerProcess, getHttpServerProcessPort, isHttpServerProcessRunning, } from "./httpServerProcess.js";
|
|
47
47
|
// License & Usage
|
|
48
|
-
export { ensureLicense, getLicenseStatus, getUsageInfo, incrementLocalUsage } from "./license.js";
|
|
48
|
+
export { ensureLicense, getLicenseStatus, getUsageInfo, incrementLocalUsage, } from "./license.js";
|
|
49
49
|
// Telemetry
|
|
50
|
-
export { initTelemetry, isTelemetryEnabled, trackToolInvocation } from "./telemetry.js";
|
|
50
|
+
export { initTelemetry, isTelemetryEnabled, trackToolInvocation, } from "./telemetry.js";
|
|
51
51
|
// OCR
|
|
52
|
-
export { recognizeText, terminateOCRWorker, inferIOSDevicePixelRatio } from "./ocr.js";
|
|
52
|
+
export { recognizeText, terminateOCRWorker, inferIOSDevicePixelRatio, } from "./ocr.js";
|
|
53
53
|
// Error Screen Parser (OCR-based bundle error fallback)
|
|
54
|
-
export { parseErrorScreenText, formatParsedError } from "./errorScreenParser.js";
|
|
54
|
+
export { parseErrorScreenText, formatParsedError, } from "./errorScreenParser.js";
|
|
55
55
|
// LogBox detection & dismissal
|
|
56
|
-
export { detectLogBox, dismissLogBox, formatLogBoxWarning, formatDismissedEntries, pushLogBox, addLogBoxIgnorePatterns } from "./logbox.js";
|
|
56
|
+
export { detectLogBox, dismissLogBox, formatLogBoxWarning, formatDismissedEntries, pushLogBox, addLogBoxIgnorePatterns, } from "./logbox.js";
|
|
57
57
|
// Format utilities (TONL)
|
|
58
58
|
export { formatLogsAsTonl, formatNetworkAsTonl } from "./format.js";
|
|
59
59
|
//# sourceMappingURL=index.js.map
|
package/build/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,8BAA8B;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/build/core/ios.d.ts
CHANGED
|
@@ -4,6 +4,19 @@ export type iOSButtonType = (typeof IOS_BUTTON_TYPES)[number];
|
|
|
4
4
|
* Check if IDB is available
|
|
5
5
|
*/
|
|
6
6
|
export declare function isIdbAvailable(): Promise<boolean>;
|
|
7
|
+
/**
|
|
8
|
+
* Check if AXe CLI is available
|
|
9
|
+
*/
|
|
10
|
+
export declare function isAxeAvailable(): Promise<boolean>;
|
|
11
|
+
/**
|
|
12
|
+
* Check if the active iOS UI driver is available.
|
|
13
|
+
* Used by tap.ts for early fail-fast checks.
|
|
14
|
+
*/
|
|
15
|
+
export declare function isUiDriverAvailable(): Promise<boolean>;
|
|
16
|
+
/**
|
|
17
|
+
* Get install instructions for the active iOS UI driver.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getUiDriverInstallHint(): string;
|
|
7
20
|
export interface iOSSimulator {
|
|
8
21
|
udid: string;
|
|
9
22
|
name: string;
|
|
@@ -94,7 +107,7 @@ export declare function iosTap(x: number, y: number, options?: {
|
|
|
94
107
|
udid?: string;
|
|
95
108
|
}): Promise<iOSResult>;
|
|
96
109
|
/**
|
|
97
|
-
* Swipe gesture on an iOS simulator
|
|
110
|
+
* Swipe gesture on an iOS simulator
|
|
98
111
|
*/
|
|
99
112
|
export declare function iosSwipe(startX: number, startY: number, endX: number, endY: number, options?: {
|
|
100
113
|
duration?: number;
|
|
@@ -102,33 +115,33 @@ export declare function iosSwipe(startX: number, startY: number, endX: number, e
|
|
|
102
115
|
udid?: string;
|
|
103
116
|
}): Promise<iOSResult>;
|
|
104
117
|
/**
|
|
105
|
-
* Input text into the active field on an iOS simulator
|
|
118
|
+
* Input text into the active field on an iOS simulator
|
|
106
119
|
*/
|
|
107
120
|
export declare function iosInputText(text: string, udid?: string): Promise<iOSResult>;
|
|
108
121
|
/**
|
|
109
|
-
* Press a hardware button on an iOS simulator
|
|
122
|
+
* Press a hardware button on an iOS simulator
|
|
110
123
|
*/
|
|
111
124
|
export declare function iosButton(button: iOSButtonType, options?: {
|
|
112
125
|
duration?: number;
|
|
113
126
|
udid?: string;
|
|
114
127
|
}): Promise<iOSResult>;
|
|
115
128
|
/**
|
|
116
|
-
* Send a key event to an iOS simulator
|
|
129
|
+
* Send a key event to an iOS simulator
|
|
117
130
|
*/
|
|
118
131
|
export declare function iosKeyEvent(keycode: number, options?: {
|
|
119
132
|
duration?: number;
|
|
120
133
|
udid?: string;
|
|
121
134
|
}): Promise<iOSResult>;
|
|
122
135
|
/**
|
|
123
|
-
* Send a sequence of key events to an iOS simulator
|
|
136
|
+
* Send a sequence of key events to an iOS simulator
|
|
124
137
|
*/
|
|
125
138
|
export declare function iosKeySequence(keycodes: number[], udid?: string): Promise<iOSResult>;
|
|
126
139
|
/**
|
|
127
|
-
* Get accessibility info for the entire screen
|
|
140
|
+
* Get accessibility info for the entire screen
|
|
128
141
|
*/
|
|
129
142
|
export declare function iosDescribeAll(udid?: string): Promise<iOSDescribeResult>;
|
|
130
143
|
/**
|
|
131
|
-
* Get accessibility info at a specific point
|
|
144
|
+
* Get accessibility info at a specific point
|
|
132
145
|
*/
|
|
133
146
|
export declare function iosDescribePoint(x: number, y: number, udid?: string): Promise<iOSDescribeResult>;
|
|
134
147
|
/**
|
package/build/core/ios.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../src/core/ios.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../src/core/ios.ts"],"names":[],"mappings":"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"}
|