@scalebun-release/react-native 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/LICENSE +21 -0
- package/README.md +154 -0
- package/android/build.gradle +94 -0
- package/android/consumer-rules.pro +28 -0
- package/android/src/androidTest/java/com/scalebun/rn/ota/ScaleBunOtaVerifierInstrumentedTest.kt +112 -0
- package/android/src/main/AndroidManifest.xml +14 -0
- package/android/src/main/java/com/scalebun/core/crash/CrashStorage.kt +155 -0
- package/android/src/main/java/com/scalebun/core/crash/NativeCrashHandler.kt +93 -0
- package/android/src/main/java/com/scalebun/core/performance/ANRWatchdog.kt +100 -0
- package/android/src/main/java/com/scalebun/core/performance/AppStartCollector.kt +180 -0
- package/android/src/main/java/com/scalebun/core/performance/FrameMetricsCollector.kt +230 -0
- package/android/src/main/java/com/scalebun/core/performance/PerformanceCore.kt +165 -0
- package/android/src/main/java/com/scalebun/profiler/ProfilerModule.kt +398 -0
- package/android/src/main/java/com/scalebun/profiler/ProfilerPackage.kt +24 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/CpuCollector.kt +161 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/IncidentDetector.kt +223 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/MemoryCollector.kt +157 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/RenderCollector.kt +194 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/SamplerScheduler.kt +218 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/ThreadCollector.kt +142 -0
- package/android/src/main/java/com/scalebun/replaysdk/ReplaySdkModule.kt +1117 -0
- package/android/src/main/java/com/scalebun/replaysdk/ReplaySdkPackage.kt +24 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/CaptureReason.kt +47 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/FrameCaptureManager.kt +574 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/FrameCaptureScheduler.kt +187 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/UiStabilityDetector.kt +214 -0
- package/android/src/main/java/com/scalebun/replaysdk/core/ReplayConfig.kt +144 -0
- package/android/src/main/java/com/scalebun/replaysdk/core/ReplayLogger.kt +31 -0
- package/android/src/main/java/com/scalebun/replaysdk/core/SessionIdGenerator.kt +15 -0
- package/android/src/main/java/com/scalebun/replaysdk/models/ReplayModels.kt +94 -0
- package/android/src/main/java/com/scalebun/replaysdk/outbox/NativeOutbox.kt +574 -0
- package/android/src/main/java/com/scalebun/replaysdk/outbox/OutboxUploader.kt +559 -0
- package/android/src/main/java/com/scalebun/replaysdk/privacy/PrivacyMaskProcessor.kt +126 -0
- package/android/src/main/java/com/scalebun/replaysdk/session/SessionManager.kt +322 -0
- package/android/src/main/java/com/scalebun/replaysdk/storage/ReplayStorage.kt +136 -0
- package/android/src/main/java/com/scalebun/replaysdk/timeline/TimelineCollector.kt +28 -0
- package/android/src/main/java/com/scalebun/replaysdk/tracking/InteractionTracker.kt +470 -0
- package/android/src/main/java/com/scalebun/replaysdk/tracking/ScreenTracker.kt +20 -0
- package/android/src/main/java/com/scalebun/replaysdk/tracking/ScrollContextProbe.kt +188 -0
- package/android/src/main/java/com/scalebun/replaysdk/transport/ReplayTransport.kt +99 -0
- package/android/src/main/java/com/scalebun/replaysdk/voice/VoiceRecorder.kt +121 -0
- package/android/src/main/java/com/scalebun/replaysdk/voice/VoiceTranscriber.kt +170 -0
- package/android/src/main/java/com/scalebun/rn/ScaleBunPackage.kt +113 -0
- package/android/src/main/java/com/scalebun/rn/crash/ScaleBunCrashModule.kt +188 -0
- package/android/src/main/java/com/scalebun/rn/crash/ScaleBunCrashPackage.kt +22 -0
- package/android/src/main/java/com/scalebun/rn/engage/ScaleBunEngageModule.kt +579 -0
- package/android/src/main/java/com/scalebun/rn/engage/ScaleBunEngagePackage.kt +22 -0
- package/android/src/main/java/com/scalebun/rn/engage/ScaleBunNotificationPresenter.kt +110 -0
- package/android/src/main/java/com/scalebun/rn/ota/BsPatch.kt +240 -0
- package/android/src/main/java/com/scalebun/rn/ota/BundleDownloader.kt +195 -0
- package/android/src/main/java/com/scalebun/rn/ota/DeviceIntegrity.kt +81 -0
- package/android/src/main/java/com/scalebun/rn/ota/DownloadFailure.kt +55 -0
- package/android/src/main/java/com/scalebun/rn/ota/OtaProtocol.kt +244 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaKeyRegistry.kt +100 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaModule.kt +683 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaReleaseVerifier.kt +136 -0
- package/android/src/main/java/com/scalebun/rn/ota/SlotManager.kt +578 -0
- package/android/src/main/java/com/scalebun/rn/ota/TlsPinning.kt +118 -0
- package/android/src/main/java/com/scalebun/rn/performance/PerformanceModule.kt +217 -0
- package/android/src/main/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule.kt +77 -0
- package/android/src/main/java/com/scalebun/rn/storage/ScaleBunStorageModule.kt +68 -0
- package/android/src/main/java/com/scalebun/storage/KvFileStore.kt +174 -0
- package/android/src/newarch/java/com/scalebun/profiler/ProfilerSpec.kt +12 -0
- package/android/src/newarch/java/com/scalebun/replaysdk/ReplaySdkSpec.kt +12 -0
- package/android/src/newarch/java/com/scalebun/rn/crash/ScaleBunCrashSpec.kt +15 -0
- package/android/src/newarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +16 -0
- package/android/src/newarch/java/com/scalebun/rn/performance/PerformanceSpec.kt +12 -0
- package/android/src/newarch/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.kt +14 -0
- package/android/src/newarch/java/com/scalebun/rn/storage/ScaleBunStorageSpec.kt +16 -0
- package/android/src/oldarch/java/com/scalebun/profiler/ProfilerSpec.kt +34 -0
- package/android/src/oldarch/java/com/scalebun/replaysdk/ReplaySdkSpec.kt +77 -0
- package/android/src/oldarch/java/com/scalebun/rn/crash/ScaleBunCrashSpec.kt +40 -0
- package/android/src/oldarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +42 -0
- package/android/src/oldarch/java/com/scalebun/rn/performance/PerformanceSpec.kt +27 -0
- package/android/src/oldarch/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.kt +18 -0
- package/android/src/oldarch/java/com/scalebun/rn/storage/ScaleBunStorageSpec.kt +26 -0
- package/bin/lib/androidCodemod.js +370 -0
- package/bin/lib/iosCodemod.js +343 -0
- package/bin/scalebun.js +1004 -0
- package/dist/scalebun.full.js +37348 -0
- package/dist/scalebun.slim.js +34137 -0
- package/ios/Capture/InteractionTracker.swift +237 -0
- package/ios/Capture/PrivacyMaskProcessor.swift +158 -0
- package/ios/Capture/ScreenshotCaptureManager.swift +398 -0
- package/ios/Capture/WindowResolver.swift +63 -0
- package/ios/Core/DeviceIdentity.swift +50 -0
- package/ios/Core/ReplayConfig.swift +100 -0
- package/ios/Core/ReplayLogger.swift +22 -0
- package/ios/Core/SessionIdGenerator.swift +18 -0
- package/ios/Crash/ScaleBunCrashBridge.mm +74 -0
- package/ios/Crash/ScaleBunCrashHandler.swift +84 -0
- package/ios/Crash/ScaleBunCrashModule.swift +98 -0
- package/ios/Crash/ScaleBunCrashSignalBridge.h +49 -0
- package/ios/Crash/ScaleBunCrashSignalBridge.m +296 -0
- package/ios/Crash/ScaleBunCrashSignalStress.c +137 -0
- package/ios/Crash/ScaleBunCrashStorage.swift +121 -0
- package/ios/Crash/ScaleBunExceptionChain.swift +71 -0
- package/ios/CrashTests/ScaleBunExceptionChainTests.swift +144 -0
- package/ios/Engage/ScaleBunEngageBridge.m +32 -0
- package/ios/Engage/ScaleBunEngageModule.swift +250 -0
- package/ios/Engage/ScaleBunPushNotificationCenter.swift +185 -0
- package/ios/Ota/BsPatch.swift +203 -0
- package/ios/Ota/BundleDownloader.swift +249 -0
- package/ios/Ota/DeviceIntegrity.swift +112 -0
- package/ios/Ota/DownloadFailure.swift +56 -0
- package/ios/Ota/OtaProtocol.swift +246 -0
- package/ios/Ota/OtaSlotManager.swift +613 -0
- package/ios/Ota/ScaleBunOtaBridge.mm +92 -0
- package/ios/Ota/ScaleBunOtaEventsModule.swift +61 -0
- package/ios/Ota/ScaleBunOtaKeyRegistry.swift +147 -0
- package/ios/Ota/ScaleBunOtaModule.swift +587 -0
- package/ios/Ota/ScaleBunOtaReleaseVerifier.swift +119 -0
- package/ios/Ota/TlsPinning.swift +222 -0
- package/ios/OtaTests/DownloadFailureTests.swift +78 -0
- package/ios/OtaTests/ScaleBunOtaVerifierTests.swift +548 -0
- package/ios/Outbox/NativeOutbox.swift +632 -0
- package/ios/Outbox/OutboxUploader.swift +578 -0
- package/ios/Performance/ScaleBunPerformanceBridge.m +32 -0
- package/ios/Performance/ScaleBunPerformanceModule.swift +290 -0
- package/ios/PrivacyInfo.xcprivacy +97 -0
- package/ios/Profiler/ScaleBunProfilerBridge.m +55 -0
- package/ios/Profiler/ScaleBunProfilerModule.swift +966 -0
- package/ios/ReplaySdk-Bridging-Header.h +2 -0
- package/ios/ReplaySdk.swift +793 -0
- package/ios/ReplaySdkBridge.m +97 -0
- package/ios/Session/SessionManager.swift +273 -0
- package/ios/Skan/ScaleBunSkanBridge.m +14 -0
- package/ios/Skan/ScaleBunSkanModule.swift +61 -0
- package/ios/Storage/ReplayStorage.swift +61 -0
- package/ios/Storage/ScaleBunKvFileStore.swift +125 -0
- package/ios/Storage/ScaleBunStorageBridge.mm +72 -0
- package/ios/Storage/ScaleBunStorageModule.swift +57 -0
- package/ios/Transport/ReplayTransport.swift +70 -0
- package/ios/VoiceRecorder.swift +145 -0
- package/lib/commonjs/analytics/EventTracker.js +598 -0
- package/lib/commonjs/analytics/automaticEvents.js +71 -0
- package/lib/commonjs/analytics/batching.js +64 -0
- package/lib/commonjs/analytics/eventLane.js +55 -0
- package/lib/commonjs/analytics/revenue.js +125 -0
- package/lib/commonjs/analytics/subscription.js +94 -0
- package/lib/commonjs/bootstrap/FeatureRegistry.js +86 -0
- package/lib/commonjs/bootstrap/SDKBootstrapper.js +748 -0
- package/lib/commonjs/bucketing/fnv1a32.js +45 -0
- package/lib/commonjs/compat/codepush.js +153 -0
- package/lib/commonjs/config/ConfigManager.js +238 -0
- package/lib/commonjs/config/configTypes.js +16 -0
- package/lib/commonjs/config/otaPolicyState.js +85 -0
- package/lib/commonjs/config/quotaState.js +435 -0
- package/lib/commonjs/core/architecture.js +45 -0
- package/lib/commonjs/core/clock/now.js +13 -0
- package/lib/commonjs/core/config/defaults.js +2 -0
- package/lib/commonjs/core/config/schema.js +512 -0
- package/lib/commonjs/core/constants/endpoints.js +19 -0
- package/lib/commonjs/core/constants/protocol.js +31 -0
- package/lib/commonjs/core/constants/timings.js +39 -0
- package/lib/commonjs/core/constants/version.js +18 -0
- package/lib/commonjs/core/context/app.js +2 -0
- package/lib/commonjs/core/context/device.js +155 -0
- package/lib/commonjs/core/context/session.js +2 -0
- package/lib/commonjs/core/context/user.js +2 -0
- package/lib/commonjs/core/contracts/IFeature.js +2 -0
- package/lib/commonjs/core/di/container.js +29 -0
- package/lib/commonjs/core/encoding/base64.js +50 -0
- package/lib/commonjs/core/id/deviceId.js +52 -0
- package/lib/commonjs/core/id/installationId.js +55 -0
- package/lib/commonjs/core/id/sessionId.js +2 -0
- package/lib/commonjs/core/lifecycle/appLifecycle.js +31 -0
- package/lib/commonjs/core/lifecycle/crashSafe.js +33 -0
- package/lib/commonjs/core/logger/errorClassification.js +107 -0
- package/lib/commonjs/core/logger/internalLogger.js +63 -0
- package/lib/commonjs/core/logger/levels.js +2 -0
- package/lib/commonjs/crypto/hmacSha256.js +132 -0
- package/lib/commonjs/debug/bootstrap.js +429 -0
- package/lib/commonjs/debug/commands.js +732 -0
- package/lib/commonjs/debug/configBuilder.js +70 -0
- package/lib/commonjs/debug/exportBridge.js +155 -0
- package/lib/commonjs/debug/hostResolver.js +42 -0
- package/lib/commonjs/debug/index.js +141 -0
- package/lib/commonjs/debug/metrics.js +39 -0
- package/lib/commonjs/debug/perf.js +186 -0
- package/lib/commonjs/debug/perfWiring.js +109 -0
- package/lib/commonjs/debug/protocol.js +121 -0
- package/lib/commonjs/debug/redaction.js +422 -0
- package/lib/commonjs/debug/replayWiring.js +149 -0
- package/lib/commonjs/debug/screenTracking.js +60 -0
- package/lib/commonjs/debug/sessionWiring.js +48 -0
- package/lib/commonjs/debug/stream.js +542 -0
- package/lib/commonjs/debug/transport.js +368 -0
- package/lib/commonjs/features/bugreport/BugReportFeature.js +112 -0
- package/lib/commonjs/features/bugreport/buildPayload.js +97 -0
- package/lib/commonjs/features/bugreport/index.js +2 -0
- package/lib/commonjs/features/crash/CrashFeature.js +86 -0
- package/lib/commonjs/features/crash/CrashReporter.js +160 -0
- package/lib/commonjs/features/crash/NativeCrashFeature.js +42 -0
- package/lib/commonjs/features/crash/capture.js +48 -0
- package/lib/commonjs/features/crash/globalHandler.js +41 -0
- package/lib/commonjs/features/crash/index.js +14 -0
- package/lib/commonjs/features/crash/nativeCrashBridge.js +361 -0
- package/lib/commonjs/features/crash/rejectionHandler.js +180 -0
- package/lib/commonjs/features/crash/scrubCrash.js +158 -0
- package/lib/commonjs/features/engage/EngageAnchor.js +132 -0
- package/lib/commonjs/features/engage/EngageArchetypeRenderers.js +4292 -0
- package/lib/commonjs/features/engage/EngageInAppView.js +2670 -0
- package/lib/commonjs/features/engage/EngageInlinePlacement.js +133 -0
- package/lib/commonjs/features/engage/EngagePromptProvider.js +1063 -0
- package/lib/commonjs/features/engage/EngagePromptView.js +1252 -0
- package/lib/commonjs/features/engage/EngageTransport.js +608 -0
- package/lib/commonjs/features/engage/EngageVariantContent.js +1778 -0
- package/lib/commonjs/features/engage/__test-support__/reactNativeStub.js +54 -0
- package/lib/commonjs/features/engage/attachmentCapture.js +48 -0
- package/lib/commonjs/features/engage/captureVoiceAttachment.js +88 -0
- package/lib/commonjs/features/engage/engageCoachmarkTour.js +106 -0
- package/lib/commonjs/features/engage/engageGameLogic.js +308 -0
- package/lib/commonjs/features/engage/engageMediaSizing.js +60 -0
- package/lib/commonjs/features/engage/engageMultiStepSheet.js +43 -0
- package/lib/commonjs/features/engage/engageOutcome.js +118 -0
- package/lib/commonjs/features/engage/engagePushTokenBridge.js +72 -0
- package/lib/commonjs/features/engage/engageShakeBridge.js +62 -0
- package/lib/commonjs/features/engage/engageSignals.js +39 -0
- package/lib/commonjs/features/engage/engageStoreReviewBridge.js +49 -0
- package/lib/commonjs/features/engage/engageTestSeenStore.js +99 -0
- package/lib/commonjs/features/engage/engageThrottle.js +404 -0
- package/lib/commonjs/features/engage/engageTriggerEngine.js +365 -0
- package/lib/commonjs/features/engage/engageTypes.js +116 -0
- package/lib/commonjs/features/engage/engageVariantResolver.js +143 -0
- package/lib/commonjs/features/engage/engageWindowInsets.js +98 -0
- package/lib/commonjs/features/engage/gestureTriggerDetector.js +85 -0
- package/lib/commonjs/features/engage/transcription/TranscriptionProvider.js +55 -0
- package/lib/commonjs/features/install-referrer/installReferrer.js +113 -0
- package/lib/commonjs/features/journey/ScaleBunDebugRoot.js +1038 -0
- package/lib/commonjs/features/journey/ScaleBunFlatList.js +39 -0
- package/lib/commonjs/features/journey/ScaleBunImpression.js +113 -0
- package/lib/commonjs/features/journey/ScaleBunScrollView.js +102 -0
- package/lib/commonjs/features/journey/ScaleBunSectionList.js +39 -0
- package/lib/commonjs/features/journey/autoInstrumentScroll.js +161 -0
- package/lib/commonjs/features/journey/calibrationContext.js +42 -0
- package/lib/commonjs/features/journey/gestureBuffer.js +63 -0
- package/lib/commonjs/features/journey/gestureDetector.js +176 -0
- package/lib/commonjs/features/journey/impression.js +93 -0
- package/lib/commonjs/features/journey/interactionProtocol.js +168 -0
- package/lib/commonjs/features/journey/journeyManager.js +466 -0
- package/lib/commonjs/features/journey/journeyTypes.js +55 -0
- package/lib/commonjs/features/journey/nativeScroll.js +85 -0
- package/lib/commonjs/features/journey/navDetector.js +161 -0
- package/lib/commonjs/features/journey/screenshotHelper.js +136 -0
- package/lib/commonjs/features/journey/scrollContext.js +154 -0
- package/lib/commonjs/features/journey/targetGeometry.js +185 -0
- package/lib/commonjs/features/journey/targetRegistry.js +53 -0
- package/lib/commonjs/features/journey/touchTarget.js +249 -0
- package/lib/commonjs/features/journey/uiState.js +188 -0
- package/lib/commonjs/features/navigation/AutoScreenDetector.js +607 -0
- package/lib/commonjs/features/network/NetworkFeature.js +216 -0
- package/lib/commonjs/features/network/index.js +23 -0
- package/lib/commonjs/features/network/thirdParty.js +151 -0
- package/lib/commonjs/features/ota/OtaEventEmitter.js +129 -0
- package/lib/commonjs/features/ota/OtaOrchestrator.js +1309 -0
- package/lib/commonjs/features/ota/OtaTypes.js +6 -0
- package/lib/commonjs/features/ota/deviceAttributes.js +48 -0
- package/lib/commonjs/features/ota/environment.js +172 -0
- package/lib/commonjs/features/ota/geoCountry.js +93 -0
- package/lib/commonjs/features/ota/retry.js +96 -0
- package/lib/commonjs/features/ota/signedDownload.js +187 -0
- package/lib/commonjs/features/ota/useOtaUpdate.js +106 -0
- package/lib/commonjs/features/performance/PerformanceFeature.js +649 -0
- package/lib/commonjs/features/performance/collectors/AppLaunchCollector.js +122 -0
- package/lib/commonjs/features/performance/collectors/AutoScreenLoadCollector.js +232 -0
- package/lib/commonjs/features/performance/collectors/CustomTraceCollector.js +99 -0
- package/lib/commonjs/features/performance/collectors/FrameMetricsCollector.js +184 -0
- package/lib/commonjs/features/performance/collectors/JsStallCollector.js +165 -0
- package/lib/commonjs/features/performance/collectors/NetworkPerfCollector.js +59 -0
- package/lib/commonjs/features/performance/collectors/ScreenLoadCollector.js +78 -0
- package/lib/commonjs/features/performance/collectors/UiHangCollector.js +78 -0
- package/lib/commonjs/features/performance/config.js +58 -0
- package/lib/commonjs/features/performance/getNativePerformanceModule.js +44 -0
- package/lib/commonjs/features/performance/index.js +58 -0
- package/lib/commonjs/features/performance/metrics/MetricsEngine.js +148 -0
- package/lib/commonjs/features/performance/models.js +48 -0
- package/lib/commonjs/features/performance/transport/PerformanceTransport.js +168 -0
- package/lib/commonjs/features/profiler/ProfilerFeature.js +600 -0
- package/lib/commonjs/features/profiler/config.js +151 -0
- package/lib/commonjs/features/profiler/contracts.js +62 -0
- package/lib/commonjs/features/profiler/index.js +40 -0
- package/lib/commonjs/features/profiler/models.js +112 -0
- package/lib/commonjs/features/profiler/transport/ProfilerTransport.js +94 -0
- package/lib/commonjs/features/replay/bridge/adapters/bridgeAdapter.js +203 -0
- package/lib/commonjs/features/replay/bridge/eventEmitter.js +128 -0
- package/lib/commonjs/features/replay/bridge/nativeModule.js +95 -0
- package/lib/commonjs/features/replay/bridge/nativeQuota.js +121 -0
- package/lib/commonjs/features/replay/core/clock/clock.js +47 -0
- package/lib/commonjs/features/replay/core/config/defaults.js +88 -0
- package/lib/commonjs/features/replay/core/config/validator.js +109 -0
- package/lib/commonjs/features/replay/core/env/environmentDetector.js +28 -0
- package/lib/commonjs/features/replay/core/errors/safeCall.js +42 -0
- package/lib/commonjs/features/replay/core/ids/sessionId.js +53 -0
- package/lib/commonjs/features/replay/core/logger/logger.js +36 -0
- package/lib/commonjs/features/replay/core/privacy/privacyTypes.js +34 -0
- package/lib/commonjs/features/replay/core/queue/boundedQueue.js +71 -0
- package/lib/commonjs/features/replay/integrations/alert/alertInstrumentation.js +259 -0
- package/lib/commonjs/features/replay/integrations/logs/consoleIntegration.js +139 -0
- package/lib/commonjs/features/replay/integrations/network/networkAdapter.js +77 -0
- package/lib/commonjs/features/replay/integrations/react-navigation/navigationIntegration.js +88 -0
- package/lib/commonjs/features/replay/integrations/touch/ReplayRoot.js +103 -0
- package/lib/commonjs/features/replay/pipeline/batching/batchManager.js +119 -0
- package/lib/commonjs/features/replay/pipeline/envelope/envelopeBuilder.js +52 -0
- package/lib/commonjs/features/replay/pipeline/retry/retryPolicy.js +53 -0
- package/lib/commonjs/features/replay/pipeline/transport/transportTypes.js +67 -0
- package/lib/commonjs/features/replay/public/api.js +336 -0
- package/lib/commonjs/features/replay/public/enums.js +85 -0
- package/lib/commonjs/features/replay/public/types.js +6 -0
- package/lib/commonjs/features/replay/replay/breadcrumbs/breadcrumbCollector.js +119 -0
- package/lib/commonjs/features/replay/replay/frames/frameModels.js +40 -0
- package/lib/commonjs/features/replay/replay/session/sessionOrchestrator.js +279 -0
- package/lib/commonjs/features/replay/replay/timeline/timelineModels.js +120 -0
- package/lib/commonjs/features/replay/transport/BackendReplayTransport.js +175 -0
- package/lib/commonjs/features/replay/transport/CompositeReplayTransport.js +75 -0
- package/lib/commonjs/features/replay/transport/DesktopReplayTransport.js +124 -0
- package/lib/commonjs/features/replay/transport/ReplayTransport.js +2 -0
- package/lib/commonjs/features/session/BackendSessionAdapter.js +1915 -0
- package/lib/commonjs/features/session/DesktopSessionTransport.js +124 -0
- package/lib/commonjs/features/session/JourneyEventPipeline.js +244 -0
- package/lib/commonjs/features/session/ReplayCaptureManager.js +1253 -0
- package/lib/commonjs/features/session/ScrollTracker.js +147 -0
- package/lib/commonjs/features/session/SessionManager.js +1448 -0
- package/lib/commonjs/features/session/SyncDecisionEngine.js +95 -0
- package/lib/commonjs/features/session/frameLink.js +36 -0
- package/lib/commonjs/features/session/frameScrollState.js +41 -0
- package/lib/commonjs/features/session/index.js +84 -0
- package/lib/commonjs/features/session/nativeCapture.js +53 -0
- package/lib/commonjs/features/session/outboxFrameCapture.js +83 -0
- package/lib/commonjs/features/session/sessionTypes.js +230 -0
- package/lib/commonjs/features/session/viewportPlausibility.js +143 -0
- package/lib/commonjs/features/skan/skanBridge.js +54 -0
- package/lib/commonjs/features/skan/skanConversionManager.js +134 -0
- package/lib/commonjs/index.js +267 -0
- package/lib/commonjs/integrations/fetch/fetchInterceptor.js +174 -0
- package/lib/commonjs/integrations/navigation/screenTracker.js +2 -0
- package/lib/commonjs/integrations/network/bodyCapture.js +336 -0
- package/lib/commonjs/integrations/xhr/xhrInterceptor.js +224 -0
- package/lib/commonjs/metro/composeSourceMap.js +105 -0
- package/lib/commonjs/metro/featureModules.js +131 -0
- package/lib/commonjs/metro/index.js +230 -0
- package/lib/commonjs/metro/optionalDependencyStub.js +6 -0
- package/lib/commonjs/metro/optionalModules.js +31 -0
- package/lib/commonjs/metro/serializerCompose.js +161 -0
- package/lib/commonjs/pipeline/dispatcher/dispatcher.js +28 -0
- package/lib/commonjs/pipeline/envelope/envelope.js +17 -0
- package/lib/commonjs/pipeline/envelope/serializer.js +14 -0
- package/lib/commonjs/pipeline/processors/dedupe.js +2 -0
- package/lib/commonjs/pipeline/processors/enrich.js +16 -0
- package/lib/commonjs/pipeline/processors/sampling.js +2 -0
- package/lib/commonjs/pipeline/processors/sanitize.js +28 -0
- package/lib/commonjs/pipeline/queue/flushQueue.js +107 -0
- package/lib/commonjs/pipeline/queue/memoryQueue.js +31 -0
- package/lib/commonjs/pipeline/queue/persistentQueue.js +342 -0
- package/lib/commonjs/pipeline/queue/queuePolicy.js +2 -0
- package/lib/commonjs/pipeline/scheduler/flushScheduler.js +45 -0
- package/lib/commonjs/pipeline/scheduler/retryPolicy.js +15 -0
- package/lib/commonjs/public/ScaleBunErrorBoundary.js +91 -0
- package/lib/commonjs/public/ScaleBunFacade.js +2044 -0
- package/lib/commonjs/public/ScaleBunProvider.js +62 -0
- package/lib/commonjs/public/typedTracker.js +79 -0
- package/lib/commonjs/public/types.js +6 -0
- package/lib/commonjs/push/PushManager.js +270 -0
- package/lib/commonjs/push/adapters/ManualAdapter.js +86 -0
- package/lib/commonjs/push/adapters/NativeBridgeAdapter.js +131 -0
- package/lib/commonjs/push/adapters/NoopAdapter.js +45 -0
- package/lib/commonjs/push/adapters/RNFirebaseMessagingAdapter.js +248 -0
- package/lib/commonjs/push/adapters/loadMessaging.js +29 -0
- package/lib/commonjs/push/adapters/loadNotifee.js +36 -0
- package/lib/commonjs/push/adapters/selectAdapter.js +153 -0
- package/lib/commonjs/push/detect/capabilities.js +136 -0
- package/lib/commonjs/push/index.js +33 -0
- package/lib/commonjs/push/native/nativeNotifications.js +168 -0
- package/lib/commonjs/push/types.js +2 -0
- package/lib/commonjs/specs/NativeReplaySdk.js +28 -0
- package/lib/commonjs/specs/NativeScaleBunCrash.js +30 -0
- package/lib/commonjs/specs/NativeScaleBunInstallReferrer.js +24 -0
- package/lib/commonjs/specs/NativeScaleBunOta.js +32 -0
- package/lib/commonjs/specs/NativeScaleBunPerformance.js +25 -0
- package/lib/commonjs/specs/NativeScaleBunProfiler.js +26 -0
- package/lib/commonjs/specs/NativeScaleBunStorage.js +40 -0
- package/lib/commonjs/storage/StorageBackend.js +240 -0
- package/lib/commonjs/storage/db/sqlite.js +2 -0
- package/lib/commonjs/storage/files/fileStore.js +2 -0
- package/lib/commonjs/transport/auth/sdkSession.js +28 -0
- package/lib/commonjs/transport/backoff/exponentialJitter.js +16 -0
- package/lib/commonjs/transport/http/endpoints.js +46 -0
- package/lib/commonjs/transport/http/httpClient.js +72 -0
- package/lib/commonjs/transport/rateLimit/retryAfter.js +2 -0
- package/lib/commonjs/transport/signing/requestSigner.js +2 -0
- package/lib/commonjs/vendor/protocol/index.js +327 -0
- package/lib/commonjs/vendor/protocol/internal/validation.js +429 -0
- package/lib/commonjs/vendor/sdk-contracts/bridge.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/config.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/events.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/features.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/index.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/platform.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/session-boundary.js +6 -0
- package/lib/commonjs/vendor/sdk-contracts/session.js +2 -0
- package/lib/commonjs/vendor/vendor.manifest +10 -0
- package/lib/module/analytics/EventTracker.js +592 -0
- package/lib/module/analytics/automaticEvents.js +63 -0
- package/lib/module/analytics/batching.js +55 -0
- package/lib/module/analytics/eventLane.js +47 -0
- package/lib/module/analytics/revenue.js +117 -0
- package/lib/module/analytics/subscription.js +86 -0
- package/lib/module/bootstrap/FeatureRegistry.js +79 -0
- package/lib/module/bootstrap/SDKBootstrapper.js +742 -0
- package/lib/module/bucketing/fnv1a32.js +37 -0
- package/lib/module/compat/codepush.js +147 -0
- package/lib/module/config/ConfigManager.js +230 -0
- package/lib/module/config/configTypes.js +10 -0
- package/lib/module/config/otaPolicyState.js +76 -0
- package/lib/module/config/quotaState.js +423 -0
- package/lib/module/core/architecture.js +38 -0
- package/lib/module/core/clock/now.js +7 -0
- package/lib/module/core/config/defaults.js +2 -0
- package/lib/module/core/config/schema.js +506 -0
- package/lib/module/core/constants/endpoints.js +13 -0
- package/lib/module/core/constants/protocol.js +25 -0
- package/lib/module/core/constants/timings.js +26 -0
- package/lib/module/core/constants/version.js +12 -0
- package/lib/module/core/context/app.js +2 -0
- package/lib/module/core/context/device.js +143 -0
- package/lib/module/core/context/session.js +2 -0
- package/lib/module/core/context/user.js +2 -0
- package/lib/module/core/contracts/IFeature.js +2 -0
- package/lib/module/core/di/container.js +22 -0
- package/lib/module/core/encoding/base64.js +44 -0
- package/lib/module/core/id/deviceId.js +45 -0
- package/lib/module/core/id/installationId.js +50 -0
- package/lib/module/core/id/sessionId.js +2 -0
- package/lib/module/core/lifecycle/appLifecycle.js +25 -0
- package/lib/module/core/lifecycle/crashSafe.js +26 -0
- package/lib/module/core/logger/errorClassification.js +96 -0
- package/lib/module/core/logger/internalLogger.js +59 -0
- package/lib/module/core/logger/levels.js +2 -0
- package/lib/module/crypto/hmacSha256.js +126 -0
- package/lib/module/debug/bootstrap.js +393 -0
- package/lib/module/debug/commands.js +726 -0
- package/lib/module/debug/configBuilder.js +63 -0
- package/lib/module/debug/exportBridge.js +148 -0
- package/lib/module/debug/hostResolver.js +37 -0
- package/lib/module/debug/index.js +13 -0
- package/lib/module/debug/metrics.js +33 -0
- package/lib/module/debug/perf.js +180 -0
- package/lib/module/debug/perfWiring.js +102 -0
- package/lib/module/debug/protocol.js +19 -0
- package/lib/module/debug/redaction.js +411 -0
- package/lib/module/debug/replayWiring.js +139 -0
- package/lib/module/debug/screenTracking.js +53 -0
- package/lib/module/debug/sessionWiring.js +43 -0
- package/lib/module/debug/stream.js +536 -0
- package/lib/module/debug/transport.js +362 -0
- package/lib/module/features/bugreport/BugReportFeature.js +105 -0
- package/lib/module/features/bugreport/buildPayload.js +91 -0
- package/lib/module/features/bugreport/index.js +2 -0
- package/lib/module/features/crash/CrashFeature.js +79 -0
- package/lib/module/features/crash/CrashReporter.js +151 -0
- package/lib/module/features/crash/NativeCrashFeature.js +36 -0
- package/lib/module/features/crash/capture.js +42 -0
- package/lib/module/features/crash/globalHandler.js +36 -0
- package/lib/module/features/crash/index.js +8 -0
- package/lib/module/features/crash/nativeCrashBridge.js +350 -0
- package/lib/module/features/crash/rejectionHandler.js +171 -0
- package/lib/module/features/crash/scrubCrash.js +149 -0
- package/lib/module/features/engage/EngageAnchor.js +121 -0
- package/lib/module/features/engage/EngageArchetypeRenderers.js +4264 -0
- package/lib/module/features/engage/EngageInAppView.js +2656 -0
- package/lib/module/features/engage/EngageInlinePlacement.js +123 -0
- package/lib/module/features/engage/EngagePromptProvider.js +1054 -0
- package/lib/module/features/engage/EngagePromptView.js +1243 -0
- package/lib/module/features/engage/EngageTransport.js +602 -0
- package/lib/module/features/engage/EngageVariantContent.js +1771 -0
- package/lib/module/features/engage/__test-support__/reactNativeStub.js +52 -0
- package/lib/module/features/engage/attachmentCapture.js +42 -0
- package/lib/module/features/engage/captureVoiceAttachment.js +80 -0
- package/lib/module/features/engage/engageCoachmarkTour.js +94 -0
- package/lib/module/features/engage/engageGameLogic.js +287 -0
- package/lib/module/features/engage/engageMediaSizing.js +51 -0
- package/lib/module/features/engage/engageMultiStepSheet.js +35 -0
- package/lib/module/features/engage/engageOutcome.js +108 -0
- package/lib/module/features/engage/engagePushTokenBridge.js +65 -0
- package/lib/module/features/engage/engageShakeBridge.js +56 -0
- package/lib/module/features/engage/engageSignals.js +34 -0
- package/lib/module/features/engage/engageStoreReviewBridge.js +43 -0
- package/lib/module/features/engage/engageTestSeenStore.js +92 -0
- package/lib/module/features/engage/engageThrottle.js +390 -0
- package/lib/module/features/engage/engageTriggerEngine.js +360 -0
- package/lib/module/features/engage/engageTypes.js +110 -0
- package/lib/module/features/engage/engageVariantResolver.js +135 -0
- package/lib/module/features/engage/engageWindowInsets.js +89 -0
- package/lib/module/features/engage/gestureTriggerDetector.js +80 -0
- package/lib/module/features/engage/transcription/TranscriptionProvider.js +46 -0
- package/lib/module/features/install-referrer/installReferrer.js +104 -0
- package/lib/module/features/journey/ScaleBunDebugRoot.js +1030 -0
- package/lib/module/features/journey/ScaleBunFlatList.js +32 -0
- package/lib/module/features/journey/ScaleBunImpression.js +105 -0
- package/lib/module/features/journey/ScaleBunScrollView.js +95 -0
- package/lib/module/features/journey/ScaleBunSectionList.js +32 -0
- package/lib/module/features/journey/autoInstrumentScroll.js +155 -0
- package/lib/module/features/journey/calibrationContext.js +35 -0
- package/lib/module/features/journey/gestureBuffer.js +56 -0
- package/lib/module/features/journey/gestureDetector.js +169 -0
- package/lib/module/features/journey/impression.js +84 -0
- package/lib/module/features/journey/interactionProtocol.js +158 -0
- package/lib/module/features/journey/journeyManager.js +459 -0
- package/lib/module/features/journey/journeyTypes.js +49 -0
- package/lib/module/features/journey/nativeScroll.js +77 -0
- package/lib/module/features/journey/navDetector.js +154 -0
- package/lib/module/features/journey/screenshotHelper.js +129 -0
- package/lib/module/features/journey/scrollContext.js +142 -0
- package/lib/module/features/journey/targetGeometry.js +175 -0
- package/lib/module/features/journey/targetRegistry.js +44 -0
- package/lib/module/features/journey/touchTarget.js +241 -0
- package/lib/module/features/journey/uiState.js +176 -0
- package/lib/module/features/navigation/AutoScreenDetector.js +601 -0
- package/lib/module/features/network/NetworkFeature.js +209 -0
- package/lib/module/features/network/index.js +17 -0
- package/lib/module/features/network/thirdParty.js +142 -0
- package/lib/module/features/ota/OtaEventEmitter.js +123 -0
- package/lib/module/features/ota/OtaOrchestrator.js +1302 -0
- package/lib/module/features/ota/OtaTypes.js +2 -0
- package/lib/module/features/ota/deviceAttributes.js +43 -0
- package/lib/module/features/ota/environment.js +165 -0
- package/lib/module/features/ota/geoCountry.js +86 -0
- package/lib/module/features/ota/retry.js +87 -0
- package/lib/module/features/ota/signedDownload.js +174 -0
- package/lib/module/features/ota/useOtaUpdate.js +100 -0
- package/lib/module/features/performance/PerformanceFeature.js +643 -0
- package/lib/module/features/performance/collectors/AppLaunchCollector.js +115 -0
- package/lib/module/features/performance/collectors/AutoScreenLoadCollector.js +225 -0
- package/lib/module/features/performance/collectors/CustomTraceCollector.js +92 -0
- package/lib/module/features/performance/collectors/FrameMetricsCollector.js +177 -0
- package/lib/module/features/performance/collectors/JsStallCollector.js +158 -0
- package/lib/module/features/performance/collectors/NetworkPerfCollector.js +52 -0
- package/lib/module/features/performance/collectors/ScreenLoadCollector.js +71 -0
- package/lib/module/features/performance/collectors/UiHangCollector.js +71 -0
- package/lib/module/features/performance/config.js +51 -0
- package/lib/module/features/performance/getNativePerformanceModule.js +39 -0
- package/lib/module/features/performance/index.js +9 -0
- package/lib/module/features/performance/metrics/MetricsEngine.js +139 -0
- package/lib/module/features/performance/models.js +42 -0
- package/lib/module/features/performance/transport/PerformanceTransport.js +162 -0
- package/lib/module/features/profiler/ProfilerFeature.js +594 -0
- package/lib/module/features/profiler/config.js +143 -0
- package/lib/module/features/profiler/contracts.js +56 -0
- package/lib/module/features/profiler/index.js +11 -0
- package/lib/module/features/profiler/models.js +106 -0
- package/lib/module/features/profiler/transport/ProfilerTransport.js +87 -0
- package/lib/module/features/replay/bridge/adapters/bridgeAdapter.js +198 -0
- package/lib/module/features/replay/bridge/eventEmitter.js +122 -0
- package/lib/module/features/replay/bridge/nativeModule.js +89 -0
- package/lib/module/features/replay/bridge/nativeQuota.js +109 -0
- package/lib/module/features/replay/core/clock/clock.js +37 -0
- package/lib/module/features/replay/core/config/defaults.js +82 -0
- package/lib/module/features/replay/core/config/validator.js +103 -0
- package/lib/module/features/replay/core/env/environmentDetector.js +22 -0
- package/lib/module/features/replay/core/errors/safeCall.js +35 -0
- package/lib/module/features/replay/core/ids/sessionId.js +44 -0
- package/lib/module/features/replay/core/logger/logger.js +29 -0
- package/lib/module/features/replay/core/privacy/privacyTypes.js +27 -0
- package/lib/module/features/replay/core/queue/boundedQueue.js +64 -0
- package/lib/module/features/replay/integrations/alert/alertInstrumentation.js +252 -0
- package/lib/module/features/replay/integrations/logs/consoleIntegration.js +131 -0
- package/lib/module/features/replay/integrations/network/networkAdapter.js +70 -0
- package/lib/module/features/replay/integrations/react-navigation/navigationIntegration.js +82 -0
- package/lib/module/features/replay/integrations/touch/ReplayRoot.js +96 -0
- package/lib/module/features/replay/pipeline/batching/batchManager.js +113 -0
- package/lib/module/features/replay/pipeline/envelope/envelopeBuilder.js +43 -0
- package/lib/module/features/replay/pipeline/retry/retryPolicy.js +45 -0
- package/lib/module/features/replay/pipeline/transport/transportTypes.js +60 -0
- package/lib/module/features/replay/public/api.js +332 -0
- package/lib/module/features/replay/public/enums.js +85 -0
- package/lib/module/features/replay/public/types.js +2 -0
- package/lib/module/features/replay/replay/breadcrumbs/breadcrumbCollector.js +113 -0
- package/lib/module/features/replay/replay/frames/frameModels.js +33 -0
- package/lib/module/features/replay/replay/session/sessionOrchestrator.js +272 -0
- package/lib/module/features/replay/replay/timeline/timelineModels.js +108 -0
- package/lib/module/features/replay/transport/BackendReplayTransport.js +169 -0
- package/lib/module/features/replay/transport/CompositeReplayTransport.js +68 -0
- package/lib/module/features/replay/transport/DesktopReplayTransport.js +119 -0
- package/lib/module/features/replay/transport/ReplayTransport.js +2 -0
- package/lib/module/features/session/BackendSessionAdapter.js +1908 -0
- package/lib/module/features/session/DesktopSessionTransport.js +118 -0
- package/lib/module/features/session/JourneyEventPipeline.js +239 -0
- package/lib/module/features/session/ReplayCaptureManager.js +1248 -0
- package/lib/module/features/session/ScrollTracker.js +141 -0
- package/lib/module/features/session/SessionManager.js +1443 -0
- package/lib/module/features/session/SyncDecisionEngine.js +88 -0
- package/lib/module/features/session/frameLink.js +29 -0
- package/lib/module/features/session/frameScrollState.js +34 -0
- package/lib/module/features/session/index.js +35 -0
- package/lib/module/features/session/nativeCapture.js +45 -0
- package/lib/module/features/session/outboxFrameCapture.js +77 -0
- package/lib/module/features/session/sessionTypes.js +226 -0
- package/lib/module/features/session/viewportPlausibility.js +137 -0
- package/lib/module/features/skan/skanBridge.js +48 -0
- package/lib/module/features/skan/skanConversionManager.js +128 -0
- package/lib/module/index.js +80 -0
- package/lib/module/integrations/fetch/fetchInterceptor.js +169 -0
- package/lib/module/integrations/navigation/screenTracker.js +2 -0
- package/lib/module/integrations/network/bodyCapture.js +320 -0
- package/lib/module/integrations/xhr/xhrInterceptor.js +219 -0
- package/lib/module/metro/composeSourceMap.js +97 -0
- package/lib/module/metro/featureModules.js +123 -0
- package/lib/module/metro/index.js +218 -0
- package/lib/module/metro/optionalDependencyStub.js +14 -0
- package/lib/module/metro/optionalModules.js +25 -0
- package/lib/module/metro/serializerCompose.js +152 -0
- package/lib/module/pipeline/dispatcher/dispatcher.js +21 -0
- package/lib/module/pipeline/envelope/envelope.js +11 -0
- package/lib/module/pipeline/envelope/serializer.js +8 -0
- package/lib/module/pipeline/processors/dedupe.js +2 -0
- package/lib/module/pipeline/processors/enrich.js +10 -0
- package/lib/module/pipeline/processors/sampling.js +2 -0
- package/lib/module/pipeline/processors/sanitize.js +22 -0
- package/lib/module/pipeline/queue/flushQueue.js +102 -0
- package/lib/module/pipeline/queue/memoryQueue.js +24 -0
- package/lib/module/pipeline/queue/persistentQueue.js +336 -0
- package/lib/module/pipeline/queue/queuePolicy.js +2 -0
- package/lib/module/pipeline/scheduler/flushScheduler.js +38 -0
- package/lib/module/pipeline/scheduler/retryPolicy.js +9 -0
- package/lib/module/public/ScaleBunErrorBoundary.js +82 -0
- package/lib/module/public/ScaleBunFacade.js +2038 -0
- package/lib/module/public/ScaleBunProvider.js +54 -0
- package/lib/module/public/typedTracker.js +72 -0
- package/lib/module/public/types.js +2 -0
- package/lib/module/push/PushManager.js +263 -0
- package/lib/module/push/adapters/ManualAdapter.js +79 -0
- package/lib/module/push/adapters/NativeBridgeAdapter.js +124 -0
- package/lib/module/push/adapters/NoopAdapter.js +38 -0
- package/lib/module/push/adapters/RNFirebaseMessagingAdapter.js +241 -0
- package/lib/module/push/adapters/loadMessaging.js +23 -0
- package/lib/module/push/adapters/loadNotifee.js +30 -0
- package/lib/module/push/adapters/selectAdapter.js +147 -0
- package/lib/module/push/detect/capabilities.js +130 -0
- package/lib/module/push/index.js +9 -0
- package/lib/module/push/native/nativeNotifications.js +155 -0
- package/lib/module/push/types.js +2 -0
- package/lib/module/specs/NativeReplaySdk.js +24 -0
- package/lib/module/specs/NativeScaleBunCrash.js +26 -0
- package/lib/module/specs/NativeScaleBunInstallReferrer.js +20 -0
- package/lib/module/specs/NativeScaleBunOta.js +28 -0
- package/lib/module/specs/NativeScaleBunPerformance.js +21 -0
- package/lib/module/specs/NativeScaleBunProfiler.js +22 -0
- package/lib/module/specs/NativeScaleBunStorage.js +36 -0
- package/lib/module/storage/StorageBackend.js +231 -0
- package/lib/module/storage/db/sqlite.js +2 -0
- package/lib/module/storage/files/fileStore.js +2 -0
- package/lib/module/transport/auth/sdkSession.js +21 -0
- package/lib/module/transport/backoff/exponentialJitter.js +10 -0
- package/lib/module/transport/http/endpoints.js +40 -0
- package/lib/module/transport/http/httpClient.js +64 -0
- package/lib/module/transport/rateLimit/retryAfter.js +2 -0
- package/lib/module/transport/signing/requestSigner.js +2 -0
- package/lib/module/vendor/protocol/index.js +312 -0
- package/lib/module/vendor/protocol/internal/validation.js +423 -0
- package/lib/module/vendor/sdk-contracts/bridge.js +2 -0
- package/lib/module/vendor/sdk-contracts/config.js +2 -0
- package/lib/module/vendor/sdk-contracts/events.js +2 -0
- package/lib/module/vendor/sdk-contracts/features.js +2 -0
- package/lib/module/vendor/sdk-contracts/index.js +2 -0
- package/lib/module/vendor/sdk-contracts/platform.js +2 -0
- package/lib/module/vendor/sdk-contracts/session-boundary.js +2 -0
- package/lib/module/vendor/sdk-contracts/session.js +2 -0
- package/lib/module/vendor/vendor.manifest +10 -0
- package/lib/typescript/analytics/EventTracker.d.ts +197 -0
- package/lib/typescript/analytics/automaticEvents.d.ts +30 -0
- package/lib/typescript/analytics/batching.d.ts +33 -0
- package/lib/typescript/analytics/eventLane.d.ts +22 -0
- package/lib/typescript/analytics/revenue.d.ts +94 -0
- package/lib/typescript/analytics/subscription.d.ts +35 -0
- package/lib/typescript/bootstrap/FeatureRegistry.d.ts +36 -0
- package/lib/typescript/bootstrap/SDKBootstrapper.d.ts +82 -0
- package/lib/typescript/bucketing/fnv1a32.d.ts +20 -0
- package/lib/typescript/compat/codepush.d.ts +76 -0
- package/lib/typescript/config/ConfigManager.d.ts +82 -0
- package/lib/typescript/config/configTypes.d.ts +73 -0
- package/lib/typescript/config/otaPolicyState.d.ts +55 -0
- package/lib/typescript/config/quotaState.d.ts +155 -0
- package/lib/typescript/core/architecture.d.ts +29 -0
- package/lib/typescript/core/clock/now.d.ts +5 -0
- package/lib/typescript/core/config/defaults.d.ts +1 -0
- package/lib/typescript/core/config/schema.d.ts +107 -0
- package/lib/typescript/core/constants/endpoints.d.ts +13 -0
- package/lib/typescript/core/constants/protocol.d.ts +23 -0
- package/lib/typescript/core/constants/timings.d.ts +22 -0
- package/lib/typescript/core/constants/version.d.ts +12 -0
- package/lib/typescript/core/context/app.d.ts +1 -0
- package/lib/typescript/core/context/device.d.ts +61 -0
- package/lib/typescript/core/context/session.d.ts +1 -0
- package/lib/typescript/core/context/user.d.ts +24 -0
- package/lib/typescript/core/contracts/IFeature.d.ts +44 -0
- package/lib/typescript/core/di/container.d.ts +9 -0
- package/lib/typescript/core/encoding/base64.d.ts +13 -0
- package/lib/typescript/core/id/deviceId.d.ts +9 -0
- package/lib/typescript/core/id/installationId.d.ts +20 -0
- package/lib/typescript/core/id/sessionId.d.ts +1 -0
- package/lib/typescript/core/lifecycle/appLifecycle.d.ts +14 -0
- package/lib/typescript/core/lifecycle/crashSafe.d.ts +7 -0
- package/lib/typescript/core/logger/errorClassification.d.ts +46 -0
- package/lib/typescript/core/logger/internalLogger.d.ts +24 -0
- package/lib/typescript/core/logger/levels.d.ts +1 -0
- package/lib/typescript/crypto/hmacSha256.d.ts +10 -0
- package/lib/typescript/debug/bootstrap.d.ts +148 -0
- package/lib/typescript/debug/commands.d.ts +77 -0
- package/lib/typescript/debug/configBuilder.d.ts +13 -0
- package/lib/typescript/debug/exportBridge.d.ts +27 -0
- package/lib/typescript/debug/hostResolver.d.ts +14 -0
- package/lib/typescript/debug/index.d.ts +12 -0
- package/lib/typescript/debug/metrics.d.ts +2 -0
- package/lib/typescript/debug/perf.d.ts +43 -0
- package/lib/typescript/debug/perfWiring.d.ts +33 -0
- package/lib/typescript/debug/protocol.d.ts +15 -0
- package/lib/typescript/debug/redaction.d.ts +69 -0
- package/lib/typescript/debug/replayWiring.d.ts +25 -0
- package/lib/typescript/debug/screenTracking.d.ts +16 -0
- package/lib/typescript/debug/sessionWiring.d.ts +16 -0
- package/lib/typescript/debug/stream.d.ts +77 -0
- package/lib/typescript/debug/transport.d.ts +110 -0
- package/lib/typescript/features/bugreport/BugReportFeature.d.ts +59 -0
- package/lib/typescript/features/bugreport/buildPayload.d.ts +51 -0
- package/lib/typescript/features/bugreport/index.d.ts +1 -0
- package/lib/typescript/features/crash/CrashFeature.d.ts +21 -0
- package/lib/typescript/features/crash/CrashReporter.d.ts +107 -0
- package/lib/typescript/features/crash/NativeCrashFeature.d.ts +17 -0
- package/lib/typescript/features/crash/capture.d.ts +22 -0
- package/lib/typescript/features/crash/globalHandler.d.ts +14 -0
- package/lib/typescript/features/crash/index.d.ts +2 -0
- package/lib/typescript/features/crash/nativeCrashBridge.d.ts +43 -0
- package/lib/typescript/features/crash/rejectionHandler.d.ts +65 -0
- package/lib/typescript/features/crash/scrubCrash.d.ts +35 -0
- package/lib/typescript/features/engage/EngageAnchor.d.ts +36 -0
- package/lib/typescript/features/engage/EngageArchetypeRenderers.d.ts +66 -0
- package/lib/typescript/features/engage/EngageInAppView.d.ts +164 -0
- package/lib/typescript/features/engage/EngageInlinePlacement.d.ts +42 -0
- package/lib/typescript/features/engage/EngagePromptProvider.d.ts +233 -0
- package/lib/typescript/features/engage/EngagePromptView.d.ts +97 -0
- package/lib/typescript/features/engage/EngageTransport.d.ts +158 -0
- package/lib/typescript/features/engage/EngageVariantContent.d.ts +12 -0
- package/lib/typescript/features/engage/attachmentCapture.d.ts +17 -0
- package/lib/typescript/features/engage/captureVoiceAttachment.d.ts +31 -0
- package/lib/typescript/features/engage/engageCoachmarkTour.d.ts +18 -0
- package/lib/typescript/features/engage/engageGameLogic.d.ts +34 -0
- package/lib/typescript/features/engage/engageMediaSizing.d.ts +23 -0
- package/lib/typescript/features/engage/engageMultiStepSheet.d.ts +25 -0
- package/lib/typescript/features/engage/engageOutcome.d.ts +38 -0
- package/lib/typescript/features/engage/engagePushTokenBridge.d.ts +30 -0
- package/lib/typescript/features/engage/engageShakeBridge.d.ts +20 -0
- package/lib/typescript/features/engage/engageSignals.d.ts +13 -0
- package/lib/typescript/features/engage/engageStoreReviewBridge.d.ts +23 -0
- package/lib/typescript/features/engage/engageTestSeenStore.d.ts +46 -0
- package/lib/typescript/features/engage/engageThrottle.d.ts +180 -0
- package/lib/typescript/features/engage/engageTriggerEngine.d.ts +16 -0
- package/lib/typescript/features/engage/engageTypes.d.ts +576 -0
- package/lib/typescript/features/engage/engageVariantResolver.d.ts +46 -0
- package/lib/typescript/features/engage/engageWindowInsets.d.ts +25 -0
- package/lib/typescript/features/engage/gestureTriggerDetector.d.ts +20 -0
- package/lib/typescript/features/engage/transcription/TranscriptionProvider.d.ts +51 -0
- package/lib/typescript/features/install-referrer/installReferrer.d.ts +39 -0
- package/lib/typescript/features/journey/ScaleBunDebugRoot.d.ts +49 -0
- package/lib/typescript/features/journey/ScaleBunFlatList.d.ts +20 -0
- package/lib/typescript/features/journey/ScaleBunImpression.d.ts +30 -0
- package/lib/typescript/features/journey/ScaleBunScrollView.d.ts +25 -0
- package/lib/typescript/features/journey/ScaleBunSectionList.d.ts +20 -0
- package/lib/typescript/features/journey/autoInstrumentScroll.d.ts +46 -0
- package/lib/typescript/features/journey/calibrationContext.d.ts +26 -0
- package/lib/typescript/features/journey/gestureBuffer.d.ts +27 -0
- package/lib/typescript/features/journey/gestureDetector.d.ts +40 -0
- package/lib/typescript/features/journey/impression.d.ts +48 -0
- package/lib/typescript/features/journey/interactionProtocol.d.ts +159 -0
- package/lib/typescript/features/journey/journeyManager.d.ts +62 -0
- package/lib/typescript/features/journey/journeyTypes.d.ts +161 -0
- package/lib/typescript/features/journey/nativeScroll.d.ts +47 -0
- package/lib/typescript/features/journey/navDetector.d.ts +42 -0
- package/lib/typescript/features/journey/screenshotHelper.d.ts +33 -0
- package/lib/typescript/features/journey/scrollContext.d.ts +49 -0
- package/lib/typescript/features/journey/targetGeometry.d.ts +126 -0
- package/lib/typescript/features/journey/targetRegistry.d.ts +28 -0
- package/lib/typescript/features/journey/touchTarget.d.ts +174 -0
- package/lib/typescript/features/journey/uiState.d.ts +93 -0
- package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +196 -0
- package/lib/typescript/features/network/NetworkFeature.d.ts +43 -0
- package/lib/typescript/features/network/index.d.ts +46 -0
- package/lib/typescript/features/network/thirdParty.d.ts +95 -0
- package/lib/typescript/features/ota/OtaEventEmitter.d.ts +93 -0
- package/lib/typescript/features/ota/OtaOrchestrator.d.ts +287 -0
- package/lib/typescript/features/ota/OtaTypes.d.ts +193 -0
- package/lib/typescript/features/ota/deviceAttributes.d.ts +18 -0
- package/lib/typescript/features/ota/environment.d.ts +99 -0
- package/lib/typescript/features/ota/geoCountry.d.ts +14 -0
- package/lib/typescript/features/ota/retry.d.ts +53 -0
- package/lib/typescript/features/ota/signedDownload.d.ts +81 -0
- package/lib/typescript/features/ota/useOtaUpdate.d.ts +72 -0
- package/lib/typescript/features/performance/PerformanceFeature.d.ts +132 -0
- package/lib/typescript/features/performance/collectors/AppLaunchCollector.d.ts +27 -0
- package/lib/typescript/features/performance/collectors/AutoScreenLoadCollector.d.ts +70 -0
- package/lib/typescript/features/performance/collectors/CustomTraceCollector.d.ts +35 -0
- package/lib/typescript/features/performance/collectors/FrameMetricsCollector.d.ts +74 -0
- package/lib/typescript/features/performance/collectors/JsStallCollector.d.ts +45 -0
- package/lib/typescript/features/performance/collectors/NetworkPerfCollector.d.ts +23 -0
- package/lib/typescript/features/performance/collectors/ScreenLoadCollector.d.ts +30 -0
- package/lib/typescript/features/performance/collectors/UiHangCollector.d.ts +21 -0
- package/lib/typescript/features/performance/config.d.ts +73 -0
- package/lib/typescript/features/performance/getNativePerformanceModule.d.ts +2 -0
- package/lib/typescript/features/performance/index.d.ts +10 -0
- package/lib/typescript/features/performance/metrics/MetricsEngine.d.ts +69 -0
- package/lib/typescript/features/performance/models.d.ts +169 -0
- package/lib/typescript/features/performance/transport/PerformanceTransport.d.ts +40 -0
- package/lib/typescript/features/profiler/ProfilerFeature.d.ts +92 -0
- package/lib/typescript/features/profiler/config.d.ts +85 -0
- package/lib/typescript/features/profiler/contracts.d.ts +142 -0
- package/lib/typescript/features/profiler/index.d.ts +13 -0
- package/lib/typescript/features/profiler/models.d.ts +332 -0
- package/lib/typescript/features/profiler/transport/ProfilerTransport.d.ts +30 -0
- package/lib/typescript/features/replay/bridge/adapters/bridgeAdapter.d.ts +52 -0
- package/lib/typescript/features/replay/bridge/eventEmitter.d.ts +100 -0
- package/lib/typescript/features/replay/bridge/nativeModule.d.ts +166 -0
- package/lib/typescript/features/replay/bridge/nativeQuota.d.ts +26 -0
- package/lib/typescript/features/replay/core/clock/clock.d.ts +16 -0
- package/lib/typescript/features/replay/core/config/defaults.d.ts +28 -0
- package/lib/typescript/features/replay/core/config/validator.d.ts +13 -0
- package/lib/typescript/features/replay/core/env/environmentDetector.d.ts +14 -0
- package/lib/typescript/features/replay/core/errors/safeCall.d.ts +12 -0
- package/lib/typescript/features/replay/core/ids/sessionId.d.ts +15 -0
- package/lib/typescript/features/replay/core/logger/logger.d.ts +15 -0
- package/lib/typescript/features/replay/core/privacy/privacyTypes.d.ts +24 -0
- package/lib/typescript/features/replay/core/queue/boundedQueue.d.ts +29 -0
- package/lib/typescript/features/replay/integrations/alert/alertInstrumentation.d.ts +48 -0
- package/lib/typescript/features/replay/integrations/logs/consoleIntegration.d.ts +18 -0
- package/lib/typescript/features/replay/integrations/network/networkAdapter.d.ts +31 -0
- package/lib/typescript/features/replay/integrations/react-navigation/navigationIntegration.d.ts +25 -0
- package/lib/typescript/features/replay/integrations/touch/ReplayRoot.d.ts +26 -0
- package/lib/typescript/features/replay/pipeline/batching/batchManager.d.ts +47 -0
- package/lib/typescript/features/replay/pipeline/envelope/envelopeBuilder.d.ts +12 -0
- package/lib/typescript/features/replay/pipeline/retry/retryPolicy.d.ts +17 -0
- package/lib/typescript/features/replay/pipeline/transport/transportTypes.d.ts +40 -0
- package/lib/typescript/features/replay/public/api.d.ts +83 -0
- package/lib/typescript/features/replay/public/enums.d.ts +73 -0
- package/lib/typescript/features/replay/public/types.d.ts +249 -0
- package/lib/typescript/features/replay/replay/breadcrumbs/breadcrumbCollector.d.ts +26 -0
- package/lib/typescript/features/replay/replay/frames/frameModels.d.ts +23 -0
- package/lib/typescript/features/replay/replay/session/sessionOrchestrator.d.ts +53 -0
- package/lib/typescript/features/replay/replay/timeline/timelineModels.d.ts +29 -0
- package/lib/typescript/features/replay/transport/BackendReplayTransport.d.ts +45 -0
- package/lib/typescript/features/replay/transport/CompositeReplayTransport.d.ts +22 -0
- package/lib/typescript/features/replay/transport/DesktopReplayTransport.d.ts +35 -0
- package/lib/typescript/features/replay/transport/ReplayTransport.d.ts +72 -0
- package/lib/typescript/features/session/BackendSessionAdapter.d.ts +528 -0
- package/lib/typescript/features/session/DesktopSessionTransport.d.ts +28 -0
- package/lib/typescript/features/session/JourneyEventPipeline.d.ts +74 -0
- package/lib/typescript/features/session/ReplayCaptureManager.d.ts +391 -0
- package/lib/typescript/features/session/ScrollTracker.d.ts +48 -0
- package/lib/typescript/features/session/SessionManager.d.ts +414 -0
- package/lib/typescript/features/session/SyncDecisionEngine.d.ts +33 -0
- package/lib/typescript/features/session/frameLink.d.ts +27 -0
- package/lib/typescript/features/session/frameScrollState.d.ts +27 -0
- package/lib/typescript/features/session/index.d.ts +23 -0
- package/lib/typescript/features/session/nativeCapture.d.ts +18 -0
- package/lib/typescript/features/session/outboxFrameCapture.d.ts +20 -0
- package/lib/typescript/features/session/sessionTypes.d.ts +362 -0
- package/lib/typescript/features/session/viewportPlausibility.d.ts +72 -0
- package/lib/typescript/features/skan/skanBridge.d.ts +18 -0
- package/lib/typescript/features/skan/skanConversionManager.d.ts +69 -0
- package/lib/typescript/index.d.ts +59 -0
- package/lib/typescript/integrations/fetch/fetchInterceptor.d.ts +41 -0
- package/lib/typescript/integrations/navigation/screenTracker.d.ts +1 -0
- package/lib/typescript/integrations/network/bodyCapture.d.ts +101 -0
- package/lib/typescript/integrations/xhr/xhrInterceptor.d.ts +46 -0
- package/lib/typescript/metro/composeSourceMap.d.ts +26 -0
- package/lib/typescript/metro/featureModules.d.ts +49 -0
- package/lib/typescript/metro/index.d.ts +99 -0
- package/lib/typescript/metro/optionalDependencyStub.d.ts +14 -0
- package/lib/typescript/metro/optionalModules.d.ts +20 -0
- package/lib/typescript/metro/serializerCompose.d.ts +46 -0
- package/lib/typescript/pipeline/dispatcher/dispatcher.d.ts +7 -0
- package/lib/typescript/pipeline/envelope/envelope.d.ts +16 -0
- package/lib/typescript/pipeline/envelope/serializer.d.ts +7 -0
- package/lib/typescript/pipeline/processors/dedupe.d.ts +1 -0
- package/lib/typescript/pipeline/processors/enrich.d.ts +3 -0
- package/lib/typescript/pipeline/processors/sampling.d.ts +1 -0
- package/lib/typescript/pipeline/processors/sanitize.d.ts +3 -0
- package/lib/typescript/pipeline/queue/flushQueue.d.ts +12 -0
- package/lib/typescript/pipeline/queue/memoryQueue.d.ts +12 -0
- package/lib/typescript/pipeline/queue/persistentQueue.d.ts +120 -0
- package/lib/typescript/pipeline/queue/queuePolicy.d.ts +1 -0
- package/lib/typescript/pipeline/scheduler/flushScheduler.d.ts +9 -0
- package/lib/typescript/pipeline/scheduler/retryPolicy.d.ts +5 -0
- package/lib/typescript/public/ScaleBunErrorBoundary.d.ts +44 -0
- package/lib/typescript/public/ScaleBunFacade.d.ts +800 -0
- package/lib/typescript/public/ScaleBunProvider.d.ts +23 -0
- package/lib/typescript/public/typedTracker.d.ts +88 -0
- package/lib/typescript/public/types.d.ts +316 -0
- package/lib/typescript/push/PushManager.d.ts +69 -0
- package/lib/typescript/push/adapters/ManualAdapter.d.ts +40 -0
- package/lib/typescript/push/adapters/NativeBridgeAdapter.d.ts +37 -0
- package/lib/typescript/push/adapters/NoopAdapter.d.ts +21 -0
- package/lib/typescript/push/adapters/RNFirebaseMessagingAdapter.d.ts +39 -0
- package/lib/typescript/push/adapters/loadMessaging.d.ts +17 -0
- package/lib/typescript/push/adapters/loadNotifee.d.ts +15 -0
- package/lib/typescript/push/adapters/selectAdapter.d.ts +20 -0
- package/lib/typescript/push/detect/capabilities.d.ts +15 -0
- package/lib/typescript/push/index.d.ts +10 -0
- package/lib/typescript/push/native/nativeNotifications.d.ts +65 -0
- package/lib/typescript/push/types.d.ts +143 -0
- package/lib/typescript/specs/NativeReplaySdk.d.ts +69 -0
- package/lib/typescript/specs/NativeScaleBunCrash.d.ts +58 -0
- package/lib/typescript/specs/NativeScaleBunInstallReferrer.d.ts +28 -0
- package/lib/typescript/specs/NativeScaleBunOta.d.ts +141 -0
- package/lib/typescript/specs/NativeScaleBunPerformance.d.ts +31 -0
- package/lib/typescript/specs/NativeScaleBunProfiler.d.ts +38 -0
- package/lib/typescript/specs/NativeScaleBunStorage.d.ts +55 -0
- package/lib/typescript/storage/StorageBackend.d.ts +131 -0
- package/lib/typescript/storage/db/sqlite.d.ts +1 -0
- package/lib/typescript/storage/files/fileStore.d.ts +1 -0
- package/lib/typescript/transport/auth/sdkSession.d.ts +10 -0
- package/lib/typescript/transport/backoff/exponentialJitter.d.ts +5 -0
- package/lib/typescript/transport/http/endpoints.d.ts +26 -0
- package/lib/typescript/transport/http/httpClient.d.ts +23 -0
- package/lib/typescript/transport/rateLimit/retryAfter.d.ts +1 -0
- package/lib/typescript/transport/signing/requestSigner.d.ts +1 -0
- package/lib/typescript/vendor/protocol/index.d.ts +345 -0
- package/lib/typescript/vendor/protocol/internal/validation.d.ts +114 -0
- package/lib/typescript/vendor/sdk-contracts/bridge.d.ts +104 -0
- package/lib/typescript/vendor/sdk-contracts/config.d.ts +156 -0
- package/lib/typescript/vendor/sdk-contracts/events.d.ts +42 -0
- package/lib/typescript/vendor/sdk-contracts/features.d.ts +38 -0
- package/lib/typescript/vendor/sdk-contracts/index.d.ts +15 -0
- package/lib/typescript/vendor/sdk-contracts/platform.d.ts +35 -0
- package/lib/typescript/vendor/sdk-contracts/session-boundary.d.ts +42 -0
- package/lib/typescript/vendor/sdk-contracts/session.d.ts +157 -0
- package/package.json +153 -0
- package/react-native.config.js +24 -0
- package/scalebun-react-native.podspec +44 -0
- package/src/analytics/EventTracker.ts +654 -0
- package/src/analytics/automaticEvents.ts +109 -0
- package/src/analytics/batching.ts +54 -0
- package/src/analytics/eventLane.ts +48 -0
- package/src/analytics/revenue.ts +143 -0
- package/src/analytics/subscription.ts +145 -0
- package/src/bootstrap/FeatureRegistry.ts +81 -0
- package/src/bootstrap/SDKBootstrapper.ts +769 -0
- package/src/bucketing/fnv1a32.ts +40 -0
- package/src/compat/codepush.ts +189 -0
- package/src/config/ConfigManager.ts +233 -0
- package/src/config/configTypes.ts +62 -0
- package/src/config/otaPolicyState.ts +79 -0
- package/src/config/quotaState.ts +484 -0
- package/src/core/architecture.ts +39 -0
- package/src/core/clock/now.ts +6 -0
- package/src/core/config/defaults.ts +0 -0
- package/src/core/config/schema.ts +455 -0
- package/src/core/constants/endpoints.ts +12 -0
- package/src/core/constants/protocol.ts +24 -0
- package/src/core/constants/timings.ts +25 -0
- package/src/core/constants/version.ts +11 -0
- package/src/core/context/app.ts +0 -0
- package/src/core/context/device.ts +169 -0
- package/src/core/context/session.ts +0 -0
- package/src/core/context/user.ts +26 -0
- package/src/core/contracts/IFeature.ts +53 -0
- package/src/core/di/container.ts +26 -0
- package/src/core/encoding/base64.ts +46 -0
- package/src/core/id/deviceId.ts +51 -0
- package/src/core/id/installationId.ts +52 -0
- package/src/core/id/sessionId.ts +0 -0
- package/src/core/lifecycle/appLifecycle.ts +33 -0
- package/src/core/lifecycle/crashSafe.ts +29 -0
- package/src/core/logger/errorClassification.ts +108 -0
- package/src/core/logger/internalLogger.ts +65 -0
- package/src/core/logger/levels.ts +0 -0
- package/src/crypto/hmacSha256.ts +106 -0
- package/src/debug/bootstrap.ts +436 -0
- package/src/debug/commands.ts +597 -0
- package/src/debug/configBuilder.ts +56 -0
- package/src/debug/exportBridge.ts +155 -0
- package/src/debug/hostResolver.ts +34 -0
- package/src/debug/index.ts +25 -0
- package/src/debug/metrics.ts +29 -0
- package/src/debug/perf.ts +212 -0
- package/src/debug/perfWiring.ts +119 -0
- package/src/debug/protocol.ts +58 -0
- package/src/debug/redaction.ts +483 -0
- package/src/debug/replayWiring.ts +148 -0
- package/src/debug/screenTracking.ts +55 -0
- package/src/debug/sessionWiring.ts +59 -0
- package/src/debug/stream.ts +561 -0
- package/src/debug/transport.ts +440 -0
- package/src/features/bugreport/BugReportFeature.ts +128 -0
- package/src/features/bugreport/buildPayload.ts +116 -0
- package/src/features/bugreport/index.ts +0 -0
- package/src/features/crash/CrashFeature.ts +87 -0
- package/src/features/crash/CrashReporter.ts +189 -0
- package/src/features/crash/NativeCrashFeature.ts +42 -0
- package/src/features/crash/capture.ts +48 -0
- package/src/features/crash/globalHandler.ts +39 -0
- package/src/features/crash/index.ts +8 -0
- package/src/features/crash/nativeCrashBridge.ts +352 -0
- package/src/features/crash/rejectionHandler.ts +196 -0
- package/src/features/crash/scrubCrash.ts +175 -0
- package/src/features/engage/EngageAnchor.tsx +159 -0
- package/src/features/engage/EngageArchetypeRenderers.tsx +3705 -0
- package/src/features/engage/EngageInAppView.tsx +2678 -0
- package/src/features/engage/EngageInlinePlacement.tsx +169 -0
- package/src/features/engage/EngagePromptProvider.tsx +1318 -0
- package/src/features/engage/EngagePromptView.tsx +1400 -0
- package/src/features/engage/EngageTransport.ts +668 -0
- package/src/features/engage/EngageVariantContent.tsx +1483 -0
- package/src/features/engage/__test-support__/reactNativeStub.js +40 -0
- package/src/features/engage/attachmentCapture.ts +45 -0
- package/src/features/engage/captureVoiceAttachment.ts +81 -0
- package/src/features/engage/engageCoachmarkTour.ts +120 -0
- package/src/features/engage/engageGameLogic.ts +347 -0
- package/src/features/engage/engageMediaSizing.ts +76 -0
- package/src/features/engage/engageMultiStepSheet.ts +53 -0
- package/src/features/engage/engageOutcome.ts +157 -0
- package/src/features/engage/engagePushTokenBridge.ts +84 -0
- package/src/features/engage/engageShakeBridge.ts +67 -0
- package/src/features/engage/engageSignals.ts +40 -0
- package/src/features/engage/engageStoreReviewBridge.ts +48 -0
- package/src/features/engage/engageTestSeenStore.ts +95 -0
- package/src/features/engage/engageThrottle.ts +478 -0
- package/src/features/engage/engageTriggerEngine.ts +350 -0
- package/src/features/engage/engageTypes.ts +712 -0
- package/src/features/engage/engageVariantResolver.ts +364 -0
- package/src/features/engage/engageWindowInsets.ts +108 -0
- package/src/features/engage/gestureTriggerDetector.ts +83 -0
- package/src/features/engage/transcription/TranscriptionProvider.ts +68 -0
- package/src/features/install-referrer/installReferrer.ts +112 -0
- package/src/features/journey/ScaleBunDebugRoot.tsx +1045 -0
- package/src/features/journey/ScaleBunFlatList.tsx +39 -0
- package/src/features/journey/ScaleBunImpression.tsx +109 -0
- package/src/features/journey/ScaleBunScrollView.tsx +101 -0
- package/src/features/journey/ScaleBunSectionList.tsx +39 -0
- package/src/features/journey/autoInstrumentScroll.ts +155 -0
- package/src/features/journey/calibrationContext.ts +44 -0
- package/src/features/journey/gestureBuffer.ts +59 -0
- package/src/features/journey/gestureDetector.ts +162 -0
- package/src/features/journey/impression.ts +92 -0
- package/src/features/journey/interactionProtocol.ts +243 -0
- package/src/features/journey/journeyManager.ts +469 -0
- package/src/features/journey/journeyTypes.ts +215 -0
- package/src/features/journey/nativeScroll.ts +94 -0
- package/src/features/journey/navDetector.ts +149 -0
- package/src/features/journey/screenshotHelper.ts +137 -0
- package/src/features/journey/scrollContext.ts +146 -0
- package/src/features/journey/targetGeometry.ts +197 -0
- package/src/features/journey/targetRegistry.ts +43 -0
- package/src/features/journey/touchTarget.ts +339 -0
- package/src/features/journey/uiState.ts +182 -0
- package/src/features/navigation/AutoScreenDetector.ts +617 -0
- package/src/features/network/NetworkFeature.ts +232 -0
- package/src/features/network/index.ts +59 -0
- package/src/features/network/thirdParty.ts +160 -0
- package/src/features/ota/OtaEventEmitter.ts +187 -0
- package/src/features/ota/OtaOrchestrator.ts +1513 -0
- package/src/features/ota/OtaTypes.ts +230 -0
- package/src/features/ota/deviceAttributes.ts +46 -0
- package/src/features/ota/environment.ts +199 -0
- package/src/features/ota/geoCountry.ts +85 -0
- package/src/features/ota/retry.ts +123 -0
- package/src/features/ota/signedDownload.ts +202 -0
- package/src/features/ota/useOtaUpdate.ts +161 -0
- package/src/features/performance/PerformanceFeature.ts +729 -0
- package/src/features/performance/collectors/AppLaunchCollector.ts +131 -0
- package/src/features/performance/collectors/AutoScreenLoadCollector.ts +258 -0
- package/src/features/performance/collectors/CustomTraceCollector.ts +116 -0
- package/src/features/performance/collectors/FrameMetricsCollector.ts +210 -0
- package/src/features/performance/collectors/JsStallCollector.ts +184 -0
- package/src/features/performance/collectors/NetworkPerfCollector.ts +69 -0
- package/src/features/performance/collectors/ScreenLoadCollector.ts +95 -0
- package/src/features/performance/collectors/UiHangCollector.ts +98 -0
- package/src/features/performance/config.ts +136 -0
- package/src/features/performance/getNativePerformanceModule.ts +38 -0
- package/src/features/performance/index.ts +28 -0
- package/src/features/performance/metrics/MetricsEngine.ts +152 -0
- package/src/features/performance/models.ts +235 -0
- package/src/features/performance/transport/PerformanceTransport.ts +161 -0
- package/src/features/profiler/ProfilerFeature.ts +661 -0
- package/src/features/profiler/config.ts +230 -0
- package/src/features/profiler/contracts.ts +176 -0
- package/src/features/profiler/index.ts +45 -0
- package/src/features/profiler/models.ts +430 -0
- package/src/features/profiler/transport/ProfilerTransport.ts +93 -0
- package/src/features/replay/bridge/adapters/bridgeAdapter.ts +235 -0
- package/src/features/replay/bridge/eventEmitter.ts +176 -0
- package/src/features/replay/bridge/nativeModule.ts +252 -0
- package/src/features/replay/bridge/nativeQuota.ts +111 -0
- package/src/features/replay/core/clock/clock.ts +38 -0
- package/src/features/replay/core/config/defaults.ts +66 -0
- package/src/features/replay/core/config/validator.ts +113 -0
- package/src/features/replay/core/env/environmentDetector.ts +21 -0
- package/src/features/replay/core/errors/safeCall.ts +34 -0
- package/src/features/replay/core/ids/sessionId.ts +44 -0
- package/src/features/replay/core/logger/logger.ts +36 -0
- package/src/features/replay/core/privacy/privacyTypes.ts +41 -0
- package/src/features/replay/core/queue/boundedQueue.ts +71 -0
- package/src/features/replay/integrations/alert/alertInstrumentation.ts +277 -0
- package/src/features/replay/integrations/logs/consoleIntegration.ts +136 -0
- package/src/features/replay/integrations/network/networkAdapter.ts +73 -0
- package/src/features/replay/integrations/react-navigation/navigationIntegration.ts +89 -0
- package/src/features/replay/integrations/touch/ReplayRoot.tsx +114 -0
- package/src/features/replay/pipeline/batching/batchManager.ts +133 -0
- package/src/features/replay/pipeline/envelope/envelopeBuilder.ts +66 -0
- package/src/features/replay/pipeline/retry/retryPolicy.ts +62 -0
- package/src/features/replay/pipeline/transport/transportTypes.ts +85 -0
- package/src/features/replay/public/api.ts +364 -0
- package/src/features/replay/public/enums.ts +78 -0
- package/src/features/replay/public/types.ts +297 -0
- package/src/features/replay/replay/breadcrumbs/breadcrumbCollector.ts +115 -0
- package/src/features/replay/replay/frames/frameModels.ts +45 -0
- package/src/features/replay/replay/session/sessionOrchestrator.ts +286 -0
- package/src/features/replay/replay/timeline/timelineModels.ts +129 -0
- package/src/features/replay/transport/BackendReplayTransport.ts +215 -0
- package/src/features/replay/transport/CompositeReplayTransport.ts +82 -0
- package/src/features/replay/transport/DesktopReplayTransport.ts +140 -0
- package/src/features/replay/transport/ReplayTransport.ts +84 -0
- package/src/features/session/BackendSessionAdapter.ts +1977 -0
- package/src/features/session/DesktopSessionTransport.ts +130 -0
- package/src/features/session/JourneyEventPipeline.ts +278 -0
- package/src/features/session/ReplayCaptureManager.ts +1401 -0
- package/src/features/session/ScrollTracker.ts +166 -0
- package/src/features/session/SessionManager.ts +1687 -0
- package/src/features/session/SyncDecisionEngine.ts +117 -0
- package/src/features/session/frameLink.ts +41 -0
- package/src/features/session/frameScrollState.ts +36 -0
- package/src/features/session/index.ts +88 -0
- package/src/features/session/nativeCapture.ts +43 -0
- package/src/features/session/outboxFrameCapture.ts +79 -0
- package/src/features/session/sessionTypes.ts +528 -0
- package/src/features/session/viewportPlausibility.ts +134 -0
- package/src/features/skan/skanBridge.ts +53 -0
- package/src/features/skan/skanConversionManager.ts +173 -0
- package/src/index.ts +206 -0
- package/src/integrations/fetch/fetchInterceptor.ts +201 -0
- package/src/integrations/navigation/screenTracker.ts +0 -0
- package/src/integrations/network/bodyCapture.ts +328 -0
- package/src/integrations/xhr/xhrInterceptor.ts +259 -0
- package/src/metro/composeSourceMap.ts +104 -0
- package/src/metro/featureModules.ts +143 -0
- package/src/metro/index.ts +336 -0
- package/src/metro/optionalDependencyStub.ts +13 -0
- package/src/metro/optionalModules.ts +27 -0
- package/src/metro/serializerCompose.ts +193 -0
- package/src/pipeline/dispatcher/dispatcher.ts +22 -0
- package/src/pipeline/envelope/envelope.ts +31 -0
- package/src/pipeline/envelope/serializer.ts +14 -0
- package/src/pipeline/processors/dedupe.ts +0 -0
- package/src/pipeline/processors/enrich.ts +11 -0
- package/src/pipeline/processors/sampling.ts +0 -0
- package/src/pipeline/processors/sanitize.ts +23 -0
- package/src/pipeline/queue/flushQueue.ts +144 -0
- package/src/pipeline/queue/memoryQueue.ts +31 -0
- package/src/pipeline/queue/persistentQueue.ts +385 -0
- package/src/pipeline/queue/queuePolicy.ts +0 -0
- package/src/pipeline/scheduler/flushScheduler.ts +47 -0
- package/src/pipeline/scheduler/retryPolicy.ts +8 -0
- package/src/public/ScaleBunErrorBoundary.tsx +91 -0
- package/src/public/ScaleBunFacade.ts +2129 -0
- package/src/public/ScaleBunProvider.tsx +91 -0
- package/src/public/typedTracker.ts +123 -0
- package/src/public/types.ts +362 -0
- package/src/push/PushManager.ts +318 -0
- package/src/push/adapters/ManualAdapter.ts +100 -0
- package/src/push/adapters/NativeBridgeAdapter.ts +142 -0
- package/src/push/adapters/NoopAdapter.ts +46 -0
- package/src/push/adapters/RNFirebaseMessagingAdapter.ts +271 -0
- package/src/push/adapters/loadMessaging.ts +24 -0
- package/src/push/adapters/loadNotifee.ts +29 -0
- package/src/push/adapters/selectAdapter.ts +176 -0
- package/src/push/detect/capabilities.ts +124 -0
- package/src/push/index.ts +22 -0
- package/src/push/native/nativeNotifications.ts +207 -0
- package/src/push/types.ts +159 -0
- package/src/specs/NativeReplaySdk.ts +101 -0
- package/src/specs/NativeScaleBunCrash.ts +64 -0
- package/src/specs/NativeScaleBunInstallReferrer.ts +29 -0
- package/src/specs/NativeScaleBunOta.ts +154 -0
- package/src/specs/NativeScaleBunPerformance.ts +34 -0
- package/src/specs/NativeScaleBunProfiler.ts +41 -0
- package/src/specs/NativeScaleBunStorage.ts +59 -0
- package/src/storage/StorageBackend.ts +272 -0
- package/src/storage/db/sqlite.ts +0 -0
- package/src/storage/files/fileStore.ts +0 -0
- package/src/transport/auth/sdkSession.ts +27 -0
- package/src/transport/backoff/exponentialJitter.ts +9 -0
- package/src/transport/http/endpoints.ts +33 -0
- package/src/transport/http/httpClient.ts +73 -0
- package/src/transport/rateLimit/retryAfter.ts +0 -0
- package/src/transport/signing/requestSigner.ts +0 -0
- package/src/vendor/protocol/index.ts +391 -0
- package/src/vendor/protocol/internal/validation.ts +497 -0
- package/src/vendor/sdk-contracts/bridge.ts +162 -0
- package/src/vendor/sdk-contracts/config.ts +192 -0
- package/src/vendor/sdk-contracts/events.ts +50 -0
- package/src/vendor/sdk-contracts/features.ts +42 -0
- package/src/vendor/sdk-contracts/index.ts +98 -0
- package/src/vendor/sdk-contracts/platform.ts +42 -0
- package/src/vendor/sdk-contracts/session-boundary.ts +55 -0
- package/src/vendor/sdk-contracts/session.ts +225 -0
- package/src/vendor/vendor.manifest +10 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Performance Config
|
|
3
|
+
*
|
|
4
|
+
* Performance-specific configuration with sensible defaults.
|
|
5
|
+
* All thresholds are tuned for development debugging first,
|
|
6
|
+
* with hooks for production configuration later.
|
|
7
|
+
*/
|
|
8
|
+
export interface PerformanceConfig {
|
|
9
|
+
/** Enable/disable performance monitoring entirely. Default: true */
|
|
10
|
+
enabled: boolean;
|
|
11
|
+
/** Enable JS event-loop stall detection. Default: true */
|
|
12
|
+
jsStalls: boolean;
|
|
13
|
+
/** Stall threshold in ms (drift above this = stall). Default: 32 (2 frames) */
|
|
14
|
+
stallThresholdMs: number;
|
|
15
|
+
/** Stall sampling interval in ms. Default: 16 (~60fps frame budget) */
|
|
16
|
+
stallIntervalMs: number;
|
|
17
|
+
/** Enable native frame metrics collection. Default: true */
|
|
18
|
+
frameMetrics: boolean;
|
|
19
|
+
/** Slow frame threshold in ms. Default: 16.67 (below 60fps) */
|
|
20
|
+
slowFrameThresholdMs: number;
|
|
21
|
+
/** Frozen frame threshold in ms. Default: 700 */
|
|
22
|
+
frozenFrameThresholdMs: number;
|
|
23
|
+
/** Enable app launch timing. Default: true */
|
|
24
|
+
appLaunch: boolean;
|
|
25
|
+
/** Enable screen load timing. Default: true */
|
|
26
|
+
screenLoad: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Enable native UI hang / ANR watchdog. Tier-1, emits only on a real hang.
|
|
29
|
+
* Default: true — additive (fires only on a real hang); forward-only since it
|
|
30
|
+
* needs the native module, so stale prebuilt binaries no-op until rebuilt.
|
|
31
|
+
* Disable via config (`performance.tier1.uiHang`) — no SDK release required.
|
|
32
|
+
*/
|
|
33
|
+
uiHangs: boolean;
|
|
34
|
+
/** UI hang threshold in ms. Default: 2000 */
|
|
35
|
+
hangThresholdMs: number;
|
|
36
|
+
/**
|
|
37
|
+
* Master enable for the Tier-2 (heavy, continuous) collectors.
|
|
38
|
+
* Even when true, a session only runs them if it passes tier2SampleRate.
|
|
39
|
+
* Default: true (gated by sampleRate below).
|
|
40
|
+
*/
|
|
41
|
+
tier2Enabled: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Per-session sampling fraction (0..1) for Tier-2 collectors.
|
|
44
|
+
* Decision is deterministic per sessionId (same session never flips).
|
|
45
|
+
* Default: DEFAULT_TIER2_SAMPLE_RATE (10%) — conservative sample that keeps
|
|
46
|
+
* ingest ~1/10th of full-rate. Set 0 to disable via `performance.tier2.sampleRate`.
|
|
47
|
+
*/
|
|
48
|
+
tier2SampleRate: number;
|
|
49
|
+
/** Enable network performance tracking. Default: true */
|
|
50
|
+
networkPerf: boolean;
|
|
51
|
+
/** Slow request threshold in ms. Default: 3000 */
|
|
52
|
+
slowRequestThresholdMs: number;
|
|
53
|
+
/** Enable custom trace API. Default: true */
|
|
54
|
+
customTraces: boolean;
|
|
55
|
+
/** Maximum concurrent custom traces. Default: 20 */
|
|
56
|
+
maxConcurrentTraces: number;
|
|
57
|
+
/** How often to report aggregate metrics in ms. Default: 5000 */
|
|
58
|
+
reportIntervalMs: number;
|
|
59
|
+
/** Maximum buffered events before flush. Default: 200 */
|
|
60
|
+
maxBufferSize: number;
|
|
61
|
+
/** Sample rate (0.0 to 1.0). Default: 1.0 (collect everything in dev) */
|
|
62
|
+
sampleRate: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Safe non-zero default for Tier-2 (frame_metrics + js_stall) per-session
|
|
66
|
+
* sampling. 0.1 = 10% of sessions run the heavy collectors — enough to surface
|
|
67
|
+
* FPS/jank/stall trends while keeping ingest volume ~1/10th of full-rate.
|
|
68
|
+
* Host-overridable via `performance.tier2.sampleRate` (set 0 to disable).
|
|
69
|
+
*/
|
|
70
|
+
export declare const DEFAULT_TIER2_SAMPLE_RATE = 0.1;
|
|
71
|
+
export declare const DEFAULT_PERF_CONFIG: PerformanceConfig;
|
|
72
|
+
export declare function mergePerformanceConfig(partial?: Partial<PerformanceConfig>): PerformanceConfig;
|
|
73
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Performance Feature Public Exports
|
|
3
|
+
*/
|
|
4
|
+
export { PerformanceFeature } from './PerformanceFeature';
|
|
5
|
+
export type { PerformanceConfig } from './config';
|
|
6
|
+
export { mergePerformanceConfig, DEFAULT_PERF_CONFIG } from './config';
|
|
7
|
+
export type { PerformanceEvent, AnyPerfEvent, AppLaunchEvent, ScreenLoadEvent, FrameMetricsEvent, JsStallEvent, UiHangEvent, NetworkPerfEvent, CustomTraceEvent, PerformanceSummary, PerfContext, PerfDeviceMeta, PerfSpan, PerfMeasurement, PerfEventType, LaunchType, Severity, } from './models';
|
|
8
|
+
export { PERF_SCHEMA_VERSION } from './models';
|
|
9
|
+
export { MetricKeys, computeStats, percentile, MetricWindow } from './metrics/MetricsEngine';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Metrics Engine
|
|
3
|
+
*
|
|
4
|
+
* Aggregation, percentile calculation (p50/p95/p99),
|
|
5
|
+
* and summary generation for performance metrics.
|
|
6
|
+
*/
|
|
7
|
+
export declare const MetricKeys: {
|
|
8
|
+
readonly APP_LAUNCH_COLD: "perf.app_launch.cold";
|
|
9
|
+
readonly APP_LAUNCH_WARM: "perf.app_launch.warm";
|
|
10
|
+
readonly FPS_ESTIMATED: "perf.fps.estimated";
|
|
11
|
+
readonly FRAMES_TOTAL: "perf.frames.total";
|
|
12
|
+
readonly FRAMES_DROPPED: "perf.frames.dropped";
|
|
13
|
+
readonly FRAMES_SLOW: "perf.frames.slow";
|
|
14
|
+
readonly FRAMES_FROZEN: "perf.frames.frozen";
|
|
15
|
+
readonly FRAME_DROP_RATE: "perf.frames.drop_rate";
|
|
16
|
+
readonly JS_ESTIMATED_FPS: "perf.js.estimated_fps";
|
|
17
|
+
readonly JS_FRAMES_DROPPED: "perf.js.frames_dropped";
|
|
18
|
+
readonly JS_STALL_COUNT: "perf.js.stall_count";
|
|
19
|
+
readonly JS_STALL_MAX: "perf.js.stall_max";
|
|
20
|
+
readonly JS_STALL_TOTAL: "perf.js.stall_total";
|
|
21
|
+
readonly JS_STALL_AVG: "perf.js.stall_avg";
|
|
22
|
+
readonly UI_HANG_COUNT: "perf.ui.hang_count";
|
|
23
|
+
readonly UI_HANG_MAX: "perf.ui.hang_max";
|
|
24
|
+
readonly SCREEN_LOAD: "perf.screen.load";
|
|
25
|
+
readonly NETWORK_SLOW_COUNT: "perf.network.slow_count";
|
|
26
|
+
readonly NETWORK_FAIL_COUNT: "perf.network.fail_count";
|
|
27
|
+
readonly CUSTOM_TRACE: "perf.trace";
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Calculate a percentile value from a sorted array of numbers.
|
|
31
|
+
* Uses nearest-rank method.
|
|
32
|
+
*/
|
|
33
|
+
export declare function percentile(sorted: number[], p: number): number;
|
|
34
|
+
/**
|
|
35
|
+
* Calculate p50, p95, p99, avg, min, max from an array of values.
|
|
36
|
+
*/
|
|
37
|
+
export declare function computeStats(values: number[]): MetricStats;
|
|
38
|
+
export interface MetricStats {
|
|
39
|
+
count: number;
|
|
40
|
+
avg: number;
|
|
41
|
+
min: number;
|
|
42
|
+
max: number;
|
|
43
|
+
p50: number;
|
|
44
|
+
p95: number;
|
|
45
|
+
p99: number;
|
|
46
|
+
sum: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Bounded rolling window for metric values.
|
|
50
|
+
* Supports time-based and count-based bounding.
|
|
51
|
+
*/
|
|
52
|
+
export declare class MetricWindow {
|
|
53
|
+
private values;
|
|
54
|
+
private maxSize;
|
|
55
|
+
constructor(maxSize?: number);
|
|
56
|
+
add(value: number, timestamp?: number): void;
|
|
57
|
+
/** Get all values */
|
|
58
|
+
getAll(): number[];
|
|
59
|
+
/** Get values within a time range */
|
|
60
|
+
getSince(sinceMs: number): number[];
|
|
61
|
+
/** Get stats for all values */
|
|
62
|
+
stats(): MetricStats;
|
|
63
|
+
/** Get stats for a time range */
|
|
64
|
+
statsSince(sinceMs: number): MetricStats;
|
|
65
|
+
/** Number of values stored */
|
|
66
|
+
get size(): number;
|
|
67
|
+
clear(): void;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=MetricsEngine.d.ts.map
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Performance Models
|
|
3
|
+
*
|
|
4
|
+
* Strong-typed domain models for all performance signals.
|
|
5
|
+
* Every model includes session/trace/screen/device context
|
|
6
|
+
* for cross-feature correlation.
|
|
7
|
+
*
|
|
8
|
+
* Schema version: 1
|
|
9
|
+
*/
|
|
10
|
+
export declare const PERF_SCHEMA_VERSION = 1;
|
|
11
|
+
export type PerfEventType = 'app_launch' | 'screen_load' | 'frame_metrics' | 'js_stall' | 'ui_hang' | 'network_perf' | 'custom_trace' | 'perf_summary';
|
|
12
|
+
export type LaunchType = 'cold' | 'warm' | 'hot';
|
|
13
|
+
export type Severity = 'info' | 'warning' | 'critical';
|
|
14
|
+
export type FrameQuality = 'normal' | 'slow' | 'frozen';
|
|
15
|
+
/** Context attached to every performance event for cross-feature correlation */
|
|
16
|
+
export interface PerfContext {
|
|
17
|
+
sessionId: string;
|
|
18
|
+
traceId?: string;
|
|
19
|
+
screenKey?: string;
|
|
20
|
+
interactionId?: string;
|
|
21
|
+
/** Device/app/os metadata snapshot */
|
|
22
|
+
device?: PerfDeviceMeta;
|
|
23
|
+
}
|
|
24
|
+
export interface PerfDeviceMeta {
|
|
25
|
+
platform?: 'android' | 'ios';
|
|
26
|
+
osVersion?: string;
|
|
27
|
+
deviceModel?: string;
|
|
28
|
+
appVersion?: string;
|
|
29
|
+
buildType?: 'debug' | 'release';
|
|
30
|
+
bundleId?: string;
|
|
31
|
+
sdkVersion?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface PerformanceEvent {
|
|
34
|
+
id: string;
|
|
35
|
+
type: PerfEventType;
|
|
36
|
+
timestamp: number;
|
|
37
|
+
/** Monotonic clock timestamp for drift-free duration measurement */
|
|
38
|
+
monotonicMs?: number;
|
|
39
|
+
schemaVersion: number;
|
|
40
|
+
context: PerfContext;
|
|
41
|
+
}
|
|
42
|
+
export interface AppLaunchEvent extends PerformanceEvent {
|
|
43
|
+
type: 'app_launch';
|
|
44
|
+
launchType: LaunchType;
|
|
45
|
+
durationMs: number;
|
|
46
|
+
/** Breakdown of launch phases (optional — depends on native granularity) */
|
|
47
|
+
breakdown?: {
|
|
48
|
+
processStartMs?: number;
|
|
49
|
+
nativeInitMs?: number;
|
|
50
|
+
contentProviderMs?: number;
|
|
51
|
+
activityCreateMs?: number;
|
|
52
|
+
firstFrameMs?: number;
|
|
53
|
+
jsReadyMs?: number;
|
|
54
|
+
firstScreenMs?: number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Labels each breakdown phase as 'measured' or 'inferred'.
|
|
58
|
+
* Only phases present in `breakdown` should have entries.
|
|
59
|
+
*/
|
|
60
|
+
phaseLabels?: Record<string, 'measured' | 'inferred'>;
|
|
61
|
+
}
|
|
62
|
+
export interface ScreenLoadEvent extends PerformanceEvent {
|
|
63
|
+
type: 'screen_load';
|
|
64
|
+
screenName: string;
|
|
65
|
+
durationMs: number;
|
|
66
|
+
/** Previous screen (for transition measurement) */
|
|
67
|
+
previousScreen?: string;
|
|
68
|
+
/** Whether this load was captured automatically vs manual markers */
|
|
69
|
+
automatic?: boolean;
|
|
70
|
+
}
|
|
71
|
+
export interface FrameMetricsEvent extends PerformanceEvent {
|
|
72
|
+
type: 'frame_metrics';
|
|
73
|
+
/** Window duration these metrics cover */
|
|
74
|
+
windowMs: number;
|
|
75
|
+
totalFrames: number;
|
|
76
|
+
droppedFrames: number;
|
|
77
|
+
slowFrames: number;
|
|
78
|
+
frozenFrames: number;
|
|
79
|
+
estimatedFps: number;
|
|
80
|
+
/** Worst single frame render time in this window */
|
|
81
|
+
maxFrameTimeMs: number;
|
|
82
|
+
}
|
|
83
|
+
export interface JsStallEvent extends PerformanceEvent {
|
|
84
|
+
type: 'js_stall';
|
|
85
|
+
/** Duration of this individual stall */
|
|
86
|
+
durationMs: number;
|
|
87
|
+
severity: Severity;
|
|
88
|
+
}
|
|
89
|
+
/** Aggregated JS stall summary for a reporting period */
|
|
90
|
+
export interface JsStallSummary {
|
|
91
|
+
stallCount: number;
|
|
92
|
+
maxStallMs: number;
|
|
93
|
+
totalStallMs: number;
|
|
94
|
+
avgStallMs: number;
|
|
95
|
+
}
|
|
96
|
+
export interface UiHangEvent extends PerformanceEvent {
|
|
97
|
+
type: 'ui_hang';
|
|
98
|
+
durationMs: number;
|
|
99
|
+
severity: Severity;
|
|
100
|
+
}
|
|
101
|
+
export interface NetworkPerfEvent extends PerformanceEvent {
|
|
102
|
+
type: 'network_perf';
|
|
103
|
+
url: string;
|
|
104
|
+
method: string;
|
|
105
|
+
statusCode?: number;
|
|
106
|
+
durationMs: number;
|
|
107
|
+
/** Whether request is considered failed */
|
|
108
|
+
failed: boolean;
|
|
109
|
+
/** Byte size of response if available */
|
|
110
|
+
responseSize?: number;
|
|
111
|
+
}
|
|
112
|
+
export interface CustomTraceEvent extends PerformanceEvent {
|
|
113
|
+
type: 'custom_trace';
|
|
114
|
+
name: string;
|
|
115
|
+
durationMs: number;
|
|
116
|
+
spans?: PerfSpan[];
|
|
117
|
+
measurements?: Record<string, PerfMeasurement>;
|
|
118
|
+
}
|
|
119
|
+
export interface PerfSpan {
|
|
120
|
+
spanId: string;
|
|
121
|
+
name: string;
|
|
122
|
+
startMs: number;
|
|
123
|
+
endMs?: number;
|
|
124
|
+
durationMs?: number;
|
|
125
|
+
status?: 'ok' | 'error' | 'cancelled';
|
|
126
|
+
data?: Record<string, unknown>;
|
|
127
|
+
}
|
|
128
|
+
export interface PerfMeasurement {
|
|
129
|
+
value: number;
|
|
130
|
+
unit: string;
|
|
131
|
+
}
|
|
132
|
+
export interface PerformanceSummary {
|
|
133
|
+
sessionId: string;
|
|
134
|
+
timestamp: number;
|
|
135
|
+
schemaVersion: number;
|
|
136
|
+
/** App launch timing */
|
|
137
|
+
launch?: {
|
|
138
|
+
type: LaunchType;
|
|
139
|
+
durationMs: number;
|
|
140
|
+
};
|
|
141
|
+
/** Frame quality summary */
|
|
142
|
+
frames?: {
|
|
143
|
+
avgFps: number;
|
|
144
|
+
totalFrames: number;
|
|
145
|
+
droppedFrames: number;
|
|
146
|
+
slowFrames: number;
|
|
147
|
+
frozenFrames: number;
|
|
148
|
+
dropRate: number;
|
|
149
|
+
};
|
|
150
|
+
/** JS stall summary */
|
|
151
|
+
jsStalls?: JsStallSummary;
|
|
152
|
+
/** UI hang summary */
|
|
153
|
+
uiHangs?: {
|
|
154
|
+
hangCount: number;
|
|
155
|
+
maxHangMs: number;
|
|
156
|
+
totalHangMs: number;
|
|
157
|
+
};
|
|
158
|
+
/** Screen load summary */
|
|
159
|
+
screenLoads?: Array<{
|
|
160
|
+
screenName: string;
|
|
161
|
+
avgMs: number;
|
|
162
|
+
p95Ms: number;
|
|
163
|
+
count: number;
|
|
164
|
+
}>;
|
|
165
|
+
/** Slow network requests */
|
|
166
|
+
slowNetworkRequests?: number;
|
|
167
|
+
}
|
|
168
|
+
export type AnyPerfEvent = AppLaunchEvent | ScreenLoadEvent | FrameMetricsEvent | JsStallEvent | UiHangEvent | NetworkPerfEvent | CustomTraceEvent;
|
|
169
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Performance Transport
|
|
3
|
+
*
|
|
4
|
+
* Serializes performance events into the debug protocol format
|
|
5
|
+
* and sends them via the debug transport. Handles batching and
|
|
6
|
+
* bounded buffer.
|
|
7
|
+
*/
|
|
8
|
+
import type { AnyPerfEvent, PerformanceSummary, JsStallSummary } from '../models';
|
|
9
|
+
import type { PerformanceConfig } from '../config';
|
|
10
|
+
/** Minimal transport interface — decoupled from DebugTransport implementation */
|
|
11
|
+
export interface PerfTransportSink {
|
|
12
|
+
readonly deviceId: string;
|
|
13
|
+
readonly sessionId: string;
|
|
14
|
+
nextSequence(): number;
|
|
15
|
+
send(msg: unknown): void;
|
|
16
|
+
}
|
|
17
|
+
export declare class PerformanceTransport {
|
|
18
|
+
private sink;
|
|
19
|
+
private config;
|
|
20
|
+
private buffer;
|
|
21
|
+
constructor(config: PerformanceConfig);
|
|
22
|
+
/** Set the transport sink (debug transport) */
|
|
23
|
+
setSink(sink: PerfTransportSink | null): void;
|
|
24
|
+
/** Get the transport sink (for direct frame sending) */
|
|
25
|
+
getSink(): PerfTransportSink | null;
|
|
26
|
+
/** Send a performance event as a protocol event message */
|
|
27
|
+
sendEvent(event: AnyPerfEvent): void;
|
|
28
|
+
/** Send a metric value (for backward compat with existing metric handler) */
|
|
29
|
+
sendMetric(name: string, value: number, unit?: string, tags?: Record<string, string>): void;
|
|
30
|
+
/** Send JS stall summary as individual metric messages */
|
|
31
|
+
sendStallSummary(summary: JsStallSummary & {
|
|
32
|
+
timestamp: number;
|
|
33
|
+
}): void;
|
|
34
|
+
/** Send performance summary */
|
|
35
|
+
sendSummary(summary: PerformanceSummary): void;
|
|
36
|
+
private _send;
|
|
37
|
+
/** Clear buffer */
|
|
38
|
+
reset(): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=PerformanceTransport.d.ts.map
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — ProfilerFeature (Phase 3)
|
|
3
|
+
*
|
|
4
|
+
* Thin JS orchestrator for the native-first profiler.
|
|
5
|
+
*
|
|
6
|
+
* NATIVE-FIRST DESIGN:
|
|
7
|
+
* This file is intentionally minimal. All heavy lifting
|
|
8
|
+
* (sampling, aggregation, batching, incident detection) happens
|
|
9
|
+
* in native code (Android/iOS). This orchestrator only:
|
|
10
|
+
* 1. Manages lifecycle (start/stop/pause/resume)
|
|
11
|
+
* 2. Passes config to native modules
|
|
12
|
+
* 3. Subscribes to batched native events
|
|
13
|
+
* 4. Forwards normalized events to transport (→ desktop)
|
|
14
|
+
* 5. Provides a typed public API facade
|
|
15
|
+
* 6. Implements connection-aware backpressure
|
|
16
|
+
* 7. Provides opt-in JS thread stall detection
|
|
17
|
+
*
|
|
18
|
+
* NO sampling loops, NO timers, NO aggregation logic in JS.
|
|
19
|
+
* The ONLY JS-side instrumentation is the opt-in JsStallDetector
|
|
20
|
+
* which uses a single lightweight heartbeat to detect event loop stalls.
|
|
21
|
+
*/
|
|
22
|
+
import type { AnyProfilerEvent, ProfilerCapabilities } from './models';
|
|
23
|
+
import type { IProfilerFeature, ProfilerState, ProfilerTransportSink } from './contracts';
|
|
24
|
+
import { ProfilerConfig } from './config';
|
|
25
|
+
export declare class ProfilerFeature implements IProfilerFeature {
|
|
26
|
+
readonly name: "profiler";
|
|
27
|
+
private state;
|
|
28
|
+
private config;
|
|
29
|
+
private transport;
|
|
30
|
+
private nativeModule;
|
|
31
|
+
private eventListeners;
|
|
32
|
+
private nativeSubscriptions;
|
|
33
|
+
private capabilities;
|
|
34
|
+
private sessionId;
|
|
35
|
+
private currentScreen;
|
|
36
|
+
private spanCounter;
|
|
37
|
+
private transportConnected;
|
|
38
|
+
private transportStateUnsub;
|
|
39
|
+
private droppedEventCount;
|
|
40
|
+
private jsStallDetector;
|
|
41
|
+
private _samplesSent;
|
|
42
|
+
constructor(config?: Partial<ProfilerConfig>);
|
|
43
|
+
/**
|
|
44
|
+
* Initialize the profiler by resolving the native module.
|
|
45
|
+
* Does NOT start profiling — call start() for that.
|
|
46
|
+
*/
|
|
47
|
+
initialize(): Promise<void>;
|
|
48
|
+
/** Teardown and release all resources */
|
|
49
|
+
teardown(): void;
|
|
50
|
+
start(): Promise<void>;
|
|
51
|
+
stop(): Promise<void>;
|
|
52
|
+
pauseStream(): Promise<void>;
|
|
53
|
+
resumeStream(): Promise<void>;
|
|
54
|
+
captureSnapshot(): Promise<Record<string, unknown>>;
|
|
55
|
+
getCapabilities(): Promise<ProfilerCapabilities | null>;
|
|
56
|
+
markSpan(name: string, metadata?: Record<string, unknown>): string;
|
|
57
|
+
endSpan(spanId: string): void;
|
|
58
|
+
markInteraction(name: string): void;
|
|
59
|
+
exportBundle(): Promise<Record<string, unknown>>;
|
|
60
|
+
getState(): ProfilerState;
|
|
61
|
+
isActive(): boolean;
|
|
62
|
+
onEvent(callback: (event: AnyProfilerEvent) => void): () => void;
|
|
63
|
+
/** Connect the debug transport for sending events to desktop */
|
|
64
|
+
setTransportSink(sink: ProfilerTransportSink | null): void;
|
|
65
|
+
/** Update session ID on native side */
|
|
66
|
+
setSessionId(sessionId: string): void;
|
|
67
|
+
/** Update current screen on native side for correlation */
|
|
68
|
+
setCurrentScreen(screenName: string): void;
|
|
69
|
+
/**
|
|
70
|
+
* Wire transport state observation for connection-aware streaming.
|
|
71
|
+
*
|
|
72
|
+
* When desktop disconnects:
|
|
73
|
+
* - Pause native event emission to JS (save bridge bandwidth)
|
|
74
|
+
* - Buffer is bounded (drops oldest when full)
|
|
75
|
+
*
|
|
76
|
+
* When desktop reconnects:
|
|
77
|
+
* - Resume native event emission
|
|
78
|
+
* - Flush bounded buffer
|
|
79
|
+
*
|
|
80
|
+
* This prevents unbounded queue growth during disconnects.
|
|
81
|
+
*/
|
|
82
|
+
private _wireTransportBackpressure;
|
|
83
|
+
private _handleNativeSampleBatch;
|
|
84
|
+
private _handleNativeIncident;
|
|
85
|
+
private _handleNativeScreenSummary;
|
|
86
|
+
private _handleNativeThreadSnapshot;
|
|
87
|
+
private _handleNativeCapabilities;
|
|
88
|
+
private _handleNativeStateChanged;
|
|
89
|
+
/** Emit event to transport + listeners */
|
|
90
|
+
private _emitEvent;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=ProfilerFeature.d.ts.map
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Profiler Config
|
|
3
|
+
*
|
|
4
|
+
* Configuration model for the profiler feature.
|
|
5
|
+
* Sensible defaults tuned for low-overhead production use.
|
|
6
|
+
*
|
|
7
|
+
* NATIVE-FIRST: These configs are serialized and sent to
|
|
8
|
+
* native modules on start. Native code owns the sampling
|
|
9
|
+
* loops, scheduling, and aggregation.
|
|
10
|
+
*/
|
|
11
|
+
import type { SamplingPreset } from './models';
|
|
12
|
+
export interface ProfilerConfig {
|
|
13
|
+
/** Master enable/disable. Default: true */
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
/** Enable live streaming to desktop. Default: true */
|
|
16
|
+
liveStreamingEnabled: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Sampling preset. Controls the balance between fidelity and overhead.
|
|
19
|
+
* 'off' — profiler disabled
|
|
20
|
+
* 'low' — minimal sampling, very low overhead
|
|
21
|
+
* 'balanced' — default, good fidelity with moderate overhead
|
|
22
|
+
* 'high' — high fidelity, higher overhead (dev/debug)
|
|
23
|
+
* 'diagnostic' — maximum fidelity, significant overhead (short bursts only)
|
|
24
|
+
*/
|
|
25
|
+
samplingPreset: SamplingPreset;
|
|
26
|
+
/** CPU sampling interval. Default: 1000ms */
|
|
27
|
+
cpuSampleIntervalMs: number;
|
|
28
|
+
/** Memory sampling interval. Default: 2000ms */
|
|
29
|
+
memorySampleIntervalMs: number;
|
|
30
|
+
/** Thread snapshot interval. Default: 3000ms */
|
|
31
|
+
threadSampleIntervalMs: number;
|
|
32
|
+
/** Enable render/frame collection. Default: true */
|
|
33
|
+
renderCollectionEnabled: boolean;
|
|
34
|
+
/** Enable network profiling correlation. Default: true */
|
|
35
|
+
networkCorrelationEnabled: boolean;
|
|
36
|
+
/** Enable JS thread instrumentation. Default: false (opt-in) */
|
|
37
|
+
jsInstrumentationEnabled: boolean;
|
|
38
|
+
/** Enable diagnostics/incident detection. Default: true */
|
|
39
|
+
diagnosticsEnabled: boolean;
|
|
40
|
+
/** Enable trace capture. Default: false (opt-in) */
|
|
41
|
+
traceCaptureEnabled: boolean;
|
|
42
|
+
/** Enable export functionality. Default: true */
|
|
43
|
+
exportEnabled: boolean;
|
|
44
|
+
/** Max sample buffer size (native side). Default: 500 */
|
|
45
|
+
maxBufferSize: number;
|
|
46
|
+
/** Max profiling session duration in ms. Default: 3600000 (1 hour) */
|
|
47
|
+
maxSessionDurationMs: number;
|
|
48
|
+
incidentThresholds: ProfilerIncidentThresholds;
|
|
49
|
+
/** Enable screen-level correlation. Default: true */
|
|
50
|
+
screenCorrelationEnabled: boolean;
|
|
51
|
+
/** Enable battery-aware throttling. Default: true */
|
|
52
|
+
batteryAwareMode: boolean;
|
|
53
|
+
/** Enable Android StrictMode hooks (debug builds only). Default: false */
|
|
54
|
+
debugStrictModeHooksEnabled: boolean;
|
|
55
|
+
/** Custom metadata tags attached to all profiler events */
|
|
56
|
+
customTags?: Record<string, string>;
|
|
57
|
+
}
|
|
58
|
+
export interface ProfilerIncidentThresholds {
|
|
59
|
+
/** CPU % above which a spike is detected. Default: 80 */
|
|
60
|
+
cpuSpikePercent: number;
|
|
61
|
+
/** Memory growth rate (bytes/sec) for surge detection. Default: 10MB/s */
|
|
62
|
+
memorySurgeBytesPerSec: number;
|
|
63
|
+
/** Consecutive slow frames to trigger jank burst. Default: 5 */
|
|
64
|
+
jankBurstFrameCount: number;
|
|
65
|
+
/** Main thread stall threshold in ms. Default: 500 */
|
|
66
|
+
mainThreadStallMs: number;
|
|
67
|
+
/** JS stall threshold in ms. Default: 300 */
|
|
68
|
+
jsStallMs: number;
|
|
69
|
+
/** Thread count spike threshold. Default: 50 */
|
|
70
|
+
excessiveThreadCount: number;
|
|
71
|
+
/** Frozen frame threshold in ms. Default: 700 */
|
|
72
|
+
frozenFrameMs: number;
|
|
73
|
+
}
|
|
74
|
+
export declare const DEFAULT_PROFILER_CONFIG: ProfilerConfig;
|
|
75
|
+
/**
|
|
76
|
+
* Merge user-provided config with defaults.
|
|
77
|
+
* Applies preset overrides first, then user overrides on top.
|
|
78
|
+
*/
|
|
79
|
+
export declare function mergeProfilerConfig(partial?: Partial<ProfilerConfig>): ProfilerConfig;
|
|
80
|
+
/**
|
|
81
|
+
* Serialize config to a plain object suitable for passing across the RN bridge.
|
|
82
|
+
* Native modules consume this to configure their sampling loops.
|
|
83
|
+
*/
|
|
84
|
+
export declare function serializeProfilerConfig(config: ProfilerConfig): Record<string, unknown>;
|
|
85
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Profiler Contracts
|
|
3
|
+
*
|
|
4
|
+
* Public interfaces and bridge contracts for the profiler feature.
|
|
5
|
+
*
|
|
6
|
+
* NATIVE-FIRST: The native modules implement these commands.
|
|
7
|
+
* JS only orchestrates lifecycle and forwards config.
|
|
8
|
+
*/
|
|
9
|
+
import type { ProfilerCapabilities, AnyProfilerEvent } from './models';
|
|
10
|
+
/**
|
|
11
|
+
* Interface for the native profiler module.
|
|
12
|
+
* Both Android (ScaleBunProfiler) and iOS (ScaleBunProfiler) implement this.
|
|
13
|
+
*
|
|
14
|
+
* All heavy work (sampling, aggregation, batching, incident detection)
|
|
15
|
+
* happens natively. JS receives pre-processed batched payloads.
|
|
16
|
+
*/
|
|
17
|
+
export interface IProfilerNativeModule {
|
|
18
|
+
/**
|
|
19
|
+
* Start the profiler with the given serialized config.
|
|
20
|
+
* Native module begins its own sampling loops.
|
|
21
|
+
*/
|
|
22
|
+
startProfiler(config: Record<string, unknown>): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Stop the profiler and clean up all native resources.
|
|
25
|
+
*/
|
|
26
|
+
stopProfiler(): Promise<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* Pause live streaming (data still collected, just not emitted to JS).
|
|
29
|
+
*/
|
|
30
|
+
pauseProfilerStream(): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Resume live streaming.
|
|
33
|
+
*/
|
|
34
|
+
resumeProfilerStream(): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
* Capture an immediate snapshot of all profiler metrics.
|
|
37
|
+
* Returns a single composite sample.
|
|
38
|
+
*/
|
|
39
|
+
captureProfilerSnapshot(): Promise<Record<string, unknown>>;
|
|
40
|
+
/**
|
|
41
|
+
* Update profiler config while running.
|
|
42
|
+
*/
|
|
43
|
+
setProfilerConfig(config: Record<string, unknown>): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Mark a named span start (for custom profiling spans).
|
|
46
|
+
*/
|
|
47
|
+
markProfilerSpan(spanName: string, spanId: string, metadata?: Record<string, unknown>): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* End a named span.
|
|
50
|
+
*/
|
|
51
|
+
endProfilerSpan(spanId: string): Promise<boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* Mark an interaction event for correlation.
|
|
54
|
+
*/
|
|
55
|
+
markProfilerInteraction(interactionId: string, interactionName: string): Promise<boolean>;
|
|
56
|
+
/**
|
|
57
|
+
* Flush buffered data and prepare an export bundle.
|
|
58
|
+
*/
|
|
59
|
+
flushProfilerExport(): Promise<Record<string, unknown>>;
|
|
60
|
+
/**
|
|
61
|
+
* Get platform capabilities.
|
|
62
|
+
* Returns which metrics are supported on this device/OS version.
|
|
63
|
+
*/
|
|
64
|
+
getProfilerCapabilities(): Promise<Record<string, unknown>>;
|
|
65
|
+
/**
|
|
66
|
+
* Set the current screen name for correlation.
|
|
67
|
+
* Called by the SDK when screen changes are detected.
|
|
68
|
+
*/
|
|
69
|
+
setCurrentScreen(screenName: string): Promise<boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* Set the current session ID for correlation.
|
|
72
|
+
*/
|
|
73
|
+
setSessionId(sessionId: string): Promise<boolean>;
|
|
74
|
+
/** Required for RN NativeEventEmitter */
|
|
75
|
+
addListener(eventName: string): void;
|
|
76
|
+
/** Required for RN NativeEventEmitter */
|
|
77
|
+
removeListeners(count: number): void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Events emitted from native → JS via RCTDeviceEventEmitter.
|
|
81
|
+
* These are batched and compact — never per-frame.
|
|
82
|
+
*/
|
|
83
|
+
export declare const PROFILER_NATIVE_EVENTS: {
|
|
84
|
+
/** Batched metric samples */
|
|
85
|
+
readonly SAMPLE_BATCH: "ScaleBunProfiler_SampleBatch";
|
|
86
|
+
/** Incident detected natively */
|
|
87
|
+
readonly INCIDENT: "ScaleBunProfiler_Incident";
|
|
88
|
+
/** Screen summary emitted on screen change */
|
|
89
|
+
readonly SCREEN_SUMMARY: "ScaleBunProfiler_ScreenSummary";
|
|
90
|
+
/** Thread snapshot */
|
|
91
|
+
readonly THREAD_SNAPSHOT: "ScaleBunProfiler_ThreadSnapshot";
|
|
92
|
+
/** Capabilities report */
|
|
93
|
+
readonly CAPABILITIES: "ScaleBunProfiler_Capabilities";
|
|
94
|
+
/** Profiler state changed */
|
|
95
|
+
readonly STATE_CHANGED: "ScaleBunProfiler_StateChanged";
|
|
96
|
+
};
|
|
97
|
+
export type ProfilerNativeEventName = typeof PROFILER_NATIVE_EVENTS[keyof typeof PROFILER_NATIVE_EVENTS];
|
|
98
|
+
export type ProfilerState = 'idle' | 'running' | 'paused' | 'error';
|
|
99
|
+
/**
|
|
100
|
+
* Public API surface for the profiler feature.
|
|
101
|
+
* Kept minimal — JS is an orchestration layer, not the profiling engine.
|
|
102
|
+
*/
|
|
103
|
+
export interface IProfilerFeature {
|
|
104
|
+
readonly name: 'profiler';
|
|
105
|
+
/** Start the profiler */
|
|
106
|
+
start(): Promise<void>;
|
|
107
|
+
/** Stop the profiler */
|
|
108
|
+
stop(): Promise<void>;
|
|
109
|
+
/** Pause live streaming */
|
|
110
|
+
pauseStream(): Promise<void>;
|
|
111
|
+
/** Resume live streaming */
|
|
112
|
+
resumeStream(): Promise<void>;
|
|
113
|
+
/** Capture an immediate snapshot */
|
|
114
|
+
captureSnapshot(): Promise<Record<string, unknown>>;
|
|
115
|
+
/** Get platform capabilities */
|
|
116
|
+
getCapabilities(): Promise<ProfilerCapabilities | null>;
|
|
117
|
+
/** Mark a custom span */
|
|
118
|
+
markSpan(name: string, metadata?: Record<string, unknown>): string;
|
|
119
|
+
/** End a custom span */
|
|
120
|
+
endSpan(spanId: string): void;
|
|
121
|
+
/** Mark an interaction */
|
|
122
|
+
markInteraction(name: string): void;
|
|
123
|
+
/** Export profiler data */
|
|
124
|
+
exportBundle(): Promise<Record<string, unknown>>;
|
|
125
|
+
/** Current profiler state */
|
|
126
|
+
getState(): ProfilerState;
|
|
127
|
+
/** Whether the profiler is currently active */
|
|
128
|
+
isActive(): boolean;
|
|
129
|
+
/** Listen for profiler events (for transport forwarding) */
|
|
130
|
+
onEvent(callback: (event: AnyProfilerEvent) => void): () => void;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Minimal transport interface for sending profiler data to desktop.
|
|
134
|
+
* Mirrors the PerfTransportSink pattern from the performance feature.
|
|
135
|
+
*/
|
|
136
|
+
export interface ProfilerTransportSink {
|
|
137
|
+
readonly deviceId: string;
|
|
138
|
+
readonly sessionId: string;
|
|
139
|
+
nextSequence(): number;
|
|
140
|
+
send(msg: unknown): void;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=contracts.d.ts.map
|