execbro 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/__tests__/helpers/fake-cdp-server.d.ts +0 -12
- package/build/__tests__/helpers/fake-cdp-server.d.ts.map +1 -1
- package/build/__tests__/helpers/fake-cdp-server.js +0 -22
- package/build/__tests__/helpers/fake-cdp-server.js.map +1 -1
- package/build/__tests__/helpers/tap-test-helpers.d.ts +0 -23
- package/build/__tests__/helpers/tap-test-helpers.d.ts.map +1 -1
- package/build/__tests__/helpers/tap-test-helpers.js +2 -29
- package/build/__tests__/helpers/tap-test-helpers.js.map +1 -1
- package/build/__tests__/integration/auto-reconnect.test.js +4 -14
- package/build/__tests__/integration/auto-reconnect.test.js.map +1 -1
- package/build/__tests__/integration/connection-health.test.js +1 -10
- package/build/__tests__/integration/connection-health.test.js.map +1 -1
- package/build/__tests__/integration/execute-in-app.test.js +1 -11
- package/build/__tests__/integration/execute-in-app.test.js.map +1 -1
- package/build/__tests__/integration/native-logs.test.js +0 -5
- package/build/__tests__/integration/native-logs.test.js.map +1 -1
- package/build/__tests__/integration/per-call-timeout.test.js +1 -5
- package/build/__tests__/integration/per-call-timeout.test.js.map +1 -1
- package/build/__tests__/integration/socket-close-midflight.test.js +2 -12
- package/build/__tests__/integration/socket-close-midflight.test.js.map +1 -1
- package/build/__tests__/integration/stale-target-probe.test.js +2 -17
- package/build/__tests__/integration/stale-target-probe.test.js.map +1 -1
- package/build/__tests__/integration/tap-strategies.test.js +2 -36
- package/build/__tests__/integration/tap-strategies.test.js.map +1 -1
- package/build/__tests__/integration/text-input.test.js +0 -39
- package/build/__tests__/integration/text-input.test.js.map +1 -1
- package/build/__tests__/integration/tools.test.js +1 -7
- package/build/__tests__/integration/tools.test.js.map +1 -1
- package/build/__tests__/setup.js +0 -2
- package/build/__tests__/setup.js.map +1 -1
- package/build/__tests__/unit/androidEmulatorAvds.test.js +0 -10
- package/build/__tests__/unit/androidEmulatorAvds.test.js.map +1 -1
- package/build/__tests__/unit/appContext.test.js +0 -2
- package/build/__tests__/unit/appContext.test.js.map +1 -1
- package/build/__tests__/unit/appRequest.test.js +0 -3
- package/build/__tests__/unit/appRequest.test.js.map +1 -1
- package/build/__tests__/unit/buildToken.test.js +0 -6
- package/build/__tests__/unit/buildToken.test.js.map +1 -1
- package/build/__tests__/unit/burst.test.js +0 -1
- package/build/__tests__/unit/burst.test.js.map +1 -1
- package/build/__tests__/unit/clearLogsNative.test.js +0 -8
- package/build/__tests__/unit/clearLogsNative.test.js.map +1 -1
- package/build/__tests__/unit/componentFormatNaming.test.js +0 -13
- package/build/__tests__/unit/componentFormatNaming.test.js.map +1 -1
- package/build/__tests__/unit/componentSource.test.js +0 -4
- package/build/__tests__/unit/componentSource.test.js.map +1 -1
- package/build/__tests__/unit/componentSourceResolve.test.js +0 -1
- package/build/__tests__/unit/componentSourceResolve.test.js.map +1 -1
- package/build/__tests__/unit/contextWiring.test.js +0 -3
- package/build/__tests__/unit/contextWiring.test.js.map +1 -1
- package/build/__tests__/unit/coordinateMiss.test.js +0 -16
- package/build/__tests__/unit/coordinateMiss.test.js.map +1 -1
- package/build/__tests__/unit/deviceDiscovery.test.js +0 -4
- package/build/__tests__/unit/deviceDiscovery.test.js.map +1 -1
- package/build/__tests__/unit/deviceResolution.test.js +0 -2
- package/build/__tests__/unit/deviceResolution.test.js.map +1 -1
- package/build/__tests__/unit/deviceResolver.test.js +0 -1
- package/build/__tests__/unit/deviceResolver.test.js.map +1 -1
- package/build/__tests__/unit/deviceResolverStaleRetry.test.js +0 -8
- package/build/__tests__/unit/deviceResolverStaleRetry.test.js.map +1 -1
- package/build/__tests__/unit/epochRender.test.js +0 -3
- package/build/__tests__/unit/epochRender.test.js.map +1 -1
- package/build/__tests__/unit/errorCategorization.test.js +0 -18
- package/build/__tests__/unit/errorCategorization.test.js.map +1 -1
- package/build/__tests__/unit/exec.test.js +0 -1
- package/build/__tests__/unit/exec.test.js.map +1 -1
- package/build/__tests__/unit/executor.test.js +0 -15
- package/build/__tests__/unit/executor.test.js.map +1 -1
- package/build/__tests__/unit/findElementTreeReuse.test.js +0 -12
- package/build/__tests__/unit/findElementTreeReuse.test.js.map +1 -1
- package/build/__tests__/unit/fingerprint.test.js +0 -4
- package/build/__tests__/unit/fingerprint.test.js.map +1 -1
- package/build/__tests__/unit/focusedInputTools.test.js +0 -4
- package/build/__tests__/unit/focusedInputTools.test.js.map +1 -1
- package/build/__tests__/unit/getLogsEmptyContract.test.js +0 -30
- package/build/__tests__/unit/getLogsEmptyContract.test.js.map +1 -1
- package/build/__tests__/unit/getLogsNativeSource.test.js +0 -22
- package/build/__tests__/unit/getLogsNativeSource.test.js.map +1 -1
- package/build/__tests__/unit/graphqlOperation.test.d.ts +2 -0
- package/build/__tests__/unit/graphqlOperation.test.d.ts.map +1 -0
- package/build/__tests__/unit/graphqlOperation.test.js +107 -0
- package/build/__tests__/unit/graphqlOperation.test.js.map +1 -0
- package/build/__tests__/unit/inputTarget.test.js +0 -16
- package/build/__tests__/unit/inputTarget.test.js.map +1 -1
- package/build/__tests__/unit/inputTextTool.test.js +0 -3
- package/build/__tests__/unit/inputTextTool.test.js.map +1 -1
- package/build/__tests__/unit/jsLogEvents.test.js +0 -3
- package/build/__tests__/unit/jsLogEvents.test.js.map +1 -1
- package/build/__tests__/unit/keyboardMetrics.test.js +0 -2
- package/build/__tests__/unit/keyboardMetrics.test.js.map +1 -1
- package/build/__tests__/unit/keyboardRaise.test.js +0 -2
- package/build/__tests__/unit/keyboardRaise.test.js.map +1 -1
- package/build/__tests__/unit/licenseGrace.test.js +1 -4
- package/build/__tests__/unit/licenseGrace.test.js.map +1 -1
- package/build/__tests__/unit/logEventFormat.test.js +0 -27
- package/build/__tests__/unit/logEventFormat.test.js.map +1 -1
- package/build/__tests__/unit/logEvents.test.js +1 -5
- package/build/__tests__/unit/logEvents.test.js.map +1 -1
- package/build/__tests__/unit/logGrouping.test.js +0 -2
- package/build/__tests__/unit/logGrouping.test.js.map +1 -1
- package/build/__tests__/unit/logOwnership.test.js +0 -11
- package/build/__tests__/unit/logOwnership.test.js.map +1 -1
- package/build/__tests__/unit/logRelevance.test.js +0 -6
- package/build/__tests__/unit/logRelevance.test.js.map +1 -1
- package/build/__tests__/unit/logSourceAndroid.test.js +0 -4
- package/build/__tests__/unit/logSourceAndroid.test.js.map +1 -1
- package/build/__tests__/unit/logSourceIos.test.js +0 -5
- package/build/__tests__/unit/logSourceIos.test.js.map +1 -1
- package/build/__tests__/unit/logs.test.js +0 -1
- package/build/__tests__/unit/logs.test.js.map +1 -1
- package/build/__tests__/unit/measureComponentTools.test.js +0 -1
- package/build/__tests__/unit/measureComponentTools.test.js.map +1 -1
- package/build/__tests__/unit/metro.test.js +0 -2
- package/build/__tests__/unit/metro.test.js.map +1 -1
- package/build/__tests__/unit/nativeInputValue.test.js +0 -4
- package/build/__tests__/unit/nativeInputValue.test.js.map +1 -1
- package/build/__tests__/unit/nativeLogs.test.js +1 -23
- package/build/__tests__/unit/nativeLogs.test.js.map +1 -1
- package/build/__tests__/unit/navigateVerify.test.js +0 -6
- package/build/__tests__/unit/navigateVerify.test.js.map +1 -1
- package/build/__tests__/unit/navigation.test.js +0 -5
- package/build/__tests__/unit/navigation.test.js.map +1 -1
- package/build/__tests__/unit/networkInterceptor.test.js +0 -2
- package/build/__tests__/unit/networkInterceptor.test.js.map +1 -1
- package/build/__tests__/unit/overlayGuard.test.d.ts +2 -0
- package/build/__tests__/unit/overlayGuard.test.d.ts.map +1 -0
- package/build/__tests__/unit/overlayGuard.test.js +123 -0
- package/build/__tests__/unit/overlayGuard.test.js.map +1 -0
- package/build/__tests__/unit/pendingExecutions.test.js +0 -6
- package/build/__tests__/unit/pendingExecutions.test.js.map +1 -1
- package/build/__tests__/unit/probe.test.js +0 -1
- package/build/__tests__/unit/probe.test.js.map +1 -1
- package/build/__tests__/unit/projectMemory.test.js +6 -7
- package/build/__tests__/unit/projectMemory.test.js.map +1 -1
- package/build/__tests__/unit/projectStore.test.js +2 -2
- package/build/__tests__/unit/projectStore.test.js.map +1 -1
- package/build/__tests__/unit/reloadAppAutoConnect.test.js +0 -9
- package/build/__tests__/unit/reloadAppAutoConnect.test.js.map +1 -1
- package/build/__tests__/unit/rnGlobalsBootstrap.test.js +3 -3
- package/build/__tests__/unit/rnGlobalsBootstrap.test.js.map +1 -1
- package/build/__tests__/unit/routeHistory.test.d.ts +2 -0
- package/build/__tests__/unit/routeHistory.test.d.ts.map +1 -0
- package/build/__tests__/unit/routeHistory.test.js +136 -0
- package/build/__tests__/unit/routeHistory.test.js.map +1 -0
- package/build/__tests__/unit/screenSpace.test.js +30 -13
- package/build/__tests__/unit/screenSpace.test.js.map +1 -1
- package/build/__tests__/unit/screenState.test.js +3 -6
- package/build/__tests__/unit/screenState.test.js.map +1 -1
- package/build/__tests__/unit/screenStateInputValue.test.js +0 -7
- package/build/__tests__/unit/screenStateInputValue.test.js.map +1 -1
- package/build/__tests__/unit/screenStateKeyboard.test.js +0 -1
- package/build/__tests__/unit/screenStateKeyboard.test.js.map +1 -1
- package/build/__tests__/unit/screenshot-diff.test.js +0 -6
- package/build/__tests__/unit/screenshot-diff.test.js.map +1 -1
- package/build/__tests__/unit/sdkMirrorPoller.test.js +0 -8
- package/build/__tests__/unit/sdkMirrorPoller.test.js.map +1 -1
- package/build/__tests__/unit/settleAndDiff.test.js +0 -11
- package/build/__tests__/unit/settleAndDiff.test.js.map +1 -1
- package/build/__tests__/unit/signedVerdict.test.js +0 -5
- package/build/__tests__/unit/signedVerdict.test.js.map +1 -1
- package/build/__tests__/unit/swipeDirection.test.js +6 -9
- package/build/__tests__/unit/swipeDirection.test.js.map +1 -1
- package/build/__tests__/unit/symbolicate.test.js +0 -1
- package/build/__tests__/unit/symbolicate.test.js.map +1 -1
- package/build/__tests__/unit/tap.test.js +2 -40
- package/build/__tests__/unit/tap.test.js.map +1 -1
- package/build/__tests__/unit/textEntry.test.js +0 -27
- package/build/__tests__/unit/textEntry.test.js.map +1 -1
- package/build/__tests__/unit/toolDescriptions.test.js +0 -40
- package/build/__tests__/unit/toolDescriptions.test.js.map +1 -1
- package/build/__tests__/unit/toolsJson.test.js +0 -10
- package/build/__tests__/unit/toolsJson.test.js.map +1 -1
- package/build/__tests__/unit/transportClassify.test.js +0 -20
- package/build/__tests__/unit/transportClassify.test.js.map +1 -1
- package/build/__tests__/unit/truncate.test.js +0 -5
- package/build/__tests__/unit/truncate.test.js.map +1 -1
- package/build/__tests__/unit/usageCache.test.js +0 -3
- package/build/__tests__/unit/usageCache.test.js.map +1 -1
- package/build/__tests__/unit/usageGate.test.js +1 -1
- package/build/__tests__/unit/usageGate.test.js.map +1 -1
- package/build/__tests__/unit/visibility.test.js +0 -8
- package/build/__tests__/unit/visibility.test.js.map +1 -1
- package/build/__tests__/unit/waitForMeasurements.test.js +2 -7
- package/build/__tests__/unit/waitForMeasurements.test.js.map +1 -1
- package/build/bin.js +0 -18
- package/build/bin.js.map +1 -1
- package/build/core/android.d.ts +0 -120
- package/build/core/android.d.ts.map +1 -1
- package/build/core/android.js +4 -259
- package/build/core/android.js.map +1 -1
- package/build/core/appContext.d.ts +0 -50
- package/build/core/appContext.d.ts.map +1 -1
- package/build/core/appContext.js +0 -50
- package/build/core/appContext.js.map +1 -1
- package/build/core/appDetection.d.ts +0 -16
- package/build/core/appDetection.d.ts.map +1 -1
- package/build/core/appDetection.js +0 -36
- package/build/core/appDetection.js.map +1 -1
- package/build/core/appRequest.d.ts +0 -12
- package/build/core/appRequest.d.ts.map +1 -1
- package/build/core/appRequest.js +0 -15
- package/build/core/appRequest.js.map +1 -1
- package/build/core/bufferConfig.d.ts +0 -2
- package/build/core/bufferConfig.d.ts.map +1 -1
- package/build/core/bufferConfig.js +0 -2
- package/build/core/bufferConfig.js.map +1 -1
- package/build/core/bundle.js +0 -40
- package/build/core/bundle.js.map +1 -1
- package/build/core/componentSearch.d.ts +0 -19
- package/build/core/componentSearch.d.ts.map +1 -1
- package/build/core/componentSearch.js +1 -22
- package/build/core/componentSearch.js.map +1 -1
- package/build/core/componentSource.d.ts +0 -21
- package/build/core/componentSource.d.ts.map +1 -1
- package/build/core/componentSource.js +0 -27
- package/build/core/componentSource.js.map +1 -1
- package/build/core/componentTree.js +0 -12
- package/build/core/componentTree.js.map +1 -1
- package/build/core/config.d.ts +0 -8
- package/build/core/config.d.ts.map +1 -1
- package/build/core/config.js +0 -10
- package/build/core/config.js.map +1 -1
- package/build/core/connection.d.ts +0 -76
- package/build/core/connection.d.ts.map +1 -1
- package/build/core/connection.js +15 -340
- package/build/core/connection.js.map +1 -1
- package/build/core/connectionState.d.ts +0 -78
- package/build/core/connectionState.d.ts.map +1 -1
- package/build/core/connectionState.js +4 -92
- package/build/core/connectionState.js.map +1 -1
- package/build/core/debugGlobals.js +0 -68
- package/build/core/debugGlobals.js.map +1 -1
- package/build/core/deviceDiscovery.d.ts +0 -5
- package/build/core/deviceDiscovery.d.ts.map +1 -1
- package/build/core/deviceDiscovery.js +0 -12
- package/build/core/deviceDiscovery.js.map +1 -1
- package/build/core/deviceResolver.d.ts +0 -10
- package/build/core/deviceResolver.d.ts.map +1 -1
- package/build/core/deviceResolver.js +0 -54
- package/build/core/deviceResolver.js.map +1 -1
- package/build/core/epochRender.d.ts +0 -12
- package/build/core/epochRender.d.ts.map +1 -1
- package/build/core/epochRender.js +0 -12
- package/build/core/epochRender.js.map +1 -1
- package/build/core/errorScreenParser.d.ts +0 -21
- package/build/core/errorScreenParser.d.ts.map +1 -1
- package/build/core/errorScreenParser.js +0 -50
- package/build/core/errorScreenParser.js.map +1 -1
- package/build/core/errors.d.ts +0 -15
- package/build/core/errors.d.ts.map +1 -1
- package/build/core/errors.js +0 -15
- package/build/core/errors.js.map +1 -1
- package/build/core/escapeNonAscii.d.ts +0 -9
- package/build/core/escapeNonAscii.d.ts.map +1 -1
- package/build/core/escapeNonAscii.js +1 -43
- package/build/core/escapeNonAscii.js.map +1 -1
- package/build/core/exec.d.ts +0 -12
- package/build/core/exec.d.ts.map +1 -1
- package/build/core/exec.js +2 -14
- package/build/core/exec.js.map +1 -1
- package/build/core/executor.js +0 -3
- package/build/core/executor.js.map +1 -1
- package/build/core/fastRefreshRecorder.js +0 -4
- package/build/core/fastRefreshRecorder.js.map +1 -1
- package/build/core/fastRefreshTools.js +0 -3
- package/build/core/fastRefreshTools.js.map +1 -1
- package/build/core/feedback.js +0 -4
- package/build/core/feedback.js.map +1 -1
- package/build/core/graphqlOperation.d.ts +13 -0
- package/build/core/graphqlOperation.d.ts.map +1 -0
- package/build/core/graphqlOperation.js +80 -0
- package/build/core/graphqlOperation.js.map +1 -0
- package/build/core/guides.d.ts +0 -10
- package/build/core/guides.d.ts.map +1 -1
- package/build/core/guides.js +0 -10
- package/build/core/guides.js.map +1 -1
- package/build/core/iconSemantics.d.ts +0 -15
- package/build/core/iconSemantics.d.ts.map +1 -1
- package/build/core/iconSemantics.js +0 -31
- package/build/core/iconSemantics.js.map +1 -1
- package/build/core/index.js +4 -47
- package/build/core/index.js.map +1 -1
- package/build/core/injected/visibility.d.ts +0 -30
- package/build/core/injected/visibility.d.ts.map +1 -1
- package/build/core/injected/visibility.js +0 -33
- package/build/core/injected/visibility.js.map +1 -1
- package/build/core/injectedFilters.d.ts +0 -28
- package/build/core/injectedFilters.d.ts.map +1 -1
- package/build/core/injectedFilters.js +0 -28
- package/build/core/injectedFilters.js.map +1 -1
- package/build/core/inputTarget.d.ts +1 -34
- package/build/core/inputTarget.d.ts.map +1 -1
- package/build/core/inputTarget.js +0 -26
- package/build/core/inputTarget.js.map +1 -1
- package/build/core/inputTargetTools.d.ts +0 -7
- package/build/core/inputTargetTools.d.ts.map +1 -1
- package/build/core/inputTargetTools.js +0 -7
- package/build/core/inputTargetTools.js.map +1 -1
- package/build/core/inspector.d.ts +0 -33
- package/build/core/inspector.d.ts.map +1 -1
- package/build/core/inspector.js +27 -40
- package/build/core/inspector.js.map +1 -1
- package/build/core/ios.d.ts +11 -122
- package/build/core/ios.d.ts.map +1 -1
- package/build/core/ios.js +32 -299
- package/build/core/ios.js.map +1 -1
- package/build/core/jsExecute.d.ts +0 -100
- package/build/core/jsExecute.d.ts.map +1 -1
- package/build/core/jsExecute.js +0 -261
- package/build/core/jsExecute.js.map +1 -1
- package/build/core/jsLogEvents.d.ts +0 -8
- package/build/core/jsLogEvents.d.ts.map +1 -1
- package/build/core/jsLogEvents.js +0 -8
- package/build/core/jsLogEvents.js.map +1 -1
- package/build/core/keyboardMetrics.js +0 -8
- package/build/core/keyboardMetrics.js.map +1 -1
- package/build/core/keyboardRaise.d.ts +0 -8
- package/build/core/keyboardRaise.d.ts.map +1 -1
- package/build/core/keyboardRaise.js +0 -23
- package/build/core/keyboardRaise.js.map +1 -1
- package/build/core/license.d.ts +0 -4
- package/build/core/license.d.ts.map +1 -1
- package/build/core/license.js +2 -55
- package/build/core/license.js.map +1 -1
- package/build/core/logDiagnosis.d.ts +0 -34
- package/build/core/logDiagnosis.d.ts.map +1 -1
- package/build/core/logDiagnosis.js +0 -15
- package/build/core/logDiagnosis.js.map +1 -1
- package/build/core/logEventFormat.d.ts +0 -1
- package/build/core/logEventFormat.d.ts.map +1 -1
- package/build/core/logEventFormat.js +0 -30
- package/build/core/logEventFormat.js.map +1 -1
- package/build/core/logEvents.d.ts +0 -54
- package/build/core/logEvents.d.ts.map +1 -1
- package/build/core/logEvents.js +0 -37
- package/build/core/logEvents.js.map +1 -1
- package/build/core/logGrouping.d.ts +0 -9
- package/build/core/logGrouping.d.ts.map +1 -1
- package/build/core/logGrouping.js +0 -17
- package/build/core/logGrouping.js.map +1 -1
- package/build/core/logOwnership.d.ts +0 -17
- package/build/core/logOwnership.d.ts.map +1 -1
- package/build/core/logOwnership.js +0 -34
- package/build/core/logOwnership.js.map +1 -1
- package/build/core/logRelevance.d.ts +0 -8
- package/build/core/logRelevance.d.ts.map +1 -1
- package/build/core/logRelevance.js +0 -15
- package/build/core/logRelevance.js.map +1 -1
- package/build/core/logSourceAndroid.d.ts +0 -8
- package/build/core/logSourceAndroid.d.ts.map +1 -1
- package/build/core/logSourceAndroid.js +0 -11
- package/build/core/logSourceAndroid.js.map +1 -1
- package/build/core/logSourceIos.d.ts +0 -8
- package/build/core/logSourceIos.d.ts.map +1 -1
- package/build/core/logSourceIos.js +1 -24
- package/build/core/logSourceIos.js.map +1 -1
- package/build/core/logbox.d.ts +0 -30
- package/build/core/logbox.d.ts.map +1 -1
- package/build/core/logbox.js +0 -43
- package/build/core/logbox.js.map +1 -1
- package/build/core/logs.d.ts +0 -6
- package/build/core/logs.d.ts.map +1 -1
- package/build/core/logs.js +0 -19
- package/build/core/logs.js.map +1 -1
- package/build/core/metro.d.ts +0 -14
- package/build/core/metro.d.ts.map +1 -1
- package/build/core/metro.js +1 -32
- package/build/core/metro.js.map +1 -1
- package/build/core/moduleRegistry.d.ts +0 -17
- package/build/core/moduleRegistry.d.ts.map +1 -1
- package/build/core/moduleRegistry.js +0 -17
- package/build/core/moduleRegistry.js.map +1 -1
- package/build/core/nativeInputValue.d.ts +0 -29
- package/build/core/nativeInputValue.d.ts.map +1 -1
- package/build/core/nativeInputValue.js +0 -18
- package/build/core/nativeInputValue.js.map +1 -1
- package/build/core/nativeLogs.d.ts +0 -47
- package/build/core/nativeLogs.d.ts.map +1 -1
- package/build/core/nativeLogs.js +0 -82
- package/build/core/nativeLogs.js.map +1 -1
- package/build/core/nativeOnlyHints.js +0 -4
- package/build/core/nativeOnlyHints.js.map +1 -1
- package/build/core/navigate.d.ts +0 -15
- package/build/core/navigate.d.ts.map +1 -1
- package/build/core/navigate.js +0 -22
- package/build/core/navigate.js.map +1 -1
- package/build/core/navigation.d.ts +0 -60
- package/build/core/navigation.d.ts.map +1 -1
- package/build/core/navigation.js +0 -60
- package/build/core/navigation.js.map +1 -1
- package/build/core/network.d.ts +0 -5
- package/build/core/network.d.ts.map +1 -1
- package/build/core/network.js +10 -31
- package/build/core/network.js.map +1 -1
- package/build/core/networkInterceptor.d.ts +0 -19
- package/build/core/networkInterceptor.d.ts.map +1 -1
- package/build/core/networkInterceptor.js +3 -27
- package/build/core/networkInterceptor.js.map +1 -1
- package/build/core/ocr.d.ts +0 -31
- package/build/core/ocr.d.ts.map +1 -1
- package/build/core/ocr.js +1 -71
- package/build/core/ocr.js.map +1 -1
- package/build/core/paths.js +0 -1
- package/build/core/paths.js.map +1 -1
- package/build/core/posthog.js +0 -7
- package/build/core/posthog.js.map +1 -1
- package/build/core/pressables.d.ts +0 -25
- package/build/core/pressables.d.ts.map +1 -1
- package/build/core/pressables.js +0 -37
- package/build/core/pressables.js.map +1 -1
- package/build/core/probe.d.ts +0 -9
- package/build/core/probe.d.ts.map +1 -1
- package/build/core/probe.js +0 -9
- package/build/core/probe.js.map +1 -1
- package/build/core/projectMemory.d.ts +0 -2
- package/build/core/projectMemory.d.ts.map +1 -1
- package/build/core/projectMemory.js +2 -7
- package/build/core/projectMemory.js.map +1 -1
- package/build/core/projectStore.d.ts +0 -18
- package/build/core/projectStore.d.ts.map +1 -1
- package/build/core/projectStore.js +0 -19
- package/build/core/projectStore.js.map +1 -1
- package/build/core/promiseHandles.d.ts +0 -13
- package/build/core/promiseHandles.d.ts.map +1 -1
- package/build/core/promiseHandles.js +0 -25
- package/build/core/promiseHandles.js.map +1 -1
- package/build/core/register.js +0 -44
- package/build/core/register.js.map +1 -1
- package/build/core/rnGlobalsBootstrap.d.ts +0 -13
- package/build/core/rnGlobalsBootstrap.d.ts.map +1 -1
- package/build/core/rnGlobalsBootstrap.js +0 -22
- package/build/core/rnGlobalsBootstrap.js.map +1 -1
- package/build/core/routeHistory.d.ts +24 -0
- package/build/core/routeHistory.d.ts.map +1 -0
- package/build/core/routeHistory.js +186 -0
- package/build/core/routeHistory.js.map +1 -0
- package/build/core/screenLayout.d.ts +0 -11
- package/build/core/screenLayout.d.ts.map +1 -1
- package/build/core/screenLayout.js +24 -61
- package/build/core/screenLayout.js.map +1 -1
- package/build/core/screenSpace.d.ts +32 -44
- package/build/core/screenSpace.d.ts.map +1 -1
- package/build/core/screenSpace.js +80 -46
- package/build/core/screenSpace.js.map +1 -1
- package/build/core/screenSpaceDevice.d.ts +0 -8
- package/build/core/screenSpaceDevice.d.ts.map +1 -1
- package/build/core/screenSpaceDevice.js +31 -14
- package/build/core/screenSpaceDevice.js.map +1 -1
- package/build/core/screenState.d.ts +2 -74
- package/build/core/screenState.d.ts.map +1 -1
- package/build/core/screenState.js +204 -145
- package/build/core/screenState.js.map +1 -1
- package/build/core/sdkBridge.js +0 -8
- package/build/core/sdkBridge.js.map +1 -1
- package/build/core/sdkMirrorPoller.d.ts +0 -18
- package/build/core/sdkMirrorPoller.d.ts.map +1 -1
- package/build/core/sdkMirrorPoller.js +0 -47
- package/build/core/sdkMirrorPoller.js.map +1 -1
- package/build/core/selectionBuffer.d.ts +0 -6
- package/build/core/selectionBuffer.d.ts.map +1 -1
- package/build/core/selectionBuffer.js +0 -5
- package/build/core/selectionBuffer.js.map +1 -1
- package/build/core/signedVerdict.js +0 -6
- package/build/core/signedVerdict.js.map +1 -1
- package/build/core/state.d.ts +0 -31
- package/build/core/state.d.ts.map +1 -1
- package/build/core/state.js +0 -57
- package/build/core/state.js.map +1 -1
- package/build/core/symbolicate.js +0 -11
- package/build/core/symbolicate.js.map +1 -1
- package/build/core/telemetry.d.ts +0 -47
- package/build/core/telemetry.d.ts.map +1 -1
- package/build/core/telemetry.js +1 -173
- package/build/core/telemetry.js.map +1 -1
- package/build/core/textEntry.d.ts +0 -34
- package/build/core/textEntry.d.ts.map +1 -1
- package/build/core/textEntry.js +0 -73
- package/build/core/textEntry.js.map +1 -1
- package/build/core/toolHelpers.d.ts +0 -12
- package/build/core/toolHelpers.d.ts.map +1 -1
- package/build/core/toolHelpers.js +2 -47
- package/build/core/toolHelpers.js.map +1 -1
- package/build/core/truncate.d.ts +0 -17
- package/build/core/truncate.d.ts.map +1 -1
- package/build/core/truncate.js +0 -32
- package/build/core/truncate.js.map +1 -1
- package/build/core/types.d.ts +0 -6
- package/build/core/types.d.ts.map +1 -1
- package/build/core/usageCache.js +0 -12
- package/build/core/usageCache.js.map +1 -1
- package/build/index.js +0 -18
- package/build/index.js.map +1 -1
- package/build/pro/coordinateMiss.d.ts +0 -30
- package/build/pro/coordinateMiss.d.ts.map +1 -1
- package/build/pro/coordinateMiss.js +0 -17
- package/build/pro/coordinateMiss.js.map +1 -1
- package/build/pro/overlayGuard.d.ts +27 -0
- package/build/pro/overlayGuard.d.ts.map +1 -0
- package/build/pro/overlayGuard.js +103 -0
- package/build/pro/overlayGuard.js.map +1 -0
- package/build/pro/screenshot-diff.js +4 -6
- package/build/pro/screenshot-diff.js.map +1 -1
- package/build/pro/tap.d.ts +0 -55
- package/build/pro/tap.d.ts.map +1 -1
- package/build/pro/tap.js +72 -316
- package/build/pro/tap.js.map +1 -1
- package/build/pro/usageGate.js +0 -9
- package/build/pro/usageGate.js.map +1 -1
- package/build/pro/usageNotifications.js +1 -13
- package/build/pro/usageNotifications.js.map +1 -1
- package/build/pro/verifyAction.d.ts +0 -13
- package/build/pro/verifyAction.d.ts.map +1 -1
- package/build/pro/verifyAction.js +0 -45
- package/build/pro/verifyAction.js.map +1 -1
- package/build/tools/_deviceArg.d.ts +0 -35
- package/build/tools/_deviceArg.d.ts.map +1 -1
- package/build/tools/_deviceArg.js +0 -35
- package/build/tools/_deviceArg.js.map +1 -1
- package/build/tools/accountTools.js +2 -2
- package/build/tools/accountTools.js.map +1 -1
- package/build/tools/bundleTools.js +0 -16
- package/build/tools/bundleTools.js.map +1 -1
- package/build/tools/componentTools.d.ts.map +1 -1
- package/build/tools/componentTools.js +47 -53
- package/build/tools/componentTools.js.map +1 -1
- package/build/tools/connectionTools.js +1 -59
- package/build/tools/connectionTools.js.map +1 -1
- package/build/tools/deviceTools.js +0 -11
- package/build/tools/deviceTools.js.map +1 -1
- package/build/tools/executionTools.js +1 -18
- package/build/tools/executionTools.js.map +1 -1
- package/build/tools/interactionTools.d.ts +0 -10
- package/build/tools/interactionTools.d.ts.map +1 -1
- package/build/tools/interactionTools.js +0 -57
- package/build/tools/interactionTools.js.map +1 -1
- package/build/tools/logTools.d.ts +0 -13
- package/build/tools/logTools.d.ts.map +1 -1
- package/build/tools/logTools.js +2 -126
- package/build/tools/logTools.js.map +1 -1
- package/build/tools/metaTools.js +0 -10
- package/build/tools/metaTools.js.map +1 -1
- package/build/tools/networkTools.js +4 -43
- package/build/tools/networkTools.js.map +1 -1
- package/build/tools/requestTools.js +0 -5
- package/build/tools/requestTools.js.map +1 -1
- package/build/tools/screenshotTools.js +5 -111
- package/build/tools/screenshotTools.js.map +1 -1
- package/package.json +2 -2
- package/tools.json +1 -0
|
@@ -6,8 +6,6 @@ const DEVICES_SCHEMA = "execbro/project-devices";
|
|
|
6
6
|
const META_SCHEMA = "execbro/project-meta";
|
|
7
7
|
const CURRENT_VERSION = 1;
|
|
8
8
|
const MAX_DEVICES = 20;
|
|
9
|
-
/** Union by identifier: newer lastUsedAt wins wholesale; earliest firstSeenAt and
|
|
10
|
-
* max useCount retained. Sorted desc by lastUsedAt, capped at MAX_DEVICES. */
|
|
11
9
|
export function mergeDeviceLists(a, b) {
|
|
12
10
|
const byId = new Map();
|
|
13
11
|
for (const e of [...a, ...b]) {
|
|
@@ -25,7 +23,6 @@ export function mergeDeviceLists(a, b) {
|
|
|
25
23
|
}
|
|
26
24
|
return [...byId.values()].sort((x, y) => y.lastUsedAt - x.lastUsedAt).slice(0, MAX_DEVICES);
|
|
27
25
|
}
|
|
28
|
-
/** Resolve project dir + device list, or null when disabled / degenerate cwd / foreign file. */
|
|
29
26
|
function loadDevices(opts) {
|
|
30
27
|
if (!isProjectMemoryEnabled())
|
|
31
28
|
return null;
|
|
@@ -48,7 +45,7 @@ function persist(dir, existing, devices, now) {
|
|
|
48
45
|
function ensureMeta(dir, realCwd, now) {
|
|
49
46
|
const read = readConcern(join(dir, "meta.json"), META_SCHEMA, CURRENT_VERSION);
|
|
50
47
|
if (read.kind === "ours")
|
|
51
|
-
return;
|
|
48
|
+
return;
|
|
52
49
|
if (read.kind === "foreign")
|
|
53
50
|
return;
|
|
54
51
|
const env = buildWriteEnvelope(null, META_SCHEMA, CURRENT_VERSION, now, { path: realCwd });
|
|
@@ -75,7 +72,6 @@ export function recordDevice(input, opts) {
|
|
|
75
72
|
ensureMeta(ctx.dir, ctx.realCwd, now);
|
|
76
73
|
}
|
|
77
74
|
catch {
|
|
78
|
-
// best-effort — never throw into a tool flow
|
|
79
75
|
}
|
|
80
76
|
}
|
|
81
77
|
export function recordScreenMetrics(identifier, metrics, opts) {
|
|
@@ -85,13 +81,12 @@ export function recordScreenMetrics(identifier, metrics, opts) {
|
|
|
85
81
|
return;
|
|
86
82
|
const prior = ctx.devices.find((d) => d.identifier === identifier);
|
|
87
83
|
if (!prior)
|
|
88
|
-
return;
|
|
84
|
+
return;
|
|
89
85
|
const now = opts?.now ?? Date.now();
|
|
90
86
|
const updated = { ...prior, screenMetrics: metrics, lastUsedAt: now };
|
|
91
87
|
persist(ctx.dir, ctx.existing, mergeDeviceLists(ctx.devices, [updated]), now);
|
|
92
88
|
}
|
|
93
89
|
catch {
|
|
94
|
-
// best-effort
|
|
95
90
|
}
|
|
96
91
|
}
|
|
97
92
|
export function listDevices(opts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectMemory.js","sourceRoot":"","sources":["../../src/core/projectMemory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,aAAa,GAChB,MAAM,mBAAmB,CAAC;AAsC3B,MAAM,cAAc,GAAG,yBAAyB,CAAC;AACjD,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAC3C,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,WAAW,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"projectMemory.js","sourceRoot":"","sources":["../../src/core/projectMemory.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,29 +13,11 @@ export type ConcernRead = {
|
|
|
13
13
|
} | {
|
|
14
14
|
kind: "foreign";
|
|
15
15
|
};
|
|
16
|
-
/**
|
|
17
|
-
* Stable 16-hex project id = sha256(realpath(cwd)).slice(0,16). Returns null for
|
|
18
|
-
* a degenerate launch dir (the home dir or filesystem root), where a project
|
|
19
|
-
* bucket would be meaningless — callers then behave exactly as before.
|
|
20
|
-
*/
|
|
21
16
|
export declare function computeProjectId(cwd: string, homeDir: string): string | null;
|
|
22
17
|
export declare function projectsRoot(baseDir?: string): string;
|
|
23
|
-
/**
|
|
24
|
-
* Downgrade-safe read. Only case 1 discards data:
|
|
25
|
-
* 1. missing / unparseable / no envelope shape → empty (safe to (re)create)
|
|
26
|
-
* 2. known schema → ours (migrated up if older; preserved as-is if newer)
|
|
27
|
-
* 3. schema present but not ours → foreign (leave the file untouched)
|
|
28
|
-
*/
|
|
29
18
|
export declare function readConcern(filePath: string, expectedSchema: string, currentVersion: number, migrate?: (e: StoredEnvelope) => StoredEnvelope): ConcernRead;
|
|
30
|
-
/**
|
|
31
|
-
* Preserve-unknown, never-downgrade write envelope. Starts from the existing raw
|
|
32
|
-
* object so unknown top-level keys survive, overlays the caller's payload, stamps
|
|
33
|
-
* producer/updatedAt, and keeps the greater of (existing version, currentVersion).
|
|
34
|
-
*/
|
|
35
19
|
export declare function buildWriteEnvelope(existing: StoredEnvelope | null, schema: string, currentVersion: number, now: number, payload: Record<string, unknown>): StoredEnvelope;
|
|
36
20
|
export declare function writeConcernAtomic(filePath: string, env: StoredEnvelope): void;
|
|
37
|
-
/** execbro version that wrote a file — debug + migration signal. */
|
|
38
21
|
export declare function getProducerVersion(): string;
|
|
39
|
-
/** realpath(cwd) for display in meta.json, falling back to the raw value. */
|
|
40
22
|
export declare function realpathOrRaw(cwd: string): string;
|
|
41
23
|
//# sourceMappingURL=projectStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectStore.d.ts","sourceRoot":"","sources":["../../src/core/projectStore.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GACjB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"projectStore.d.ts","sourceRoot":"","sources":["../../src/core/projectStore.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,WAAW,GACjB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAO1B,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAQD,wBAAgB,WAAW,CACvB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,cAAc,GAChD,WAAW,CAgBb;AAOD,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,cAAc,CAWhB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAM9E;AAGD,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMjD"}
|
|
@@ -3,18 +3,12 @@ import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, writeFil
|
|
|
3
3
|
import { dirname, join } from "path";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
5
|
import { CONFIG_DIR } from "./paths.js";
|
|
6
|
-
/**
|
|
7
|
-
* Stable 16-hex project id = sha256(realpath(cwd)).slice(0,16). Returns null for
|
|
8
|
-
* a degenerate launch dir (the home dir or filesystem root), where a project
|
|
9
|
-
* bucket would be meaningless — callers then behave exactly as before.
|
|
10
|
-
*/
|
|
11
6
|
export function computeProjectId(cwd, homeDir) {
|
|
12
7
|
let real = cwd;
|
|
13
8
|
try {
|
|
14
9
|
real = realpathSync(cwd);
|
|
15
10
|
}
|
|
16
11
|
catch {
|
|
17
|
-
// cwd should always exist; fall back to the raw value.
|
|
18
12
|
}
|
|
19
13
|
if (real === homeDir || real === "/")
|
|
20
14
|
return null;
|
|
@@ -23,12 +17,6 @@ export function computeProjectId(cwd, homeDir) {
|
|
|
23
17
|
export function projectsRoot(baseDir) {
|
|
24
18
|
return baseDir ?? join(CONFIG_DIR, "projects");
|
|
25
19
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Downgrade-safe read. Only case 1 discards data:
|
|
28
|
-
* 1. missing / unparseable / no envelope shape → empty (safe to (re)create)
|
|
29
|
-
* 2. known schema → ours (migrated up if older; preserved as-is if newer)
|
|
30
|
-
* 3. schema present but not ours → foreign (leave the file untouched)
|
|
31
|
-
*/
|
|
32
20
|
export function readConcern(filePath, expectedSchema, currentVersion, migrate) {
|
|
33
21
|
try {
|
|
34
22
|
if (!existsSync(filePath))
|
|
@@ -49,11 +37,6 @@ export function readConcern(filePath, expectedSchema, currentVersion, migrate) {
|
|
|
49
37
|
return { kind: "empty" };
|
|
50
38
|
}
|
|
51
39
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Preserve-unknown, never-downgrade write envelope. Starts from the existing raw
|
|
54
|
-
* object so unknown top-level keys survive, overlays the caller's payload, stamps
|
|
55
|
-
* producer/updatedAt, and keeps the greater of (existing version, currentVersion).
|
|
56
|
-
*/
|
|
57
40
|
export function buildWriteEnvelope(existing, schema, currentVersion, now, payload) {
|
|
58
41
|
const base = existing ? { ...existing } : {};
|
|
59
42
|
const version = Math.max(existing?.version ?? 0, currentVersion);
|
|
@@ -74,7 +57,6 @@ export function writeConcernAtomic(filePath, env) {
|
|
|
74
57
|
writeFileSync(tmp, JSON.stringify(env, null, 2));
|
|
75
58
|
renameSync(tmp, filePath);
|
|
76
59
|
}
|
|
77
|
-
/** execbro version that wrote a file — debug + migration signal. */
|
|
78
60
|
export function getProducerVersion() {
|
|
79
61
|
try {
|
|
80
62
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
@@ -85,7 +67,6 @@ export function getProducerVersion() {
|
|
|
85
67
|
return "unknown";
|
|
86
68
|
}
|
|
87
69
|
}
|
|
88
|
-
/** realpath(cwd) for display in meta.json, falling back to the raw value. */
|
|
89
70
|
export function realpathOrRaw(cwd) {
|
|
90
71
|
try {
|
|
91
72
|
return realpathSync(cwd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectStore.js","sourceRoot":"","sources":["../../src/core/projectStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EACH,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,GAChB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"projectStore.js","sourceRoot":"","sources":["../../src/core/projectStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
export declare function registerHandle(deviceKey: string, slotId: string): void;
|
|
2
2
|
export declare function listHandles(deviceKey: string): string[];
|
|
3
3
|
export declare function dropHandle(slotId: string): void;
|
|
4
|
-
/**
|
|
5
|
-
* A new JS runtime wipes every slot, so retaining handles across a reload would
|
|
6
|
-
* hand out ids that can never resolve. Called from the same places that reset
|
|
7
|
-
* per-run state.
|
|
8
|
-
*/
|
|
9
4
|
export declare function clearHandlesForDevice(deviceKey: string): void;
|
|
10
|
-
/**
|
|
11
|
-
* ES5 source that reads a slot, clearing it only once settled.
|
|
12
|
-
*
|
|
13
|
-
* Pending must not delete: the caller is expected to retry, and deleting here
|
|
14
|
-
* would recreate the bug this module exists to fix. A missing slot is reported
|
|
15
|
-
* distinctly from a pending one so the caller can tell "retry" from "the app
|
|
16
|
-
* reloaded and it is gone".
|
|
17
|
-
*/
|
|
18
5
|
export declare function buildCollectExpression(slotId: string): string;
|
|
19
6
|
//# sourceMappingURL=promiseHandles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseHandles.d.ts","sourceRoot":"","sources":["../../src/core/promiseHandles.ts"],"names":[],"mappings":"AAeA,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQtE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAM/C;
|
|
1
|
+
{"version":3,"file":"promiseHandles.d.ts","sourceRoot":"","sources":["../../src/core/promiseHandles.ts"],"names":[],"mappings":"AAeA,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQtE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAM/C;AAOD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAK7D;AAUD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D"}
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Registry of in-app promise slots whose poll budget expired.
|
|
3
|
-
*
|
|
4
|
-
* executeWithManualAwait attaches a .then() that pushes the resolved value into
|
|
5
|
-
* a temp global, then polls that slot at 100/300/600/1000/2000/3000 ms — a ~7 s
|
|
6
|
-
* budget. On expiry it used to delete the slot and report a timeout, throwing
|
|
7
|
-
* away a value that had very likely settled a moment later. That is 143 of the
|
|
8
|
-
* 331 production timeout failures (43%), and 7% of every execute_in_app
|
|
9
|
-
* failure: uploads, slow queries and rate-limited requests, all unrecoverable.
|
|
10
|
-
*
|
|
11
|
-
* Retaining the slot turns "lost" into "collectable".
|
|
12
|
-
*/
|
|
13
1
|
const handlesByDevice = new Map();
|
|
14
2
|
const deviceBySlot = new Map();
|
|
15
3
|
export function registerHandle(deviceKey, slotId) {
|
|
@@ -31,11 +19,6 @@ export function dropHandle(slotId) {
|
|
|
31
19
|
deviceBySlot.delete(slotId);
|
|
32
20
|
}
|
|
33
21
|
}
|
|
34
|
-
/**
|
|
35
|
-
* A new JS runtime wipes every slot, so retaining handles across a reload would
|
|
36
|
-
* hand out ids that can never resolve. Called from the same places that reset
|
|
37
|
-
* per-run state.
|
|
38
|
-
*/
|
|
39
22
|
export function clearHandlesForDevice(deviceKey) {
|
|
40
23
|
const set = handlesByDevice.get(deviceKey);
|
|
41
24
|
if (!set)
|
|
@@ -44,14 +27,6 @@ export function clearHandlesForDevice(deviceKey) {
|
|
|
44
27
|
deviceBySlot.delete(slotId);
|
|
45
28
|
handlesByDevice.delete(deviceKey);
|
|
46
29
|
}
|
|
47
|
-
/**
|
|
48
|
-
* ES5 source that reads a slot, clearing it only once settled.
|
|
49
|
-
*
|
|
50
|
-
* Pending must not delete: the caller is expected to retry, and deleting here
|
|
51
|
-
* would recreate the bug this module exists to fix. A missing slot is reported
|
|
52
|
-
* distinctly from a pending one so the caller can tell "retry" from "the app
|
|
53
|
-
* reloaded and it is gone".
|
|
54
|
-
*/
|
|
55
30
|
export function buildCollectExpression(slotId) {
|
|
56
31
|
return `(function(){var s=globalThis['${slotId}'];if(!s)return '__missing__';if(s.s==='pending')return '__pending__';delete globalThis['${slotId}'];return {status:s.s,value:s.v}})()`;
|
|
57
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseHandles.js","sourceRoot":"","sources":["../../src/core/promiseHandles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promiseHandles.js","sourceRoot":"","sources":["../../src/core/promiseHandles.ts"],"names":[],"mappings":"AAYA,MAAM,eAAe,GAA6B,IAAI,GAAG,EAAE,CAAC;AAC5D,MAAM,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;AAEpD,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAc;IAC5D,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QAChB,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChB,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACrC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACZ,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AAOD,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACnD,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,KAAK,MAAM,MAAM,IAAI,GAAG;QAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAUD,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACjD,OAAO,iCAAiC,MAAM,4FAA4F,MAAM,sCAAsC,CAAC;AAC3L,CAAC"}
|
package/build/core/register.js
CHANGED
|
@@ -7,7 +7,6 @@ import { connectedApps, shouldShowFeedbackHint, markFeedbackHintShown, pushLogBo
|
|
|
7
7
|
import { ensureLicense, getUsageInfo } from "./license.js";
|
|
8
8
|
import { freezeSessionVerdict, isToolBlocked, usageWarningLine } from "../pro/usageGate.js";
|
|
9
9
|
import { maybeNotifyUsage, maybeNotifyDeferral } from "../pro/usageNotifications.js";
|
|
10
|
-
// Tools that do NOT require an active Metro connection — excluded from feedback hint trigger
|
|
11
10
|
const NON_METRO_TOOLS = new Set([
|
|
12
11
|
"scan_metro",
|
|
13
12
|
"connect_metro",
|
|
@@ -25,15 +24,7 @@ const NON_METRO_TOOLS = new Set([
|
|
|
25
24
|
"android_launch_app",
|
|
26
25
|
"send_feedback"
|
|
27
26
|
]);
|
|
28
|
-
// Registry for dev meta-tool — stores handlers and configs for dynamic dispatch.
|
|
29
|
-
// Also exported so unit tests can enumerate every registered tool without booting
|
|
30
|
-
// the server. Populated by registerToolWithTelemetry AND by the server.registerTool
|
|
31
|
-
// interceptor installed below, so it captures every registration site.
|
|
32
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
33
27
|
export const toolRegistry = new Map();
|
|
34
|
-
// Interceptor: capture every direct server.registerTool call into toolRegistry so
|
|
35
|
-
// tests and the dev meta-tool see the full surface (including platform-native tools
|
|
36
|
-
// and the dev meta-tool itself that bypass registerToolWithTelemetry).
|
|
37
28
|
export function installToolRegistryInterceptor(server) {
|
|
38
29
|
const _originalRegisterTool = server.registerTool.bind(server);
|
|
39
30
|
server.registerTool = (name, config, handler) => {
|
|
@@ -44,9 +35,6 @@ export function installToolRegistryInterceptor(server) {
|
|
|
44
35
|
export function registerToolWithTelemetry(server, toolName, config, handler, emptyResultDetector) {
|
|
45
36
|
toolRegistry.set(toolName, { config, handler });
|
|
46
37
|
server.registerTool(toolName, config, async (args) => {
|
|
47
|
-
// Resolve + freeze the session verdict once (session-start semantics),
|
|
48
|
-
// then gate. Cap logic lives in src/pro/ (commercial); this MIT wrapper
|
|
49
|
-
// only calls into it.
|
|
50
38
|
await ensureLicense();
|
|
51
39
|
freezeSessionVerdict(getUsageInfo());
|
|
52
40
|
const usageNow = getUsageInfo();
|
|
@@ -60,10 +48,6 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
60
48
|
let success = true;
|
|
61
49
|
let errorMessage;
|
|
62
50
|
let errorContext;
|
|
63
|
-
// Which of the two failure paths ran. Both set success=false and share the
|
|
64
|
-
// trackToolInvocation call below, so without this the dashboard cannot tell
|
|
65
|
-
// a handled { isError: true } return from a real thrown exception — and only
|
|
66
|
-
// the latter produces a stack trace or reaches captureException.
|
|
67
51
|
let errorOrigin;
|
|
68
52
|
let inputTokens;
|
|
69
53
|
let outputTokens;
|
|
@@ -83,29 +67,17 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
83
67
|
inputTokens = Math.ceil(JSON.stringify(args).length / 4);
|
|
84
68
|
}
|
|
85
69
|
catch {
|
|
86
|
-
/* circular refs — leave undefined */
|
|
87
70
|
}
|
|
88
71
|
try {
|
|
89
72
|
const result = await handler(args);
|
|
90
|
-
// Check if result indicates an error
|
|
91
73
|
if (result?.isError) {
|
|
92
74
|
success = false;
|
|
93
75
|
errorOrigin = "returned";
|
|
94
|
-
// Prefer concise _errorMessage over full response text (which may be large JSON)
|
|
95
76
|
errorMessage = result._errorMessage || result.content?.[0]?.text || "Unknown error";
|
|
96
77
|
}
|
|
97
|
-
// Always propagate _errorContext when the tool provides it (e.g. tap predicate
|
|
98
|
-
// for unmeaningful outcomes where isError is false but we still want triage context).
|
|
99
78
|
if (result?._errorContext) {
|
|
100
79
|
errorContext = result._errorContext;
|
|
101
80
|
}
|
|
102
|
-
// Check for empty result (only on success). A tool that reports
|
|
103
|
-
// `_emptyResult` wins over the detector: the detector can only see
|
|
104
|
-
// global state, while the handler knows what it actually returned
|
|
105
|
-
// to the caller. Mixing the two produced both false empties (SDK
|
|
106
|
-
// path served logs while the CDP buffer was empty) and false
|
|
107
|
-
// non-empties (device/level filter matched nothing while another
|
|
108
|
-
// buffer held logs), which made the empty rate unreadable.
|
|
109
81
|
if (success) {
|
|
110
82
|
if (typeof result?._emptyResult === "boolean") {
|
|
111
83
|
emptyResult = result._emptyResult;
|
|
@@ -115,11 +87,9 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
115
87
|
emptyResult = emptyResultDetector(result);
|
|
116
88
|
}
|
|
117
89
|
catch {
|
|
118
|
-
// Detector failure should never affect tool execution
|
|
119
90
|
}
|
|
120
91
|
}
|
|
121
92
|
}
|
|
122
|
-
// Extract meaningfulness data if provided (tap tool verification)
|
|
123
93
|
if (result?._meaningful !== undefined)
|
|
124
94
|
meaningful = result._meaningful;
|
|
125
95
|
if (result?._changeRate !== undefined)
|
|
@@ -153,7 +123,6 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
153
123
|
if (totalTokens > 0)
|
|
154
124
|
outputTokens = totalTokens;
|
|
155
125
|
}
|
|
156
|
-
// Capture response text preview for local dev dashboard
|
|
157
126
|
if (Array.isArray(result?.content)) {
|
|
158
127
|
const textParts = result.content
|
|
159
128
|
.filter((item) => item.type === "text")
|
|
@@ -162,12 +131,9 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
162
131
|
responsePreview = textParts.join("\n").substring(0, 2000);
|
|
163
132
|
}
|
|
164
133
|
}
|
|
165
|
-
// First-install feedback hint — fires once on first successful Metro-connected tool
|
|
166
134
|
if (!NON_METRO_TOOLS.has(toolName) && shouldShowFeedbackHint()) {
|
|
167
135
|
markFeedbackHintShown();
|
|
168
|
-
// Fire-and-forget — don't block the tool response
|
|
169
136
|
pushLogBox("Congratulations on your first tool call! If you encounter any issues or have ideas for improvement, ask your AI assistant to call send_feedback. Your feedback helps me make this product better for everyone. Best regards, ExecBro developer.", "warning", true, "logbox").catch(() => {
|
|
170
|
-
// Non-fatal — hint delivery failure should not affect tool execution
|
|
171
137
|
});
|
|
172
138
|
}
|
|
173
139
|
const warn = usageWarningLine(getUsageInfo());
|
|
@@ -180,16 +146,9 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
180
146
|
success = false;
|
|
181
147
|
errorOrigin = "thrown";
|
|
182
148
|
errorMessage = error instanceof Error ? error.message : String(error);
|
|
183
|
-
// Thrown validation errors can carry a triage tag; without this the
|
|
184
|
-
// error-context column is empty for every throwing tool path.
|
|
185
149
|
if (error instanceof UserInputError && error.context) {
|
|
186
150
|
errorContext = error.context;
|
|
187
151
|
}
|
|
188
|
-
// H2 (Step 9): UserInputError marks agent-input mistakes (unknown
|
|
189
|
-
// device, missing predicate, ambiguous match). They flow through
|
|
190
|
-
// telemetry's trackToolInvocation in the finally block; we just
|
|
191
|
-
// skip the dedicated error-tracking pipe so the dashboard surfaces
|
|
192
|
-
// real product bugs rather than validation noise.
|
|
193
152
|
if (!(error instanceof UserInputError)) {
|
|
194
153
|
getPostHogClient()?.captureException(error, getInstallationId(), { tool: toolName, server_version: getServerVersion(), package_name: getPackageName() });
|
|
195
154
|
}
|
|
@@ -198,8 +157,6 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
198
157
|
finally {
|
|
199
158
|
const duration = Date.now() - startTime;
|
|
200
159
|
trackToolInvocation(toolName, success, duration, errorMessage, errorContext, inputTokens, outputTokens, getTargetPlatform(), emptyResult, meaningful, changeRate, tapStrategy, iosDriver, responsePreview, emptyReason, artifactKey, ocrClosestMatch, fiberPressableCount, accessibilityMatchCount, appRoute, errorOrigin);
|
|
201
|
-
// Classify this invocation's platform kind so PostHog breakdowns can split RN vs Native.
|
|
202
|
-
// RN: any connected app has appDetection. Native: tool name prefixed ios_/android_. Else: null.
|
|
203
160
|
let platformKind = null;
|
|
204
161
|
for (const app of connectedApps.values()) {
|
|
205
162
|
if (app.appDetection) {
|
|
@@ -235,5 +192,4 @@ export function registerToolWithTelemetry(server, toolName, config, handler, emp
|
|
|
235
192
|
}
|
|
236
193
|
});
|
|
237
194
|
}
|
|
238
|
-
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
239
195
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/core/register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/core/register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGrF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC5B,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,oBAAoB;IACpB,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,UAAU;IACV,cAAc;IACd,oBAAoB;IACpB,gBAAgB;IAChB,oBAAoB;IACpB,eAAe;CAClB,CAAC,CAAC;AAOH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAiE,CAAC;AAKrG,MAAM,UAAU,8BAA8B,CAAC,MAAiB;IAC5D,MAAM,qBAAqB,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAc,CAAC,YAAY,GAAG,CAAC,IAAY,EAAE,MAAW,EAAE,OAAY,EAAE,EAAE;QACvE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,MAAiB,EACjB,QAAgB,EAChB,MAAW,EACX,OAAoC,EACpC,mBAA8C;IAE9C,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;QAItD,MAAM,aAAa,EAAE,CAAC;QACtB,oBAAoB,CAAC,YAAY,EAAE,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,KAAK,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnC,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,OAAQ,EAAE,CAAC,EAAE,CAAC;QACzE,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,YAAgC,CAAC;QACrC,IAAI,YAAgC,CAAC;QAKrC,IAAI,WAA8C,CAAC;QACnD,IAAI,WAA+B,CAAC;QACpC,IAAI,YAAgC,CAAC;QACrC,IAAI,WAAgC,CAAC;QACrC,IAAI,UAA+B,CAAC;QACpC,IAAI,UAA8B,CAAC;QACnC,IAAI,WAA+B,CAAC;QACpC,IAAI,SAA6B,CAAC;QAClC,IAAI,eAAmC,CAAC;QACxC,IAAI,WAA+B,CAAC;QACpC,IAAI,WAA+B,CAAC;QACpC,IAAI,eAAmC,CAAC;QACxC,IAAI,mBAAuC,CAAC;QAC5C,IAAI,uBAA2C,CAAC;QAChD,IAAI,QAA4B,CAAC;QAEjC,IAAI,CAAC;YACD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,OAAO,GAAG,KAAK,CAAC;gBAChB,WAAW,GAAG,UAAU,CAAC;gBAEzB,YAAY,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,eAAe,CAAC;YACxF,CAAC;YAGD,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;gBACxB,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;YACxC,CAAC;YAQD,IAAI,OAAO,EAAE,CAAC;gBACV,IAAI,OAAO,MAAM,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC5C,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;gBACtC,CAAC;qBAAM,IAAI,mBAAmB,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACD,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBAAC,MAAM,CAAC;oBAET,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS;gBAAE,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;YACvE,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS;gBAAE,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;YACvE,IAAI,MAAM,EAAE,YAAY;gBAAE,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;YAC5D,IAAI,MAAM,EAAE,UAAU;gBAAE,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;YACtD,IAAI,MAAM,EAAE,YAAY;gBAAE,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;YAC5D,IAAI,MAAM,EAAE,YAAY;gBAAE,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;YAC5D,IAAI,MAAM,EAAE,gBAAgB;gBAAE,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACxE,IAAI,MAAM,EAAE,oBAAoB;gBAAE,mBAAmB,GAAG,MAAM,CAAC,oBAAoB,CAAC;YACpF,IAAI,MAAM,EAAE,wBAAwB;gBAAE,uBAAuB,GAAG,MAAM,CAAC,wBAAwB,CAAC;YAChG,IAAI,MAAM,EAAE,SAAS;gBAAE,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;gBACjC,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAChC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACxD,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnD,CAAC;yBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAChE,WAAW,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClD,CAAC;gBACL,CAAC;gBACD,IAAI,WAAW,GAAG,CAAC;oBAAE,YAAY,GAAG,WAAW,CAAC;YACpD,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO;qBAC3B,MAAM,CAAC,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;qBACxD,GAAG,CAAC,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE,EAAE,CAAC;gBAC7D,qBAAqB,EAAE,CAAC;gBAExB,UAAU,CACN,iPAAiP,EACjP,SAAS,EACT,IAAI,EACJ,QAAQ,CACX,CAAC,KAAK,CAAC,GAAG,EAAE;gBAEb,CAAC,CAAC,CAAC;YACP,CAAC;YACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC;YAC9C,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,GAAG,KAAK,CAAC;YAChB,WAAW,GAAG,QAAQ,CAAC;YACvB,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAGtE,IAAI,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnD,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YACjC,CAAC;YAMD,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC,EAAE,CAAC;gBACrC,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;YAC7J,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;gBAAS,CAAC;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAG3T,IAAI,YAAY,GAA2B,IAAI,CAAC;YAChD,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBAAC,YAAY,GAAG,IAAI,CAAC;oBAAC,MAAM;gBAAC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;oBAAE,YAAY,GAAG,QAAQ,CAAC;YAChG,CAAC;YAED,gBAAgB,EAAE,EAAE,OAAO,CAAC;gBACxB,UAAU,EAAE,iBAAiB,EAAE;gBAC/B,KAAK,EAAE,QAAQ;gBACf,UAAU,EAAE;oBACR,OAAO;oBACP,QAAQ;oBACR,cAAc,EAAE,gBAAgB,EAAE;oBAClC,YAAY,EAAE,cAAc,EAAE;oBAC9B,GAAG,CAAC,YAAY,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC9D,GAAG,CAAC,YAAY,IAAI,EAAE,cAAc,EAAE,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;oBACpF,GAAG,CAAC,WAAW,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;oBACjD,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,CAAC;oBAC7D,GAAG,CAAC,YAAY,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;oBACpD,GAAG,CAAC,WAAW,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;oBACjD,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;oBAC/C,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;oBAC5D,GAAG,CAAC,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;oBAC3C,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;oBAC/D,GAAG,CAAC,WAAW,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;iBACpD;aACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Best-effort fiber walk that probes for the seven curated RN modules
|
|
3
|
-
* by shape signature. Hermes does not expose closure-captured variables,
|
|
4
|
-
* so this fallback almost always sets globalThis.__rn__ = null. Apps that
|
|
5
|
-
* install react-native-ai-devtools-sdk get the namespace populated directly
|
|
6
|
-
* via the SDK's exposeRnGlobals() — that's the preferred path. This walk
|
|
7
|
-
* is here so list_debug_globals can report the failure clearly.
|
|
8
|
-
*/
|
|
9
1
|
export declare function buildRnGlobalsBootstrapExpression(): string;
|
|
10
|
-
/**
|
|
11
|
-
* Run the bootstrap once per app session. Failures are swallowed (the marker
|
|
12
|
-
* on globalThis is enough for list_debug_globals). Uses skipBootstrap: true
|
|
13
|
-
* on the inner executeInApp call to prevent infinite recursion.
|
|
14
|
-
*/
|
|
15
2
|
export declare function ensureRnGlobalsBootstrap(device?: string): Promise<void>;
|
|
16
3
|
//# sourceMappingURL=rnGlobalsBootstrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rnGlobalsBootstrap.d.ts","sourceRoot":"","sources":["../../src/core/rnGlobalsBootstrap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rnGlobalsBootstrap.d.ts","sourceRoot":"","sources":["../../src/core/rnGlobalsBootstrap.ts"],"names":[],"mappings":"AAWA,wBAAgB,iCAAiC,IAAI,MAAM,CAwE1D;AAOD,wBAAsB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B7E"}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
import { executeInApp } from "./jsExecute.js";
|
|
2
2
|
import { bootstrappedApps, connectedApps } from "./state.js";
|
|
3
|
-
/**
|
|
4
|
-
* Best-effort fiber walk that probes for the seven curated RN modules
|
|
5
|
-
* by shape signature. Hermes does not expose closure-captured variables,
|
|
6
|
-
* so this fallback almost always sets globalThis.__rn__ = null. Apps that
|
|
7
|
-
* install react-native-ai-devtools-sdk get the namespace populated directly
|
|
8
|
-
* via the SDK's exposeRnGlobals() — that's the preferred path. This walk
|
|
9
|
-
* is here so list_debug_globals can report the failure clearly.
|
|
10
|
-
*/
|
|
11
3
|
export function buildRnGlobalsBootstrapExpression() {
|
|
12
|
-
// Hermes-compatible IIFE: scans every fiber's memoizedProps / stateNode /
|
|
13
|
-
// memoizedState for objects whose own keys match one of the curated
|
|
14
|
-
// module signatures. Stops on first match per module.
|
|
15
4
|
return `(() => {
|
|
16
5
|
try {
|
|
17
6
|
// SDK fast path: if react-native-ai-devtools-sdk's exposeRnGlobals()
|
|
@@ -81,11 +70,6 @@ export function buildRnGlobalsBootstrapExpression() {
|
|
|
81
70
|
}
|
|
82
71
|
})()`;
|
|
83
72
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Run the bootstrap once per app session. Failures are swallowed (the marker
|
|
86
|
-
* on globalThis is enough for list_debug_globals). Uses skipBootstrap: true
|
|
87
|
-
* on the inner executeInApp call to prevent infinite recursion.
|
|
88
|
-
*/
|
|
89
73
|
export async function ensureRnGlobalsBootstrap(device) {
|
|
90
74
|
let key;
|
|
91
75
|
if (device) {
|
|
@@ -101,12 +85,6 @@ export async function ensureRnGlobalsBootstrap(device) {
|
|
|
101
85
|
return;
|
|
102
86
|
bootstrappedApps.add(key);
|
|
103
87
|
try {
|
|
104
|
-
// Cap at 1500ms — the bootstrap is a fiber walk that completes in <100ms
|
|
105
|
-
// on a healthy device. Without this cap the default 10s timeoutMs would
|
|
106
|
-
// dominate the parent call's latency budget when the JS context is hung,
|
|
107
|
-
// making the user's outer timeoutMs misleading. Bootstrap failure is a
|
|
108
|
-
// best-effort no-op (the try/catch leaves __rn__ null), so a tight cap
|
|
109
|
-
// is safe.
|
|
110
88
|
await executeInApp(buildRnGlobalsBootstrapExpression(), false, { maxRetries: 0, autoReconnect: false, skipBootstrap: true, timeoutMs: 1500 }, device);
|
|
111
89
|
}
|
|
112
90
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rnGlobalsBootstrap.js","sourceRoot":"","sources":["../../src/core/rnGlobalsBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rnGlobalsBootstrap.js","sourceRoot":"","sources":["../../src/core/rnGlobalsBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAU7D,MAAM,UAAU,iCAAiC;IAI7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAmEF,CAAC;AACV,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAe;IAC1D,IAAI,GAAW,CAAC;IAChB,IAAI,MAAM,EAAE,CAAC;QACT,GAAG,GAAG,MAAM,CAAC;IACjB,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,GAAG,GAAG,QAAQ,CAAC;IACnB,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IACtC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC;QAOD,MAAM,YAAY,CACd,iCAAiC,EAAE,EACnC,KAAK,EACL,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAC7E,MAAM,CACT,CAAC;IACN,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface RouteVisit {
|
|
2
|
+
route: string;
|
|
3
|
+
from: string | null;
|
|
4
|
+
enteredAt: number;
|
|
5
|
+
leftAt: number | null;
|
|
6
|
+
epoch: number;
|
|
7
|
+
}
|
|
8
|
+
export type RouteHistoryMode = "listener" | "sampled";
|
|
9
|
+
export interface RouteHistoryResult {
|
|
10
|
+
mode: RouteHistoryMode;
|
|
11
|
+
visits: RouteVisit[];
|
|
12
|
+
}
|
|
13
|
+
export declare function routeHistorySize(): number;
|
|
14
|
+
export declare function formatDwell(ms: number): string;
|
|
15
|
+
export declare function formatRouteTrail(result: RouteHistoryResult, now: number): string;
|
|
16
|
+
export declare function buildRouteHistoryInstallSource(cap: number): string;
|
|
17
|
+
export declare function buildRouteHistoryReadSource(): string;
|
|
18
|
+
export declare function installRouteHistory(device?: string): Promise<RouteHistoryMode>;
|
|
19
|
+
export declare function readRouteHistory(device?: string): Promise<RouteHistoryResult>;
|
|
20
|
+
export declare function resetSampledRoutes(): void;
|
|
21
|
+
export declare function sampledVisits(deviceKey: string): RouteVisit[];
|
|
22
|
+
export declare function mergeListenerEntries(deviceKey: string, entries: Array<Omit<RouteVisit, "epoch">>, epoch: number): void;
|
|
23
|
+
export declare function recordSampledRoute(deviceKey: string, route: string, epoch: number, now: number): void;
|
|
24
|
+
//# sourceMappingURL=routeHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routeHistory.d.ts","sourceRoot":"","sources":["../../src/core/routeHistory.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IAEd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAElB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,CAAC;CACxB;AAGD,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAGD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM9C;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA2BhF;AAgBD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4ClE;AAGD,wBAAgB,2BAA2B,IAAI,MAAM,CAMpD;AAMD,wBAAsB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYpF;AAOD,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8CnF;AAWD,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAE7D;AASD,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EACzC,KAAK,EAAE,MAAM,GACd,IAAI,CAeN;AAED,wBAAgB,kBAAkB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACZ,IAAI,CAwBN"}
|