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
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Diagnose why a buffer read returned zero entries.
|
|
3
|
-
*
|
|
4
|
-
* Shared by every empty-result path in `get_logs` and the network tools
|
|
5
|
-
* (summary, SDK, and the plain buffer read) so that all of them report the
|
|
6
|
-
* same reason for the same underlying state.
|
|
7
|
-
*/
|
|
8
1
|
export async function diagnoseEmptyResult(deps) {
|
|
9
2
|
const status = await deps.checkConnection();
|
|
10
3
|
let warning = status.message ? `\n\n${status.message}` : "";
|
|
11
4
|
if (!status.connected) {
|
|
12
5
|
return { reason: "disconnected", warning, recovered: false };
|
|
13
6
|
}
|
|
14
|
-
// Connected — but by the passive check, which proves nothing about the
|
|
15
|
-
// capture subscription. Start pessimistic and let the pipeline probe
|
|
16
|
-
// upgrade the verdict.
|
|
17
7
|
let reason = status.wasReconnected ? "post_reconnect" : deps.labels.unverified;
|
|
18
8
|
let recovered = false;
|
|
19
9
|
const app = deps.resolveApp?.();
|
|
@@ -30,12 +20,8 @@ export async function diagnoseEmptyResult(deps) {
|
|
|
30
20
|
recovered = true;
|
|
31
21
|
}
|
|
32
22
|
else if (reason === deps.labels.unverified) {
|
|
33
|
-
// Probe round-tripped: the pipeline is provably healthy, so an
|
|
34
|
-
// empty buffer really does mean the app produced nothing.
|
|
35
23
|
reason = deps.labels.verified;
|
|
36
24
|
}
|
|
37
|
-
// A healthy pipeline does not erase `post_reconnect` — the reconnect is
|
|
38
|
-
// still the reason earlier data is missing.
|
|
39
25
|
}
|
|
40
26
|
return { reason, warning, recovered };
|
|
41
27
|
}
|
|
@@ -43,7 +29,6 @@ export const LOG_EMPTY_LABELS = {
|
|
|
43
29
|
verified: "no_logs_verified",
|
|
44
30
|
unverified: "no_logs_unverified"
|
|
45
31
|
};
|
|
46
|
-
/** `diagnoseEmptyResult` bound to the log vocabulary. */
|
|
47
32
|
export async function diagnoseEmptyLogs(deps) {
|
|
48
33
|
const result = await diagnoseEmptyResult({ ...deps, labels: LOG_EMPTY_LABELS });
|
|
49
34
|
return { ...result, reason: result.reason };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logDiagnosis.js","sourceRoot":"","sources":["../../src/core/logDiagnosis.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logDiagnosis.js","sourceRoot":"","sources":["../../src/core/logDiagnosis.ts"],"names":[],"mappings":"AA2EA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAO,IAA8B;IAC1E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC5C,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC;IAKD,IAAI,MAAM,GAAW,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IACvF,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;IAChC,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,iBAAiB,CAAC;QAC/B,CAAC;aAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,oBAAoB,CAAC;YAC9B,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAG3C,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAClC,CAAC;IAGL,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAyB;IAClD,QAAQ,EAAE,kBAAkB;IAC5B,UAAU,EAAE,oBAAoB;CACnC,CAAC;AAGF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAO,IAA4B;IACtE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAChF,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAwB,EAAE,CAAC;AAClE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEventFormat.d.ts","sourceRoot":"","sources":["../../src/core/logEventFormat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"logEventFormat.d.ts","sourceRoot":"","sources":["../../src/core/logEventFormat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAgB/C,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,OAAO,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAoBxE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAG5E;AAED,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC9C,MAAM,CA0BR"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/** Only worth showing when the payload is big enough to matter. */
|
|
2
1
|
const SIZE_HINT_THRESHOLD = 4096;
|
|
3
2
|
function sizeHint(bytes) {
|
|
4
3
|
if (bytes < SIZE_HINT_THRESHOLD)
|
|
@@ -6,22 +5,11 @@ function sizeHint(bytes) {
|
|
|
6
5
|
return ` [${(bytes / 1024).toFixed(1)} KB]`;
|
|
7
6
|
}
|
|
8
7
|
function frameHint(event) {
|
|
9
|
-
// The title already carries "(N frames)" for crashes it recognized.
|
|
10
8
|
if (event.lineCount <= 1 || /\(\d+ frames\)/.test(event.title))
|
|
11
9
|
return "";
|
|
12
10
|
return ` (${event.lineCount} lines)`;
|
|
13
11
|
}
|
|
14
|
-
/**
|
|
15
|
-
* A message event carries no summary worth substituting for its content — it
|
|
16
|
-
* IS the content. Truncating it to a title would silently break get_logs'
|
|
17
|
-
* documented verbose / maxMessageLength contract, which promises full
|
|
18
|
-
* messages on request.
|
|
19
|
-
*/
|
|
20
12
|
function messageBody(event, opts) {
|
|
21
|
-
// `message`, not `raw`: raw carries the logcat epoch/pid/tid/priority/tag
|
|
22
|
-
// prefix, all of which the row already renders as its own columns. `raw`
|
|
23
|
-
// belongs in the detail view (formatEventDetails), where byte-fidelity is
|
|
24
|
-
// the point.
|
|
25
13
|
const body = event.lines.map((l) => l.message).join("\n");
|
|
26
14
|
const budget = opts.maxLength ?? 500;
|
|
27
15
|
return opts.verbose || budget <= 0 || body.length <= budget
|
|
@@ -35,15 +23,6 @@ export function formatEventRow(event, opts) {
|
|
|
35
23
|
cols.push(event.deviceName);
|
|
36
24
|
if (event.owner)
|
|
37
25
|
cols.push(event.owner);
|
|
38
|
-
// Compactness matters for crashes/ANRs/exceptions — they keep the
|
|
39
|
-
// one-line title, and get_log_details exists to expand them. Fidelity
|
|
40
|
-
// matters for plain messages, which have no separate summary.
|
|
41
|
-
//
|
|
42
|
-
// Under verbose, a JS event must render its real payload: `exception`
|
|
43
|
-
// events carry the stack an agent asked for, and titleFor() would drop it.
|
|
44
|
-
// Native crash rows stay compact even here — get_log_details is their
|
|
45
|
-
// documented expansion path, and one verbose call should not dump every
|
|
46
|
-
// backtrace on the device.
|
|
47
26
|
const rendersBody = event.kind === "message" || (opts.verbose === true && event.source === "js");
|
|
48
27
|
const text = rendersBody
|
|
49
28
|
? messageBody(event, opts)
|
|
@@ -66,15 +45,6 @@ export function formatEventDetails(event, opts) {
|
|
|
66
45
|
`Lines: ${event.lineCount}`,
|
|
67
46
|
"",
|
|
68
47
|
];
|
|
69
|
-
// filter(Boolean) would also drop the trailing "" blank-line separator —
|
|
70
|
-
// it's falsy, same as an absent optional field — running the header
|
|
71
|
-
// straight into the payload. Only drop lines that are genuinely absent.
|
|
72
|
-
//
|
|
73
|
-
// Array#join only inserts its separator BETWEEN elements, so a single
|
|
74
|
-
// trailing "" contributes one "\n" (ending the last real line), not a
|
|
75
|
-
// blank row — join(["Lines: 39", ""], "\n") is "Lines: 39\n", not
|
|
76
|
-
// "Lines: 39\n\n". The explicit "\n" below supplies the second newline
|
|
77
|
-
// that actually produces the blank line before the payload.
|
|
78
48
|
const header = headerLines.filter((line) => line !== undefined).join("\n");
|
|
79
49
|
const body = event.lines.map((l) => l.raw).join("\n");
|
|
80
50
|
if (opts.verbose || opts.maxLength <= 0 || body.length <= opts.maxLength) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEventFormat.js","sourceRoot":"","sources":["../../src/core/logEventFormat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logEventFormat.js","sourceRoot":"","sources":["../../src/core/logEventFormat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,17 @@
|
|
|
1
1
|
import type { LogLevel } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Real severity levels, ordered. Excludes the "all" sentinel that LogLevel
|
|
4
|
-
* carries for the get_logs `level` filter — ranking a sentinel is meaningless,
|
|
5
|
-
* and Record<LogLevel, number> would demand an entry for it.
|
|
6
|
-
*/
|
|
7
2
|
export type EventLevel = Exclude<LogLevel, "all">;
|
|
8
|
-
/**
|
|
9
|
-
* A single log line after platform normalization. Everything downstream of
|
|
10
|
-
* acquisition — ownership, grouping, relevance — operates on this shape, so
|
|
11
|
-
* the Android and iOS paths share one implementation each.
|
|
12
|
-
*/
|
|
13
3
|
export interface RawLogLine {
|
|
14
4
|
ts: Date;
|
|
15
5
|
level: EventLevel;
|
|
16
6
|
pid: number;
|
|
17
7
|
tid?: number;
|
|
18
|
-
/** Android tag, or iOS "subsystem:category". */
|
|
19
8
|
tag: string;
|
|
20
9
|
message: string;
|
|
21
|
-
/**
|
|
22
|
-
* The owner this line DECLARES as its subject — parsed from `Cmdline:`,
|
|
23
|
-
* `>>> pkg <<<`, or `Process: pkg`. A tombstone is written by tombstoned's
|
|
24
|
-
* pid, not the dead app's, so this is the only way to attribute a crash.
|
|
25
|
-
*/
|
|
26
10
|
subject?: string;
|
|
27
11
|
raw: string;
|
|
28
12
|
}
|
|
29
13
|
export type EventKind = "crash" | "anr" | "exception" | "lifecycle" | "message";
|
|
30
14
|
export interface LogEvent {
|
|
31
|
-
/** "n7" (native) | "j12" (js). Globally unique, stable for the session. */
|
|
32
15
|
id: string;
|
|
33
16
|
source: "native" | "js";
|
|
34
17
|
deviceKey: string;
|
|
@@ -43,71 +26,34 @@ export interface LogEvent {
|
|
|
43
26
|
fingerprint: string;
|
|
44
27
|
lines: RawLogLine[];
|
|
45
28
|
}
|
|
46
|
-
/** An event before the buffer assigns it an id. */
|
|
47
29
|
export type DraftEvent = Omit<LogEvent, "id">;
|
|
48
30
|
export interface AppIdentity {
|
|
49
|
-
/** simulatorUdid ?? adbSerial — the buffer key. Never deviceName. */
|
|
50
31
|
deviceKey: string;
|
|
51
32
|
platform: "ios" | "android";
|
|
52
|
-
/** THIS device's identifier. iOS bundle id and Android package differ. */
|
|
53
33
|
appId: string;
|
|
54
|
-
/** Live pid, when the app is running. Absent after a crash. */
|
|
55
34
|
pid?: number;
|
|
56
35
|
}
|
|
57
36
|
export declare const LEVEL_RANK: Record<EventLevel, number>;
|
|
58
|
-
/**
|
|
59
|
-
* Identity of an event, derived from its FIRST line only.
|
|
60
|
-
*
|
|
61
|
-
* `logcat -T <ts>` is inclusive of the boundary, so the last event seen always
|
|
62
|
-
* comes back on the next fetch — and it may come back truncated if the window
|
|
63
|
-
* cut mid-backtrace. Hashing only the header line keeps the two reads equal.
|
|
64
|
-
* The device timestamp is used, never the host clock: emulators measured 4s
|
|
65
|
-
* of skew, which would make host-derived hashes unstable.
|
|
66
|
-
*/
|
|
67
37
|
export declare function fingerprintEvent(lines: RawLogLine[], deviceKey: string): string;
|
|
68
38
|
export declare class NativeLogBuffer {
|
|
69
39
|
private events;
|
|
70
40
|
private seen;
|
|
71
41
|
private lastTs;
|
|
72
42
|
private maxSize;
|
|
73
|
-
/**
|
|
74
|
-
* How many fingerprints to retain relative to stored events.
|
|
75
|
-
*
|
|
76
|
-
* `seen` does NOT need to cover all history: the watermark already stops
|
|
77
|
-
* `logcat -T` from returning anything older than the last fetch, so the
|
|
78
|
-
* only thing `seen` must absorb is the inclusive-boundary overlap — a
|
|
79
|
-
* handful of events. Retaining several times maxSize is far more than
|
|
80
|
-
* that window needs while keeping memory bounded in a long-lived server.
|
|
81
|
-
*/
|
|
82
43
|
private static readonly SEEN_RETENTION_MULTIPLE;
|
|
83
44
|
constructor(maxSize?: number);
|
|
84
|
-
/** Append unseen drafts, assigning ids. Returns only what was new. */
|
|
85
45
|
ingest(drafts: DraftEvent[]): LogEvent[];
|
|
86
46
|
list(): LogEvent[];
|
|
87
47
|
get(id: string): LogEvent | undefined;
|
|
88
|
-
/** Retained fingerprint count. Exposed for tests that assert bounded growth. */
|
|
89
48
|
get seenSize(): number;
|
|
90
|
-
/**
|
|
91
|
-
* Clears stored events but NOT the seen-set or watermark — otherwise the
|
|
92
|
-
* next fetch re-ingests everything the caller just cleared.
|
|
93
|
-
*/
|
|
94
49
|
clear(): number;
|
|
95
|
-
/** Newest ingested device timestamp. Drives `logcat -T` / `log show --start`. */
|
|
96
50
|
get watermark(): Date | undefined;
|
|
97
51
|
get size(): number;
|
|
98
52
|
}
|
|
99
53
|
export declare const nativeLogBuffers: Map<string, NativeLogBuffer>;
|
|
100
54
|
export declare function getNativeLogBuffer(deviceKey: string): NativeLogBuffer;
|
|
101
|
-
/** Resolve an event id across every device buffer. */
|
|
102
55
|
export declare function findNativeEvent(id: string): LogEvent | undefined;
|
|
103
|
-
/** Test-only. */
|
|
104
56
|
export declare function __resetNativeLogBuffers(): void;
|
|
105
|
-
/**
|
|
106
|
-
* Resolve any event id, native or JS. The prefix selects the space: `n` is a
|
|
107
|
-
* buffered native event, `j` is derived on demand from a console entry's seq.
|
|
108
|
-
* Registered lazily so logEvents.ts does not import the JS side (which imports
|
|
109
|
-
* back for its types).
|
|
110
|
-
*/
|
|
111
57
|
type JsResolver = (id: string) => LogEvent | undefined;
|
|
112
58
|
export declare function registerJsEventResolver(fn: JsResolver): void;
|
|
113
59
|
export declare function findLogEvent(id: string): LogEvent | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEvents.d.ts","sourceRoot":"","sources":["../../src/core/logEvents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"logEvents.d.ts","sourceRoot":"","sources":["../../src/core/logEvents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO3C,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAOlD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAMhB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,QAAQ;IAErB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAGD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE9C,MAAM,WAAW,WAAW;IAExB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOjD,CAAC;AAWF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAe/E;AAQD,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;IAWxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAK;gBAExC,OAAO,GAAE,MAAY;IAKjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE;IAwBxC,IAAI,IAAI,QAAQ,EAAE;IAIlB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAKrC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAMD,KAAK,IAAI,MAAM;IAOf,IAAI,SAAS,IAAI,IAAI,GAAG,SAAS,CAEhC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACJ;AAED,eAAO,MAAM,gBAAgB,8BAAqC,CAAC;AAEnE,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAOrE;AAGD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAMhE;AAGD,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAQD,KAAK,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;AAGvD,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAE5D;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAI7D"}
|
package/build/core/logEvents.js
CHANGED
|
@@ -7,15 +7,6 @@ export const LEVEL_RANK = {
|
|
|
7
7
|
error: 4,
|
|
8
8
|
fatal: 5,
|
|
9
9
|
};
|
|
10
|
-
/**
|
|
11
|
-
* Identity of an event, derived from its FIRST line only.
|
|
12
|
-
*
|
|
13
|
-
* `logcat -T <ts>` is inclusive of the boundary, so the last event seen always
|
|
14
|
-
* comes back on the next fetch — and it may come back truncated if the window
|
|
15
|
-
* cut mid-backtrace. Hashing only the header line keeps the two reads equal.
|
|
16
|
-
* The device timestamp is used, never the host clock: emulators measured 4s
|
|
17
|
-
* of skew, which would make host-derived hashes unstable.
|
|
18
|
-
*/
|
|
19
10
|
export function fingerprintEvent(lines, deviceKey) {
|
|
20
11
|
const head = lines[0];
|
|
21
12
|
if (!head)
|
|
@@ -27,36 +18,18 @@ export function fingerprintEvent(lines, deviceKey) {
|
|
|
27
18
|
head.tag,
|
|
28
19
|
head.message,
|
|
29
20
|
];
|
|
30
|
-
// JSON.stringify, not join("|"): log messages and tags are free-form and
|
|
31
|
-
// routinely contain the separator, which would let two different field
|
|
32
|
-
// splits hash identically and silently collapse two distinct events into
|
|
33
|
-
// one during dedupe.
|
|
34
21
|
return createHash("sha1").update(JSON.stringify(parts)).digest("hex");
|
|
35
22
|
}
|
|
36
|
-
// Process-global so an id identifies exactly one event across every device,
|
|
37
|
-
// and get_log_details needs no device argument. Deliberately NOT the
|
|
38
|
-
// per-device numbering that resolveNetworkBuffer had to retrofit with a
|
|
39
|
-
// "@deviceName" suffix after ids collided.
|
|
40
23
|
let nextNativeId = 1;
|
|
41
24
|
export class NativeLogBuffer {
|
|
42
25
|
events = [];
|
|
43
26
|
seen = new Set();
|
|
44
27
|
lastTs;
|
|
45
28
|
maxSize;
|
|
46
|
-
/**
|
|
47
|
-
* How many fingerprints to retain relative to stored events.
|
|
48
|
-
*
|
|
49
|
-
* `seen` does NOT need to cover all history: the watermark already stops
|
|
50
|
-
* `logcat -T` from returning anything older than the last fetch, so the
|
|
51
|
-
* only thing `seen` must absorb is the inclusive-boundary overlap — a
|
|
52
|
-
* handful of events. Retaining several times maxSize is far more than
|
|
53
|
-
* that window needs while keeping memory bounded in a long-lived server.
|
|
54
|
-
*/
|
|
55
29
|
static SEEN_RETENTION_MULTIPLE = 4;
|
|
56
30
|
constructor(maxSize = 200) {
|
|
57
31
|
this.maxSize = maxSize;
|
|
58
32
|
}
|
|
59
|
-
/** Append unseen drafts, assigning ids. Returns only what was new. */
|
|
60
33
|
ingest(drafts) {
|
|
61
34
|
const added = [];
|
|
62
35
|
for (const d of drafts) {
|
|
@@ -71,8 +44,6 @@ export class NativeLogBuffer {
|
|
|
71
44
|
}
|
|
72
45
|
while (this.events.length > this.maxSize)
|
|
73
46
|
this.events.shift();
|
|
74
|
-
// Set iteration is insertion-ordered, so this drops the oldest
|
|
75
|
-
// fingerprints first.
|
|
76
47
|
const seenCap = this.maxSize * NativeLogBuffer.SEEN_RETENTION_MULTIPLE;
|
|
77
48
|
while (this.seen.size > seenCap) {
|
|
78
49
|
const oldest = this.seen.values().next().value;
|
|
@@ -88,20 +59,14 @@ export class NativeLogBuffer {
|
|
|
88
59
|
get(id) {
|
|
89
60
|
return this.events.find((e) => e.id === id);
|
|
90
61
|
}
|
|
91
|
-
/** Retained fingerprint count. Exposed for tests that assert bounded growth. */
|
|
92
62
|
get seenSize() {
|
|
93
63
|
return this.seen.size;
|
|
94
64
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Clears stored events but NOT the seen-set or watermark — otherwise the
|
|
97
|
-
* next fetch re-ingests everything the caller just cleared.
|
|
98
|
-
*/
|
|
99
65
|
clear() {
|
|
100
66
|
const count = this.events.length;
|
|
101
67
|
this.events = [];
|
|
102
68
|
return count;
|
|
103
69
|
}
|
|
104
|
-
/** Newest ingested device timestamp. Drives `logcat -T` / `log show --start`. */
|
|
105
70
|
get watermark() {
|
|
106
71
|
return this.lastTs;
|
|
107
72
|
}
|
|
@@ -118,7 +83,6 @@ export function getNativeLogBuffer(deviceKey) {
|
|
|
118
83
|
}
|
|
119
84
|
return buffer;
|
|
120
85
|
}
|
|
121
|
-
/** Resolve an event id across every device buffer. */
|
|
122
86
|
export function findNativeEvent(id) {
|
|
123
87
|
for (const buffer of nativeLogBuffers.values()) {
|
|
124
88
|
const hit = buffer.get(id);
|
|
@@ -127,7 +91,6 @@ export function findNativeEvent(id) {
|
|
|
127
91
|
}
|
|
128
92
|
return undefined;
|
|
129
93
|
}
|
|
130
|
-
/** Test-only. */
|
|
131
94
|
export function __resetNativeLogBuffers() {
|
|
132
95
|
nativeLogBuffers.clear();
|
|
133
96
|
nextNativeId = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logEvents.js","sourceRoot":"","sources":["../../src/core/logEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgEzC,MAAM,CAAC,MAAM,UAAU,GAA+B;IAClD,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACX,CAAC;
|
|
1
|
+
{"version":3,"file":"logEvents.js","sourceRoot":"","sources":["../../src/core/logEvents.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,5 @@ export interface GroupContext {
|
|
|
4
4
|
deviceName: string;
|
|
5
5
|
source: "native" | "js";
|
|
6
6
|
}
|
|
7
|
-
/**
|
|
8
|
-
* Correlate lines into events.
|
|
9
|
-
*
|
|
10
|
-
* Continuation is keyed on (pid, tid, tag) rather than adjacency because
|
|
11
|
-
* logcat interleaves processes: a foreign line can land in the middle of a
|
|
12
|
-
* backtrace without ending it. Unmatched lines become single-line `message`
|
|
13
|
-
* events rather than being dropped, so an unrecognized crash format still
|
|
14
|
-
* surfaces — worse formatting, never silence.
|
|
15
|
-
*/
|
|
16
7
|
export declare function groupIntoEvents(lines: RawLogLine[], ctx: GroupContext): DraftEvent[];
|
|
17
8
|
//# sourceMappingURL=logGrouping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logGrouping.d.ts","sourceRoot":"","sources":["../../src/core/logGrouping.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,UAAU,EAGf,KAAK,UAAU,EAClB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"logGrouping.d.ts","sourceRoot":"","sources":["../../src/core/logGrouping.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,UAAU,EAGf,KAAK,UAAU,EAClB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;AAwGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,YAAY,GAAG,UAAU,EAAE,CAiCpF"}
|
|
@@ -3,7 +3,6 @@ const CRASH_OPENERS = [/^\*{3}\s/, /^Cmdline:/, /^pid:\s+\d+.*>>>/];
|
|
|
3
3
|
const JAVA_CRASH_OPENER = /^FATAL EXCEPTION/;
|
|
4
4
|
const ANR_OPENER = /^ANR in /;
|
|
5
5
|
const JAVA_CONTINUATION = /^\s*(at\s|Caused by:|\.\.\.\s|[\w.$]+(Exception|Error)([:\s]|$))/;
|
|
6
|
-
/** `pid:tid:tag` — logcat interleaves processes, so adjacency cannot group. */
|
|
7
6
|
function streamKey(line) {
|
|
8
7
|
return `${line.pid}:${line.tid ?? line.pid}:${line.tag}`;
|
|
9
8
|
}
|
|
@@ -28,13 +27,6 @@ function continues(kind, open, line) {
|
|
|
28
27
|
return line.message.trim().length > 0;
|
|
29
28
|
return false;
|
|
30
29
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Frame #00 of every abort is libc.so (abort+…) — the mechanism, not the
|
|
33
|
-
* cause — with the ART/libbase abort helpers stacked above it. Naming those
|
|
34
|
-
* gives every SIGABRT on every device an identical, useless title, so skip
|
|
35
|
-
* them and report the first frame belonging to real code. Falls back to the
|
|
36
|
-
* first library seen if the whole backtrace is runtime machinery.
|
|
37
|
-
*/
|
|
38
30
|
const ABORT_MACHINERY = /^(libc|libc\+\+|libart|libbase|liblog|libutils|libcutils|libbacktrace|libunwindstack)\.so$/;
|
|
39
31
|
function culpritLibrary(lines) {
|
|
40
32
|
let fallback;
|
|
@@ -90,15 +82,6 @@ function toDraft(kind, lines, ctx) {
|
|
|
90
82
|
lines,
|
|
91
83
|
};
|
|
92
84
|
}
|
|
93
|
-
/**
|
|
94
|
-
* Correlate lines into events.
|
|
95
|
-
*
|
|
96
|
-
* Continuation is keyed on (pid, tid, tag) rather than adjacency because
|
|
97
|
-
* logcat interleaves processes: a foreign line can land in the middle of a
|
|
98
|
-
* backtrace without ending it. Unmatched lines become single-line `message`
|
|
99
|
-
* events rather than being dropped, so an unrecognized crash format still
|
|
100
|
-
* surfaces — worse formatting, never silence.
|
|
101
|
-
*/
|
|
102
85
|
export function groupIntoEvents(lines, ctx) {
|
|
103
86
|
const events = [];
|
|
104
87
|
const open = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logGrouping.js","sourceRoot":"","sources":["../../src/core/logGrouping.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,UAAU,GAKb,MAAM,gBAAgB,CAAC;AAQxB,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;AACpE,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,iBAAiB,GAAG,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"logGrouping.js","sourceRoot":"","sources":["../../src/core/logGrouping.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,24 +6,7 @@ export type OwnershipVerdict = {
|
|
|
6
6
|
} | {
|
|
7
7
|
owned: false;
|
|
8
8
|
};
|
|
9
|
-
/**
|
|
10
|
-
* Tags whose lines are VERDICTS ABOUT an app rather than output FROM it.
|
|
11
|
-
*
|
|
12
|
-
* This allowlist is a hard gate, not a hint. Two measured traps make a bare
|
|
13
|
-
* "message contains the package name" rule wrong:
|
|
14
|
-
* - MMKV / nativeloader embed the package as a filesystem path
|
|
15
|
-
* - ActivityThread announces package changes from OTHER apps' pids
|
|
16
|
-
* Neither tag is listed, so the name check never runs for them.
|
|
17
|
-
*/
|
|
18
9
|
export declare const ANDROID_VERDICT_TAGS: ReadonlySet<string>;
|
|
19
|
-
/** iOS equivalents: process termination and launch failure reporters. */
|
|
20
10
|
export declare const IOS_VERDICT_SUBSYSTEMS: ReadonlySet<string>;
|
|
21
|
-
/**
|
|
22
|
-
* Decide whether a line belongs to the app under test. First match wins.
|
|
23
|
-
*
|
|
24
|
-
* Rule order matters: `declared` precedes `pid` because a tombstone is written
|
|
25
|
-
* by tombstoned's pid while naming the dead app as its subject, so pid
|
|
26
|
-
* matching would miss every crash — the exact case this feature exists for.
|
|
27
|
-
*/
|
|
28
11
|
export declare function isOwned(line: RawLogLine, identity: AppIdentity): OwnershipVerdict;
|
|
29
12
|
//# sourceMappingURL=logOwnership.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logOwnership.d.ts","sourceRoot":"","sources":["../../src/core/logOwnership.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AACvD,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"logOwnership.d.ts","sourceRoot":"","sources":["../../src/core/logOwnership.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AACvD,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAWrF,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAQnD,CAAC;AAGH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAGrD,CAAC;AA+CH,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAYjF"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tags whose lines are VERDICTS ABOUT an app rather than output FROM it.
|
|
3
|
-
*
|
|
4
|
-
* This allowlist is a hard gate, not a hint. Two measured traps make a bare
|
|
5
|
-
* "message contains the package name" rule wrong:
|
|
6
|
-
* - MMKV / nativeloader embed the package as a filesystem path
|
|
7
|
-
* - ActivityThread announces package changes from OTHER apps' pids
|
|
8
|
-
* Neither tag is listed, so the name check never runs for them.
|
|
9
|
-
*/
|
|
10
1
|
export const ANDROID_VERDICT_TAGS = new Set([
|
|
11
2
|
"ActivityManager",
|
|
12
3
|
"ActivityTaskManager",
|
|
@@ -16,35 +7,17 @@ export const ANDROID_VERDICT_TAGS = new Set([
|
|
|
16
7
|
"PackageManager",
|
|
17
8
|
"InputDispatcher",
|
|
18
9
|
]);
|
|
19
|
-
/** iOS equivalents: process termination and launch failure reporters. */
|
|
20
10
|
export const IOS_VERDICT_SUBSYSTEMS = new Set([
|
|
21
11
|
"com.apple.runningboard",
|
|
22
12
|
"com.apple.FrontBoard",
|
|
23
13
|
]);
|
|
24
|
-
/**
|
|
25
|
-
* Tags whose output is already carried by another source.
|
|
26
|
-
*
|
|
27
|
-
* React Native mirrors console.* into logcat under `ReactNativeJS`. Those lines
|
|
28
|
-
* are in the CDP console buffer too, so owning them here would double-report
|
|
29
|
-
* under source:"all" and bury crashes under ordinary app logging in
|
|
30
|
-
* source:"native". Keeping the two sources disjoint is what makes merging safe.
|
|
31
|
-
*/
|
|
32
14
|
const MIRRORED_TAGS = new Set(["ReactNativeJS"]);
|
|
33
15
|
function isVerdictSource(line, platform) {
|
|
34
16
|
if (platform === "android")
|
|
35
17
|
return ANDROID_VERDICT_TAGS.has(line.tag);
|
|
36
|
-
// iOS tags are "subsystem:category" — match on the subsystem half.
|
|
37
18
|
const subsystem = line.tag.split(":")[0];
|
|
38
19
|
return IOS_VERDICT_SUBSYSTEMS.has(subsystem);
|
|
39
20
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Does the message name this package as a whole identifier?
|
|
42
|
-
*
|
|
43
|
-
* A bare `includes` would attribute `ANR in com.acme.app.dev` to
|
|
44
|
-
* `com.acme.app`. Debug and release variants differing only by a Gradle
|
|
45
|
-
* applicationIdSuffix are routinely installed side by side, so the shorter
|
|
46
|
-
* id being a prefix of the longer one is the normal case, not an edge case.
|
|
47
|
-
*/
|
|
48
21
|
function namesPackage(message, appId) {
|
|
49
22
|
const boundary = /[A-Za-z0-9_.]/;
|
|
50
23
|
let from = 0;
|
|
@@ -59,13 +32,6 @@ function namesPackage(message, appId) {
|
|
|
59
32
|
from = at + 1;
|
|
60
33
|
}
|
|
61
34
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Decide whether a line belongs to the app under test. First match wins.
|
|
64
|
-
*
|
|
65
|
-
* Rule order matters: `declared` precedes `pid` because a tombstone is written
|
|
66
|
-
* by tombstoned's pid while naming the dead app as its subject, so pid
|
|
67
|
-
* matching would miss every crash — the exact case this feature exists for.
|
|
68
|
-
*/
|
|
69
35
|
export function isOwned(line, identity) {
|
|
70
36
|
if (MIRRORED_TAGS.has(line.tag))
|
|
71
37
|
return { owned: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logOwnership.js","sourceRoot":"","sources":["../../src/core/logOwnership.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logOwnership.js","sourceRoot":"","sources":["../../src/core/logOwnership.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IAC7D,iBAAiB;IACjB,qBAAqB;IACrB,gBAAgB;IAChB,OAAO;IACP,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;CACpB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC/D,wBAAwB;IACxB,sBAAsB;CACzB,CAAC,CAAC;AAUH,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;AAEtE,SAAS,eAAe,CAAC,IAAgB,EAAE,QAAiC;IACxE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAUD,SAAS,YAAY,CAAC,OAAe,EAAE,KAAa;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC;IACjC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,SAAS,CAAC;QACN,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACjE,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;AACL,CAAC;AASD,MAAM,UAAU,OAAO,CAAC,IAAgB,EAAE,QAAqB;IAC3D,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import { type DraftEvent, type EventLevel } from "./logEvents.js";
|
|
2
|
-
/**
|
|
3
|
-
* Gate 2: is this event worth a row?
|
|
4
|
-
*
|
|
5
|
-
* Runs AFTER grouping, because it tests `kind` and only the grouper assigns
|
|
6
|
-
* that. The exemption matters: a backtrace's continuation lines carry no
|
|
7
|
-
* marker identifying them as part of a crash, so a floor applied to lines
|
|
8
|
-
* would shred exactly the events this feature exists to surface.
|
|
9
|
-
*/
|
|
10
2
|
export declare function isRelevant(event: Pick<DraftEvent, "level" | "kind">, opts: {
|
|
11
3
|
minLevel: EventLevel;
|
|
12
4
|
}): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logRelevance.d.ts","sourceRoot":"","sources":["../../src/core/logRelevance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAkB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"logRelevance.d.ts","sourceRoot":"","sources":["../../src/core/logRelevance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAkB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmB9F,wBAAgB,UAAU,CACtB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,EACzC,IAAI,EAAE;IAAE,QAAQ,EAAE,UAAU,CAAA;CAAE,GAC/B,OAAO,CAGT"}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
1
|
import { LEVEL_RANK } from "./logEvents.js";
|
|
2
|
-
/**
|
|
3
|
-
* Kinds that are always worth a row, whatever their level.
|
|
4
|
-
*
|
|
5
|
-
* Typed by EventKind, not string: a typo here would silently disable the
|
|
6
|
-
* exemption that guarantees a severity floor can never filter out a crash,
|
|
7
|
-
* so it must fail the build rather than fail quietly.
|
|
8
|
-
*/
|
|
9
2
|
const ALWAYS = new Set(["crash", "anr"]);
|
|
10
|
-
/**
|
|
11
|
-
* Gate 2: is this event worth a row?
|
|
12
|
-
*
|
|
13
|
-
* Runs AFTER grouping, because it tests `kind` and only the grouper assigns
|
|
14
|
-
* that. The exemption matters: a backtrace's continuation lines carry no
|
|
15
|
-
* marker identifying them as part of a crash, so a floor applied to lines
|
|
16
|
-
* would shred exactly the events this feature exists to surface.
|
|
17
|
-
*/
|
|
18
3
|
export function isRelevant(event, opts) {
|
|
19
4
|
if (ALWAYS.has(event.kind))
|
|
20
5
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logRelevance.js","sourceRoot":"","sources":["../../src/core/logRelevance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoD,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"logRelevance.js","sourceRoot":"","sources":["../../src/core/logRelevance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoD,MAAM,gBAAgB,CAAC;AAS9F,MAAM,MAAM,GAA2B,IAAI,GAAG,CAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAU5E,MAAM,UAAU,UAAU,CACtB,KAAyC,EACzC,IAA8B;IAE9B,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChE,CAAC"}
|