execbro 2.3.0 → 2.6.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/README.md +2 -0
- 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/androidPinch.test.d.ts +2 -0
- package/build/__tests__/unit/androidPinch.test.d.ts.map +1 -0
- package/build/__tests__/unit/androidPinch.test.js +119 -0
- package/build/__tests__/unit/androidPinch.test.js.map +1 -0
- 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/emulatorBridge.test.d.ts +2 -0
- package/build/__tests__/unit/emulatorBridge.test.d.ts.map +1 -0
- package/build/__tests__/unit/emulatorBridge.test.js +76 -0
- package/build/__tests__/unit/emulatorBridge.test.js.map +1 -0
- package/build/__tests__/unit/emulatorGrpc.test.d.ts +2 -0
- package/build/__tests__/unit/emulatorGrpc.test.d.ts.map +1 -0
- package/build/__tests__/unit/emulatorGrpc.test.js +33 -0
- package/build/__tests__/unit/emulatorGrpc.test.js.map +1 -0
- 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/pinchGeometry.test.d.ts +2 -0
- package/build/__tests__/unit/pinchGeometry.test.d.ts.map +1 -0
- package/build/__tests__/unit/pinchGeometry.test.js +139 -0
- package/build/__tests__/unit/pinchGeometry.test.js.map +1 -0
- package/build/__tests__/unit/pinchTool.test.d.ts +2 -0
- package/build/__tests__/unit/pinchTool.test.d.ts.map +1 -0
- package/build/__tests__/unit/pinchTool.test.js +39 -0
- package/build/__tests__/unit/pinchTool.test.js.map +1 -0
- 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/androidPinch.d.ts +21 -0
- package/build/core/androidPinch.d.ts.map +1 -0
- package/build/core/androidPinch.js +72 -0
- package/build/core/androidPinch.js.map +1 -0
- package/build/core/androidSystemBars.d.ts +7 -0
- package/build/core/androidSystemBars.d.ts.map +1 -0
- package/build/core/androidSystemBars.js +21 -0
- package/build/core/androidSystemBars.js.map +1 -0
- 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/emulatorBridge.d.ts +17 -0
- package/build/core/emulatorBridge.d.ts.map +1 -0
- package/build/core/emulatorBridge.js +78 -0
- package/build/core/emulatorBridge.js.map +1 -0
- package/build/core/emulatorGrpc.d.ts +14 -0
- package/build/core/emulatorGrpc.d.ts.map +1 -0
- package/build/core/emulatorGrpc.js +93 -0
- package/build/core/emulatorGrpc.js.map +1 -0
- 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 +18 -12
- 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.d.ts +2 -0
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js +5 -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/pinchGeometry.d.ts +28 -0
- package/build/core/pinchGeometry.d.ts.map +1 -0
- package/build/core/pinchGeometry.js +97 -0
- package/build/core/pinchGeometry.js.map +1 -0
- package/build/core/pinchThresholds.d.ts +14 -0
- package/build/core/pinchThresholds.d.ts.map +1 -0
- package/build/core/pinchThresholds.js +9 -0
- package/build/core/pinchThresholds.js.map +1 -0
- 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 +190 -59
- 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 +16 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { readdir, readFile } from "node:fs/promises";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
export function emulatorRunningDir(platform = process.platform, home = homedir()) {
|
|
5
|
+
if (platform === "darwin") {
|
|
6
|
+
return join(home, "Library", "Caches", "TemporaryItems", "avd", "running");
|
|
7
|
+
}
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
function parseIni(text) {
|
|
11
|
+
const out = {};
|
|
12
|
+
for (const line of text.split("\n")) {
|
|
13
|
+
const eq = line.indexOf("=");
|
|
14
|
+
if (eq <= 0)
|
|
15
|
+
continue;
|
|
16
|
+
out[line.slice(0, eq).trim()] = line.slice(eq + 1).trim();
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
export async function resolveEmulatorBridge(serial, runningDir) {
|
|
21
|
+
const match = /^emulator-(\d+)$/.exec(serial.trim());
|
|
22
|
+
if (!match) {
|
|
23
|
+
return {
|
|
24
|
+
ok: false,
|
|
25
|
+
reason: "not-emulator",
|
|
26
|
+
message: `'${serial}' is a physical Android device. Multi-touch needs the emulator's ` +
|
|
27
|
+
`gRPC bridge, which physical devices do not expose. Run the app on an emulator to use pinch.`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const consolePort = match[1];
|
|
31
|
+
const dir = runningDir ?? emulatorRunningDir();
|
|
32
|
+
if (!dir) {
|
|
33
|
+
return {
|
|
34
|
+
ok: false,
|
|
35
|
+
reason: "unsupported-host",
|
|
36
|
+
message: `The emulator discovery directory is only verified on macOS, so pinch is not ` +
|
|
37
|
+
`enabled on ${process.platform} yet.`,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
let entries;
|
|
41
|
+
try {
|
|
42
|
+
entries = await readdir(dir);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
entries = [];
|
|
46
|
+
}
|
|
47
|
+
for (const name of entries) {
|
|
48
|
+
if (!name.startsWith("pid_") || !name.endsWith(".ini"))
|
|
49
|
+
continue;
|
|
50
|
+
let ini;
|
|
51
|
+
try {
|
|
52
|
+
ini = parseIni(await readFile(join(dir, name), "utf8"));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (ini["port.serial"] !== consolePort)
|
|
58
|
+
continue;
|
|
59
|
+
const port = Number(ini["grpc.port"]);
|
|
60
|
+
const token = ini["grpc.token"];
|
|
61
|
+
if (!Number.isInteger(port) || port <= 0 || !token) {
|
|
62
|
+
return {
|
|
63
|
+
ok: false,
|
|
64
|
+
reason: "no-grpc-keys",
|
|
65
|
+
message: `${name} has no gRPC bridge (missing grpc.port/grpc.token). The emulator is ` +
|
|
66
|
+
`too old or was started with gRPC disabled; pinch needs a version that exposes it.`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return { ok: true, bridge: { port, token, avdName: ini["avd.name"] } };
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
ok: false,
|
|
73
|
+
reason: "no-discovery-file",
|
|
74
|
+
message: `No emulator discovery file in ${dir} matches console port ${consolePort}. ` +
|
|
75
|
+
`Expected a pid_*.ini with port.serial=${consolePort}.`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=emulatorBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emulatorBridge.js","sourceRoot":"","sources":["../../src/core/emulatorBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EmulatorBridge } from "./emulatorBridge.js";
|
|
2
|
+
export interface TouchPoint {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
identifier: number;
|
|
6
|
+
pressure: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function encodeTouchEvent(touches: TouchPoint[]): Buffer;
|
|
9
|
+
export declare function frameGrpcMessage(message: Buffer): Buffer;
|
|
10
|
+
export declare function sendTouchFrames(bridge: EmulatorBridge, frames: TouchPoint[][], frameDelayMs: number): Promise<{
|
|
11
|
+
success: boolean;
|
|
12
|
+
error?: string;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=emulatorGrpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emulatorGrpc.d.ts","sourceRoot":"","sources":["../../src/core/emulatorGrpc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,UAAU;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAqCD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAc9D;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKxD;AAyDD,wBAAsB,eAAe,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,UAAU,EAAE,EAAE,EACtB,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB/C"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import http2 from "node:http2";
|
|
2
|
+
const SEND_TOUCH_PATH = "/android.emulation.control.EmulatorController/sendTouch";
|
|
3
|
+
const FRAME_TIMEOUT_MS = 5000;
|
|
4
|
+
function varint(value) {
|
|
5
|
+
const out = [];
|
|
6
|
+
let v = value;
|
|
7
|
+
while (v > 0x7f) {
|
|
8
|
+
out.push((v & 0x7f) | 0x80);
|
|
9
|
+
v >>>= 7;
|
|
10
|
+
}
|
|
11
|
+
out.push(v);
|
|
12
|
+
return Buffer.from(out);
|
|
13
|
+
}
|
|
14
|
+
function varintField(fieldNumber, value) {
|
|
15
|
+
return Buffer.concat([varint(fieldNumber << 3), varint(value)]);
|
|
16
|
+
}
|
|
17
|
+
function lengthField(fieldNumber, payload) {
|
|
18
|
+
return Buffer.concat([varint((fieldNumber << 3) | 2), varint(payload.length), payload]);
|
|
19
|
+
}
|
|
20
|
+
export function encodeTouchEvent(touches) {
|
|
21
|
+
return Buffer.concat(touches.map((t) => lengthField(1, Buffer.concat([
|
|
22
|
+
varintField(1, Math.max(0, Math.round(t.x))),
|
|
23
|
+
varintField(2, Math.max(0, Math.round(t.y))),
|
|
24
|
+
varintField(3, t.identifier),
|
|
25
|
+
varintField(4, t.pressure),
|
|
26
|
+
]))));
|
|
27
|
+
}
|
|
28
|
+
export function frameGrpcMessage(message) {
|
|
29
|
+
const header = Buffer.alloc(5);
|
|
30
|
+
header.writeUInt8(0, 0);
|
|
31
|
+
header.writeUInt32BE(message.length, 1);
|
|
32
|
+
return Buffer.concat([header, message]);
|
|
33
|
+
}
|
|
34
|
+
function sendOneFrame(session, bridge, touches) {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
const req = session.request({
|
|
37
|
+
":method": "POST",
|
|
38
|
+
":path": SEND_TOUCH_PATH,
|
|
39
|
+
"content-type": "application/grpc",
|
|
40
|
+
authorization: `Bearer ${bridge.token}`,
|
|
41
|
+
te: "trailers",
|
|
42
|
+
});
|
|
43
|
+
let status = null;
|
|
44
|
+
const timer = setTimeout(() => {
|
|
45
|
+
req.close();
|
|
46
|
+
reject(new Error("timed out waiting for sendTouch"));
|
|
47
|
+
}, FRAME_TIMEOUT_MS);
|
|
48
|
+
const readStatus = (headers) => {
|
|
49
|
+
const s = headers["grpc-status"];
|
|
50
|
+
if (s != null)
|
|
51
|
+
status = String(s);
|
|
52
|
+
};
|
|
53
|
+
req.on("response", readStatus);
|
|
54
|
+
req.on("trailers", readStatus);
|
|
55
|
+
req.on("error", (err) => {
|
|
56
|
+
clearTimeout(timer);
|
|
57
|
+
reject(err);
|
|
58
|
+
});
|
|
59
|
+
req.on("end", () => {
|
|
60
|
+
clearTimeout(timer);
|
|
61
|
+
if (status === null || status === "0")
|
|
62
|
+
resolve();
|
|
63
|
+
else
|
|
64
|
+
reject(new Error(`grpc-status ${status}`));
|
|
65
|
+
});
|
|
66
|
+
req.end(frameGrpcMessage(encodeTouchEvent(touches)));
|
|
67
|
+
req.resume();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
71
|
+
export async function sendTouchFrames(bridge, frames, frameDelayMs) {
|
|
72
|
+
let session;
|
|
73
|
+
try {
|
|
74
|
+
session = http2.connect(`http://127.0.0.1:${bridge.port}`);
|
|
75
|
+
session.on("error", () => { });
|
|
76
|
+
for (let i = 0; i < frames.length; i++) {
|
|
77
|
+
await sendOneFrame(session, bridge, frames[i]);
|
|
78
|
+
if (i < frames.length - 1 && frameDelayMs > 0)
|
|
79
|
+
await sleep(frameDelayMs);
|
|
80
|
+
}
|
|
81
|
+
return { success: true };
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return {
|
|
85
|
+
success: false,
|
|
86
|
+
error: error instanceof Error ? error.message : String(error),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
session?.close();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=emulatorGrpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emulatorGrpc.js","sourceRoot":"","sources":["../../src/core/emulatorGrpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
export type EpochParam = number | "current" | "all" | undefined;
|
|
2
|
-
/**
|
|
3
|
-
* Render entries with a visible boundary wherever the app run changes, so the
|
|
4
|
-
* agent can tell "this happened before the restart" from "this is the live run".
|
|
5
|
-
*/
|
|
6
2
|
export declare function withRestartDividers<T extends {
|
|
7
3
|
epoch: number;
|
|
8
4
|
}>(entries: T[], render: (entry: T) => string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Silence here is the failure mode: a capped, truncated view is otherwise
|
|
11
|
-
* indistinguishable from a complete one.
|
|
12
|
-
*/
|
|
13
5
|
export declare function evictionNotice(droppedCount: number, envVar: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* Defaults to undefined (no filter) so pre-restart data is visible by default —
|
|
16
|
-
* hiding it would reintroduce the exact symptom this feature fixes.
|
|
17
|
-
*/
|
|
18
6
|
export declare function resolveEpochFilter(epoch: EpochParam, device?: string): number | undefined;
|
|
19
7
|
//# sourceMappingURL=epochRender.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochRender.d.ts","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"epochRender.d.ts","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAMhE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC3D,OAAO,EAAE,CAAC,EAAE,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAC7B,MAAM,CAWR;AAMD,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3E;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIzF"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { resolveDeviceEpoch } from "./state.js";
|
|
2
|
-
/**
|
|
3
|
-
* Render entries with a visible boundary wherever the app run changes, so the
|
|
4
|
-
* agent can tell "this happened before the restart" from "this is the live run".
|
|
5
|
-
*/
|
|
6
2
|
export function withRestartDividers(entries, render) {
|
|
7
3
|
const lines = [];
|
|
8
4
|
let previousEpoch = null;
|
|
@@ -15,19 +11,11 @@ export function withRestartDividers(entries, render) {
|
|
|
15
11
|
}
|
|
16
12
|
return lines.join("\n");
|
|
17
13
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Silence here is the failure mode: a capped, truncated view is otherwise
|
|
20
|
-
* indistinguishable from a complete one.
|
|
21
|
-
*/
|
|
22
14
|
export function evictionNotice(droppedCount, envVar) {
|
|
23
15
|
if (droppedCount <= 0)
|
|
24
16
|
return "";
|
|
25
17
|
return `\n\n[${droppedCount.toLocaleString("en-US")} older entries evicted — raise ${envVar} to retain more]`;
|
|
26
18
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Defaults to undefined (no filter) so pre-restart data is visible by default —
|
|
29
|
-
* hiding it would reintroduce the exact symptom this feature fixes.
|
|
30
|
-
*/
|
|
31
19
|
export function resolveEpochFilter(epoch, device) {
|
|
32
20
|
if (epoch === undefined || epoch === "all")
|
|
33
21
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochRender.js","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"epochRender.js","sourceRoot":"","sources":["../../src/core/epochRender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQhD,MAAM,UAAU,mBAAmB,CAC/B,OAAY,EACZ,MAA4B;IAE5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,YAAoB,EAAE,MAAc;IAC/D,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,QAAQ,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,kCAAkC,MAAM,kBAAkB,CAAC;AAClH,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAAC,KAAiB,EAAE,MAAe;IACjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -1,30 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error Screen Parser
|
|
3
|
-
*
|
|
4
|
-
* Parses React Native error screens from OCR text to extract structured error information.
|
|
5
|
-
* Used as fallback when CDP connection cannot be established due to bundle errors.
|
|
6
|
-
*/
|
|
7
1
|
import { BundleError } from "./bundle.js";
|
|
8
|
-
/**
|
|
9
|
-
* Result of parsing an error screen
|
|
10
|
-
*/
|
|
11
2
|
export interface ParsedErrorScreen {
|
|
12
3
|
found: boolean;
|
|
13
4
|
error?: BundleError;
|
|
14
5
|
rawText?: string;
|
|
15
6
|
}
|
|
16
|
-
/**
|
|
17
|
-
* Parse OCR text from a React Native error screen (red screen of death)
|
|
18
|
-
*
|
|
19
|
-
* Common error formats:
|
|
20
|
-
* - "Unable to resolve \"@/module\" from \"path/to/file.ts\""
|
|
21
|
-
* - "SyntaxError: ..."
|
|
22
|
-
* - "TransformError: ..."
|
|
23
|
-
* - "Error: ..."
|
|
24
|
-
*/
|
|
25
7
|
export declare function parseErrorScreenText(ocrText: string): ParsedErrorScreen;
|
|
26
|
-
/**
|
|
27
|
-
* Format parsed error for display
|
|
28
|
-
*/
|
|
29
8
|
export declare function formatParsedError(parsed: ParsedErrorScreen): string;
|
|
30
9
|
//# sourceMappingURL=errorScreenParser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorScreenParser.d.ts","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errorScreenParser.d.ts","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CA2FvE;AAoGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAgCnE"}
|
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error Screen Parser
|
|
3
|
-
*
|
|
4
|
-
* Parses React Native error screens from OCR text to extract structured error information.
|
|
5
|
-
* Used as fallback when CDP connection cannot be established due to bundle errors.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Parse OCR text from a React Native error screen (red screen of death)
|
|
9
|
-
*
|
|
10
|
-
* Common error formats:
|
|
11
|
-
* - "Unable to resolve \"@/module\" from \"path/to/file.ts\""
|
|
12
|
-
* - "SyntaxError: ..."
|
|
13
|
-
* - "TransformError: ..."
|
|
14
|
-
* - "Error: ..."
|
|
15
|
-
*/
|
|
16
1
|
export function parseErrorScreenText(ocrText) {
|
|
17
2
|
if (!ocrText || ocrText.trim().length === 0) {
|
|
18
3
|
return { found: false };
|
|
19
4
|
}
|
|
20
5
|
const normalizedText = normalizeOcrText(ocrText);
|
|
21
|
-
// Check if this looks like an error screen
|
|
22
6
|
if (!looksLikeErrorScreen(normalizedText)) {
|
|
23
7
|
return { found: false, rawText: ocrText };
|
|
24
8
|
}
|
|
@@ -27,23 +11,18 @@ export function parseErrorScreenText(ocrText) {
|
|
|
27
11
|
type: "other",
|
|
28
12
|
message: ""
|
|
29
13
|
};
|
|
30
|
-
// Try to parse different error types
|
|
31
|
-
// 1. Module resolution errors: "Unable to resolve \"module\" from \"file\""
|
|
32
14
|
const resolutionMatch = normalizedText.match(/unable\s+to\s+resolve\s+["']([^"']+)["']\s+from\s+["']([^"']+)["']/i);
|
|
33
15
|
if (resolutionMatch) {
|
|
34
16
|
error.type = "resolution";
|
|
35
17
|
error.message = `Unable to resolve "${resolutionMatch[1]}"`;
|
|
36
18
|
error.file = resolutionMatch[2];
|
|
37
|
-
// Try to extract import stack
|
|
38
19
|
error.importStack = extractImportStack(normalizedText);
|
|
39
20
|
return { found: true, error, rawText: ocrText };
|
|
40
21
|
}
|
|
41
|
-
// 2. Syntax errors
|
|
42
22
|
const syntaxMatch = normalizedText.match(/syntax\s*error[:\s]+(.+?)(?:\n|$)/i);
|
|
43
23
|
if (syntaxMatch) {
|
|
44
24
|
error.type = "syntax";
|
|
45
25
|
error.message = `SyntaxError: ${syntaxMatch[1].trim()}`;
|
|
46
|
-
// Try to extract file location
|
|
47
26
|
const locationInfo = extractFileLocation(normalizedText);
|
|
48
27
|
if (locationInfo) {
|
|
49
28
|
error.file = locationInfo.file;
|
|
@@ -52,7 +31,6 @@ export function parseErrorScreenText(ocrText) {
|
|
|
52
31
|
}
|
|
53
32
|
return { found: true, error, rawText: ocrText };
|
|
54
33
|
}
|
|
55
|
-
// 3. Transform errors (Babel/Metro transforms)
|
|
56
34
|
const transformMatch = normalizedText.match(/transform\s*error[:\s]+(.+?)(?:\n|$)/i);
|
|
57
35
|
if (transformMatch) {
|
|
58
36
|
error.type = "transform";
|
|
@@ -65,7 +43,6 @@ export function parseErrorScreenText(ocrText) {
|
|
|
65
43
|
}
|
|
66
44
|
return { found: true, error, rawText: ocrText };
|
|
67
45
|
}
|
|
68
|
-
// 4. Generic error pattern: "Error: message"
|
|
69
46
|
const errorMatch = normalizedText.match(/error[:\s]+(.+?)(?:\n|$)/i);
|
|
70
47
|
if (errorMatch) {
|
|
71
48
|
error.message = errorMatch[1].trim();
|
|
@@ -77,33 +54,22 @@ export function parseErrorScreenText(ocrText) {
|
|
|
77
54
|
}
|
|
78
55
|
return { found: true, error, rawText: ocrText };
|
|
79
56
|
}
|
|
80
|
-
// 5. Fallback: use the entire text as the error message
|
|
81
|
-
// Truncate if too long
|
|
82
57
|
const maxLength = 500;
|
|
83
58
|
error.message = normalizedText.length > maxLength
|
|
84
59
|
? normalizedText.substring(0, maxLength) + "..."
|
|
85
60
|
: normalizedText;
|
|
86
61
|
return { found: true, error, rawText: ocrText };
|
|
87
62
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Normalize OCR text by fixing common OCR errors and standardizing whitespace
|
|
90
|
-
*/
|
|
91
63
|
function normalizeOcrText(text) {
|
|
92
64
|
return text
|
|
93
|
-
// Replace multiple whitespace with single space
|
|
94
65
|
.replace(/\s+/g, " ")
|
|
95
|
-
// Fix common OCR misreadings
|
|
96
66
|
.replace(/[|l]mport/gi, "import")
|
|
97
67
|
.replace(/reso[|l]ve/gi, "resolve")
|
|
98
68
|
.replace(/unab[|l]e/gi, "unable")
|
|
99
69
|
.replace(/modu[|l]e/gi, "module")
|
|
100
|
-
// Normalize quotes
|
|
101
70
|
.replace(/[""'']/g, '"')
|
|
102
71
|
.trim();
|
|
103
72
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Check if OCR text looks like a React Native error screen
|
|
106
|
-
*/
|
|
107
73
|
function looksLikeErrorScreen(text) {
|
|
108
74
|
const lowerText = text.toLowerCase();
|
|
109
75
|
const errorIndicators = [
|
|
@@ -125,11 +91,7 @@ function looksLikeErrorScreen(text) {
|
|
|
125
91
|
];
|
|
126
92
|
return errorIndicators.some(indicator => lowerText.includes(indicator));
|
|
127
93
|
}
|
|
128
|
-
/**
|
|
129
|
-
* Extract file location (file:line:column) from text
|
|
130
|
-
*/
|
|
131
94
|
function extractFileLocation(text) {
|
|
132
|
-
// Pattern: /path/to/file.tsx:123:45 or /path/to/file.tsx:123
|
|
133
95
|
const locationMatch = text.match(/([a-zA-Z0-9_\-./\\@]+\.(tsx?|jsx?|mjs|cjs)):(\d+)(?::(\d+))?/i);
|
|
134
96
|
if (locationMatch) {
|
|
135
97
|
return {
|
|
@@ -138,36 +100,24 @@ function extractFileLocation(text) {
|
|
|
138
100
|
column: locationMatch[4] ? parseInt(locationMatch[4], 10) : undefined
|
|
139
101
|
};
|
|
140
102
|
}
|
|
141
|
-
// Try to find just a file path
|
|
142
103
|
const fileMatch = text.match(/([a-zA-Z0-9_\-./\\@]+\.(tsx?|jsx?|mjs|cjs))/i);
|
|
143
104
|
if (fileMatch) {
|
|
144
105
|
return { file: fileMatch[1] };
|
|
145
106
|
}
|
|
146
107
|
return null;
|
|
147
108
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Extract import stack from error text
|
|
150
|
-
*/
|
|
151
109
|
function extractImportStack(text) {
|
|
152
110
|
const stack = [];
|
|
153
|
-
// Look for patterns like:
|
|
154
|
-
// - "import from file.tsx"
|
|
155
|
-
// - "app/hooks/useAuth.ts"
|
|
156
|
-
// - file references in the text
|
|
157
111
|
const filePattern = /([a-zA-Z0-9_\-./\\@]+\.(tsx?|jsx?|mjs|cjs))/gi;
|
|
158
112
|
let match;
|
|
159
113
|
while ((match = filePattern.exec(text)) !== null) {
|
|
160
114
|
const file = match[1];
|
|
161
|
-
// Avoid duplicates
|
|
162
115
|
if (!stack.includes(file)) {
|
|
163
116
|
stack.push(file);
|
|
164
117
|
}
|
|
165
118
|
}
|
|
166
119
|
return stack.length > 0 ? stack : undefined;
|
|
167
120
|
}
|
|
168
|
-
/**
|
|
169
|
-
* Format parsed error for display
|
|
170
|
-
*/
|
|
171
121
|
export function formatParsedError(parsed) {
|
|
172
122
|
if (!parsed.found || !parsed.error) {
|
|
173
123
|
return "No error detected in screenshot.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorScreenParser.js","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errorScreenParser.js","sourceRoot":"","sources":["../../src/core/errorScreenParser.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAGjD,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GAAgB;QACvB,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;KACd,CAAC;IAKF,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CACxC,qEAAqE,CACxE,CAAC;IACF,IAAI,eAAe,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;QAC1B,KAAK,CAAC,OAAO,GAAG,sBAAsB,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5D,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAGhC,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAEvD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;IAGD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC/E,IAAI,WAAW,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;QACtB,KAAK,CAAC,OAAO,GAAG,gBAAgB,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAGxD,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,YAAY,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;IAGD,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACrF,IAAI,cAAc,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;QACzB,KAAK,CAAC,OAAO,GAAG,mBAAmB,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAE9D,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,YAAY,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;IAGD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,IAAI,UAAU,EAAE,CAAC;QACb,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAErC,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,YAAY,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YAC/B,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACpD,CAAC;IAID,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC,MAAM,GAAG,SAAS;QAC7C,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,KAAK;QAChD,CAAC,CAAC,cAAc,CAAC;IAErB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC;AAKD,SAAS,gBAAgB,CAAC,IAAY;IAClC,OAAO,IAAI;SAEN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SAEpB,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;SAChC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC;SAClC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;SAChC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC;SAEhC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,IAAI,EAAE,CAAC;AAChB,CAAC;AAKD,SAAS,oBAAoB,CAAC,IAAY;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,MAAM,eAAe,GAAG;QACpB,OAAO;QACP,mBAAmB;QACnB,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,gCAAgC;QAChC,qBAAqB;QACrB,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;QACpB,cAAc;QACd,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;KACT,CAAC;IAEF,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5E,CAAC;AAKD,SAAS,mBAAmB,CAAC,IAAY;IAErC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC5B,+DAA+D,CAClE,CAAC;IAEF,IAAI,aAAa,EAAE,CAAC;QAChB,OAAO;YACH,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;YACtB,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SACxE,CAAC;IACN,CAAC;IAGD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAKD,SAAS,kBAAkB,CAAC,IAAY;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAO3B,MAAM,WAAW,GAAG,+CAA+C,CAAC;IACpE,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAKD,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IACvD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAExC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,QAAQ,GAAG,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,QAAQ,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,QAAQ,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAEvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
package/build/core/errors.d.ts
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marker class for errors caused by invalid agent input (wrong device name,
|
|
3
|
-
* missing required predicate, ambiguous match, etc). H2 (Step 9 in the
|
|
4
|
-
* 2026-05-15 plan): the top-level catch in index.ts skips PostHog
|
|
5
|
-
* captureException for these so error tracking surfaces real product bugs,
|
|
6
|
-
* not validation noise (~13% of recent dashboard volume).
|
|
7
|
-
*
|
|
8
|
-
* The trade-off vs regex-matching the message: this is self-documenting at
|
|
9
|
-
* the throw site and survives message reformatting / translation.
|
|
10
|
-
*/
|
|
11
1
|
export declare class UserInputError extends Error {
|
|
12
|
-
/**
|
|
13
|
-
* Optional low-cardinality tag (e.g. "device_mismatch") forwarded to
|
|
14
|
-
* telemetry's error-context column. Lets the dashboard cluster validation
|
|
15
|
-
* failures by cause instead of regex-matching free-form messages.
|
|
16
|
-
*/
|
|
17
2
|
readonly context?: string;
|
|
18
3
|
constructor(message: string, context?: string);
|
|
19
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAUA,qBAAa,cAAe,SAAQ,KAAK;IAMrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAKhD"}
|
package/build/core/errors.js
CHANGED
|
@@ -1,19 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Marker class for errors caused by invalid agent input (wrong device name,
|
|
3
|
-
* missing required predicate, ambiguous match, etc). H2 (Step 9 in the
|
|
4
|
-
* 2026-05-15 plan): the top-level catch in index.ts skips PostHog
|
|
5
|
-
* captureException for these so error tracking surfaces real product bugs,
|
|
6
|
-
* not validation noise (~13% of recent dashboard volume).
|
|
7
|
-
*
|
|
8
|
-
* The trade-off vs regex-matching the message: this is self-documenting at
|
|
9
|
-
* the throw site and survives message reformatting / translation.
|
|
10
|
-
*/
|
|
11
1
|
export class UserInputError extends Error {
|
|
12
|
-
/**
|
|
13
|
-
* Optional low-cardinality tag (e.g. "device_mismatch") forwarded to
|
|
14
|
-
* telemetry's error-context column. Lets the dashboard cluster validation
|
|
15
|
-
* failures by cause instead of regex-matching free-form messages.
|
|
16
|
-
*/
|
|
17
2
|
context;
|
|
18
3
|
constructor(message, context) {
|
|
19
4
|
super(message);
|
package/build/core/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAM5B,OAAO,CAAU;IAE1B,YAAY,OAAe,EAAE,OAAgB;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ"}
|
|
@@ -5,14 +5,5 @@ export type EscapeResult = {
|
|
|
5
5
|
ok: false;
|
|
6
6
|
reason: string;
|
|
7
7
|
};
|
|
8
|
-
/**
|
|
9
|
-
* Walk a JS source string and rewrite non-ASCII-printable code points that
|
|
10
|
-
* occur inside string literals (single quote, double quote, template literal
|
|
11
|
-
* cooked body) to \uXXXX or \u{XXXXX} escape sequences. Code in regular
|
|
12
|
-
* expression bodies, comments, identifiers, and template-literal `${...}`
|
|
13
|
-
* substitution expressions is left untouched.
|
|
14
|
-
*
|
|
15
|
-
* Returns a structured error on unbalanced quotes / unterminated literals.
|
|
16
|
-
*/
|
|
17
8
|
export declare function escapeNonAsciiInStringLiterals(src: string): EscapeResult;
|
|
18
9
|
//# sourceMappingURL=escapeNonAscii.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escapeNonAscii.d.ts","sourceRoot":"","sources":["../../src/core/escapeNonAscii.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"escapeNonAscii.d.ts","sourceRoot":"","sources":["../../src/core/escapeNonAscii.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAqC5F,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAuVxE"}
|